diff options
Diffstat (limited to 'pages/ui_component_server.coffee')
| -rw-r--r-- | pages/ui_component_server.coffee | 13 | 
1 files changed, 9 insertions, 4 deletions
| 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 | 
