aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content_scripts/hud.coffee16
-rw-r--r--content_scripts/vimium_frontend.coffee5
-rw-r--r--content_scripts/vomnibar.coffee9
-rw-r--r--lib/dom_utils.coffee3
4 files changed, 20 insertions, 13 deletions
diff --git a/content_scripts/hud.coffee b/content_scripts/hud.coffee
index 62bcf03f..38c9ab9b 100644
--- a/content_scripts/hud.coffee
+++ b/content_scripts/hud.coffee
@@ -23,15 +23,17 @@ HUD =
@_showForDurationTimerId = setTimeout((=> @hide()), duration)
show: (text) ->
- @init()
- clearTimeout(@_showForDurationTimerId)
- @hudUI.activate {name: "show", text}
- @tween.fade 1.0, 150
+ DomUtils.ifDocumentIsReady =>
+ @init()
+ clearTimeout(@_showForDurationTimerId)
+ @hudUI.activate {name: "show", text}
+ @tween.fade 1.0, 150
showFindMode: (@findMode = null) ->
- @init()
- @hudUI.activate name: "showFindMode"
- @tween.fade 1.0, 150
+ DomUtils.ifDocumentIsReady =>
+ @init()
+ @hudUI.activate name: "showFindMode"
+ @tween.fade 1.0, 150
search: (data) ->
@findMode.findInPlace data.query
diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee
index a80093f9..d1ff874e 100644
--- a/content_scripts/vimium_frontend.coffee
+++ b/content_scripts/vimium_frontend.coffee
@@ -616,8 +616,9 @@ enterFindMode = ->
new FindMode()
window.showHelp = (sourceFrameId) ->
- chrome.runtime.sendMessage handler: "getHelpDialogHtml", (response) ->
- HelpDialog.toggle {sourceFrameId, html: response}
+ DomUtils.ifDocumentIsReady ->
+ chrome.runtime.sendMessage handler: "getHelpDialogHtml", (response) ->
+ HelpDialog.toggle {sourceFrameId, html: response}
# If we are in the help dialog iframe, then HelpDialog is already defined with the necessary functions.
window.HelpDialog ?=
diff --git a/content_scripts/vomnibar.coffee b/content_scripts/vomnibar.coffee
index cbd2892c..292cedc7 100644
--- a/content_scripts/vomnibar.coffee
+++ b/content_scripts/vomnibar.coffee
@@ -56,10 +56,11 @@ Vomnibar =
# selectFirst - Optional, boolean. Whether to select the first entry.
# newTab - Optional, boolean. Whether to open the result in a new tab.
open: (sourceFrameId, options) ->
- @init()
- # The Vomnibar cannot coexist with the help dialog (it causes focus issues).
- HelpDialog.abort()
- @vomnibarUI.activate extend options, { name: "activate", sourceFrameId, focus: true }
+ DomUtils.ifDocumentIsReady =>
+ @init()
+ # The Vomnibar cannot coexist with the help dialog (it causes focus issues).
+ HelpDialog.abort()
+ @vomnibarUI.activate extend options, { name: "activate", sourceFrameId, focus: true }
root = exports ? window
root.Vomnibar = Vomnibar
diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee
index 3d719337..20392c83 100644
--- a/lib/dom_utils.coffee
+++ b/lib/dom_utils.coffee
@@ -13,6 +13,9 @@ DomUtils =
(callback) -> if isReady then callback() else callbacks.push callback
+ ifDocumentIsReady: (callback) ->
+ callback() unless document.readyState == "loading"
+
createElement: (tagName) ->
element = document.createElement tagName
if element instanceof HTMLElement