diff options
| -rw-r--r-- | content_scripts/vimium_frontend.coffee | 11 | ||||
| -rw-r--r-- | content_scripts/vomnibar.coffee | 8 |
2 files changed, 12 insertions, 7 deletions
diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee index 02bdfa2c..4f2e805d 100644 --- a/content_scripts/vimium_frontend.coffee +++ b/content_scripts/vimium_frontend.coffee @@ -160,9 +160,14 @@ installModes = -> initializeOnEnabledStateKnown = (isEnabledForUrl) -> installModes() unless normalMode if isEnabledForUrl - # We only initialize (and activate) the Vomnibar in the top frame. Also, we do not initialize the - # Vomnibar until we know that Vimium is enabled. Thereafter, there's no more initialization to do. - DomUtils.documentComplete Vomnibar.init.bind Vomnibar if DomUtils.isTopFrame() + unless Utils.isFirefox() and document.documentElement.namespaceURI != "http://www.w3.org/1999/xhtml" + # We only initialize (and activate) the Vomnibar in the top frame. Also, we do not initialize the + # Vomnibar until we know that Vimium is enabled. Thereafter, there's no more initialization to do. + # + # NOTE(mrmr1993): In XML documents on Firefox, injecting HTML into the DOM breaks the rendering, so we + # lazy load the Vomnibar. This comes with the expected issues, but is better than breaking all XML + # documents. + DomUtils.documentComplete Vomnibar.init.bind Vomnibar if DomUtils.isTopFrame() initializeOnEnabledStateKnown = -> # diff --git a/content_scripts/vomnibar.coffee b/content_scripts/vomnibar.coffee index 04499523..14d72e87 100644 --- a/content_scripts/vomnibar.coffee +++ b/content_scripts/vomnibar.coffee @@ -53,10 +53,10 @@ 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) -> - if @vomnibarUI? - # The Vomnibar cannot coexist with the help dialog (it causes focus issues). - HelpDialog.abort() - @vomnibarUI.activate extend options, { name: "activate", sourceFrameId, focus: true } + @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 |
