diff options
Diffstat (limited to 'pages')
| -rw-r--r-- | pages/help_dialog.coffee | 26 | ||||
| -rw-r--r-- | pages/hud.coffee | 7 | ||||
| -rw-r--r-- | pages/options.coffee | 2 | ||||
| -rw-r--r-- | pages/ui_component_server.coffee | 13 | ||||
| -rw-r--r-- | pages/vomnibar.coffee | 14 | 
5 files changed, 26 insertions, 36 deletions
| diff --git a/pages/help_dialog.coffee b/pages/help_dialog.coffee index 0e4a8973..0300ec00 100644 --- a/pages/help_dialog.coffee +++ b/pages/help_dialog.coffee @@ -6,7 +6,7 @@  #   top-level frame), and then we don't need to be concerned about nested help dialog frames.  HelpDialog =    dialogElement: null -  showing: true +  isShowing: -> true    # This setting is pulled out of local storage. It's false by default.    getShowAdvancedCommands: -> Settings.get("helpDialog_showAdvancedCommands") @@ -30,9 +30,7 @@ HelpDialog =        @hide() unless @dialogElement.contains event.target      , false -  isReady: -> true - -  show: (html) -> +  show: ({html}) ->      for own placeholder, htmlString of html        @dialogElement.querySelector("#help-dialog-#{placeholder}").innerHTML = htmlString @@ -48,15 +46,8 @@ HelpDialog =            chrome.runtime.sendMessage handler: "copyToClipboard", data: commandName            HUD.showForDuration("Yanked #{commandName}.", 2000) -    @exitOnEscape = new Mode name: "help-page-escape", exitOnEscape: true -    @exitOnEscape.onExit (event) => @hide() if event?.type == "keydown" - -  hide: -> -    @exitOnEscape?.exit() -    UIComponentServer.postMessage "hide" - -  toggle: (html) -> -    if @showing then @hide() else @show html +  hide: -> UIComponentServer.hide() +  toggle: (html) -> @hide()    #    # Advanced commands are hidden by default so they don't overwhelm new and casual users. @@ -77,13 +68,8 @@ HelpDialog =  UIComponentServer.registerHandler (event) ->    switch event.data.name ? event.data -    when "frameFocused" -      # We normally close when we lose the focus.  However, we do not close on the options page.  This allows -      # users to view the help dialog while typing in the key-mappings input. -      HelpDialog.hide() unless event.data.focusFrameId == frameId or try window.top.isVimiumOptionsPage -    when "hide" -      HelpDialog.hide() -    else +    when "hide" then HelpDialog.hide() +    when "activate"        HelpDialog.init()        HelpDialog.show event.data diff --git a/pages/hud.coffee b/pages/hud.coffee index 17ac52be..d2e35cec 100644 --- a/pages/hud.coffee +++ b/pages/hud.coffee @@ -50,7 +50,7 @@ handlers =      document.getElementById("hud").innerText = data.text      document.getElementById("hud").classList.add "vimiumUIComponentVisible"      document.getElementById("hud").classList.remove "vimiumUIComponentHidden" -  hide: -> +  hidden: ->      # We get a flicker when the HUD later becomes visible again (with new text) unless we reset its contents      # here.      document.getElementById("hud").innerText = "" @@ -96,8 +96,7 @@ handlers =        " (No matches)"      countElement.textContent = if showMatchText then countText else "" -UIComponentServer.registerHandler (event) -> -  {data} = event -  handlers[data.name]? data +UIComponentServer.registerHandler ({data}) -> +  handlers[data.name ? data]? data  FindModeHistory.init() diff --git a/pages/options.coffee b/pages/options.coffee index c708efa7..3e1843a7 100644 --- a/pages/options.coffee +++ b/pages/options.coffee @@ -234,7 +234,7 @@ initOptionsPage = ->      event.preventDefault()    activateHelpDialog = -> -    HelpDialog.show chrome.extension.getBackgroundPage().helpDialogHtml(true, true, "Command Listing"), frameId +    HelpDialog.toggle chrome.extension.getBackgroundPage().helpDialogHtml true, true, "Command Listing"    saveOptions = ->      Option.saveOptions() diff --git a/pages/ui_component_server.coffee b/pages/ui_component_server.coffee index 4210a60e..9f72dd92 100644 --- a/pages/ui_component_server.coffee +++ b/pages/ui_component_server.coffee @@ -2,14 +2,12 @@  # Fetch the Vimium secret, register the port received from the parent window, and stop listening for messages  # on the window object. vimiumSecret is accessible only within the current instance of Vimium.  So a  # malicious host page trying to register its own port can do no better than guessing. -registerPort = (event) -> +window.addEventListener "message", registerPort = (event) ->    chrome.storage.local.get "vimiumSecret", ({vimiumSecret: secret}) ->      return unless event.source == window.parent and event.data == secret      UIComponentServer.portOpen event.ports[0]      window.removeEventListener "message", registerPort -window.addEventListener "message", registerPort -  UIComponentServer =    ownerPagePort: null    handleMessage: null @@ -23,6 +21,9 @@ UIComponentServer =    postMessage: (message) ->      @ownerPagePort?.postMessage message +  hide: -> +    @postMessage "hide" +    # We require both that the DOM is ready and that the port has been opened before the UI component is ready.    # These events can happen in either order.  We count them, and notify the content script when we've seen    # both. @@ -34,7 +35,11 @@ UIComponentServer =        else          1 -    -> @postMessage "uiComponentIsReady" if ++uiComponentIsReadyCount == 2 +    -> +      if ++uiComponentIsReadyCount == 2 +        @postMessage {name: "setIframeFrameId", iframeFrameId: window.frameId} if window.frameId? +        @postMessage "uiComponentIsReady"  root = exports ? window  root.UIComponentServer = UIComponentServer +root.isVimiumUIComponent = true diff --git a/pages/vomnibar.coffee b/pages/vomnibar.coffee index 0332b12f..449c0bac 100644 --- a/pages/vomnibar.coffee +++ b/pages/vomnibar.coffee @@ -38,7 +38,7 @@ Vomnibar =  class VomnibarUI    constructor: ->      @refreshInterval = 0 -    @postHideCallback = null +    @onHiddenCallback = null      @initDom()    setQuery: (query) -> @input.value = query @@ -56,14 +56,14 @@ class VomnibarUI    # 3. Only once the "hidden" message is received here is any required action  invoked (in onHidden).    # This ensures that the vomnibar is actually hidden before any new tab is created, and avoids flicker after    # opening a link in a new tab then returning to the original tab (see #1485). -  hide: (@postHideCallback = null) -> +  hide: (@onHiddenCallback = null) ->      UIComponentServer.postMessage "hide"      @reset() -    @completer?.reset()    onHidden: -> -    @postHideCallback?() -    @postHideCallback = null +    @onHiddenCallback?() +    @onHiddenCallback = null +    @reset()    reset: ->      @clearUpdateTimer() @@ -75,6 +75,7 @@ class VomnibarUI      @selection = @initialSelectionValue      @keywords = []      @seenTabToOpenCompletionList = false +    @completer?.reset()    updateSelection: ->      # For custom search engines, we suppress the leading term (e.g. the "w" of "w query terms") within the @@ -331,10 +332,9 @@ class BackgroundCompleter  UIComponentServer.registerHandler (event) ->    switch event.data.name ? event.data -    when "frameFocused" then Vomnibar.hide()      when "hide" then Vomnibar.hide()      when "hidden" then Vomnibar.onHidden() -    else Vomnibar.activate event.data +    when "activate" then Vomnibar.activate event.data  root = exports ? window  root.Vomnibar = Vomnibar | 
