diff options
| author | Stephen Blott | 2015-01-14 15:41:04 +0000 |
|---|---|---|
| committer | Stephen Blott | 2015-01-14 15:41:04 +0000 |
| commit | 0f80b22ca3a072d843cc79eeae71312a5b2eee74 (patch) | |
| tree | 26cf65bf9ffed0984787a1386454ff1e4dbe09da | |
| parent | 75565049e160042017486c10a61bed3a292e0c58 (diff) | |
| parent | 2e8acc1fcd8661fc3f14d86cbf4329b4fc7f843d (diff) | |
| download | vimium-0f80b22ca3a072d843cc79eeae71312a5b2eee74.tar.bz2 | |
Merge pull request #1427 from smblott-github/fix-race-condition-on-options-page
Fix race condition on the options page.
| -rw-r--r-- | content_scripts/vimium_frontend.coffee | 6 | ||||
| -rw-r--r-- | lib/dom_utils.coffee | 9 |
2 files changed, 8 insertions, 7 deletions
diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee index 351a2690..a3ab051b 100644 --- a/content_scripts/vimium_frontend.coffee +++ b/content_scripts/vimium_frontend.coffee @@ -1140,9 +1140,9 @@ CursorHider = window.addEventListener "scroll", @onScroll initializePreDomReady() -window.addEventListener("DOMContentLoaded", registerFrame) -window.addEventListener("unload", unregisterFrame) -window.addEventListener("DOMContentLoaded", initializeOnDomReady) +DomUtils.documentReady initializeOnDomReady +DomUtils.documentReady registerFrame +window.addEventListener "unload", unregisterFrame window.onbeforeunload = -> chrome.runtime.sendMessage( diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee index ba5e279f..7a75dd6a 100644 --- a/lib/dom_utils.coffee +++ b/lib/dom_utils.coffee @@ -2,10 +2,11 @@ DomUtils = # # Runs :callback if the DOM has loaded, otherwise runs it on load # - documentReady: do -> - loaded = false - window.addEventListener("DOMContentLoaded", -> loaded = true) - (callback) -> if loaded then callback() else window.addEventListener("DOMContentLoaded", callback) + documentReady: (func) -> + if document.readyState == "loading" + window.addEventListener "DOMContentLoaded", func + else + func() # # Adds a list of elements to a page. |
