diff options
| author | Stephen Blott | 2017-10-02 15:56:45 +0100 | 
|---|---|---|
| committer | GitHub | 2017-10-02 15:56:45 +0100 | 
| commit | abb32e2f2974832df08395ef7664561bb57c7324 (patch) | |
| tree | 7f8a88c4f1b287aa037e1b2f07bc9d59848eca65 | |
| parent | 10bcb92735f820779950557c5d59d35f769a10fc (diff) | |
| parent | 0d2a44fb47d7a6599093c6b4de6bcd54da9b7cb8 (diff) | |
| download | vimium-abb32e2f2974832df08395ef7664561bb57c7324.tar.bz2 | |
Merge pull request #2691 from mrmr1993/ff-fix-xml
FF: Lazy load the Vomnibar for XML documents
| -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 | 
