diff options
| author | mrmr1993 | 2014-12-29 10:38:25 +0000 |
|---|---|---|
| committer | mrmr1993 | 2014-12-29 10:38:25 +0000 |
| commit | 0433dd338258dc39466593e0bce5fa3253f8d6d5 (patch) | |
| tree | 4cc3a99de2510bd107b6f762eab6f2e1792e2f6a | |
| parent | 4e3ef0b401cfb4682a17a1ee88058ed76d64be20 (diff) | |
| download | vimium-0433dd338258dc39466593e0bce5fa3253f8d6d5.tar.bz2 | |
Allow message passing directly from UIComponent.show
| -rw-r--r-- | content_scripts/ui_component.coffee | 7 | ||||
| -rw-r--r-- | content_scripts/vimium_frontend.coffee | 2 | ||||
| -rw-r--r-- | pages/ui_component_server.coffee | 9 |
3 files changed, 8 insertions, 10 deletions
diff --git a/content_scripts/ui_component.coffee b/content_scripts/ui_component.coffee index b0e4f71c..f0593f1b 100644 --- a/content_scripts/ui_component.coffee +++ b/content_scripts/ui_component.coffee @@ -29,9 +29,9 @@ class UIComponent chrome.storage.local.get "iframeMessageSecret", ({iframeMessageSecret: secret}) => @iframeElement.contentWindow.postMessage secret, chrome.runtime.getURL(""), [messageChannel.port2] - postMessage: (data) -> @iframePort.postMessage data + postMessage: (message) -> @iframePort.postMessage message - # Execute each event listener on the current event until we get a falsy return value. + # Execute each event listener on the current event until we get a non-null falsy return value. handleMessage: (event) -> for listener in @messageEventListeners retVal = listener.call this, event @@ -61,7 +61,8 @@ class UIComponent else @hide() - show: -> + show: (message) -> + @postMessage message if message? @iframeElement.setAttribute "style", @showStyle @iframeElement.focus() @showing = true diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee index a505a84a..beb6c528 100644 --- a/content_scripts/vimium_frontend.coffee +++ b/content_scripts/vimium_frontend.coffee @@ -1091,8 +1091,6 @@ Tween = testUIComponent = null testUIComponentSetup = -> testUIComponent = new UIComponent "pages/test_ui_component.html", "testUIComponent" - testUIComponent.setHideStyle "display: none;" - testUIComponent.setShowStyle "display: block;" window.activateTestUIComponent = -> testUIComponent.show() diff --git a/pages/ui_component_server.coffee b/pages/ui_component_server.coffee index 3879cea0..7b40be63 100644 --- a/pages/ui_component_server.coffee +++ b/pages/ui_component_server.coffee @@ -18,12 +18,13 @@ UIComponentServer = portOpen: (@ownerPagePort) -> @ownerPagePort.onmessage = (event) => @handleMessage event - postMessage: (data) -> @ownerPagePort.postMessage data + postMessage: (message) -> @ownerPagePort.postMessage message - # Execute each event listener on the current event until we get a falsy return value. + # Execute each event listener on the current event until we get a non-null falsy return value. handleMessage: (event) -> for listener in @messageEventListeners retVal = listener.call this, event + retVal ?= true return false unless retVal true @@ -34,9 +35,7 @@ UIComponentServer = removeEventListener: (type, listener) -> if type == "message" - listenerIndex = @messageEventListeners.indexOf listener - if listenerIndex > -1 - @messageEventListeners = @messageEventListeners.splice listenerIndex, 1 + @messageEventListeners = @messageEventListeners.filter (f) -> f != listener undefined keydownListener: (event) -> |
