diff --git a/atom/browser/lib/guest-window-manager.coffee b/atom/browser/lib/guest-window-manager.coffee index 3b331260b1..7ed42ecff2 100644 --- a/atom/browser/lib/guest-window-manager.coffee +++ b/atom/browser/lib/guest-window-manager.coffee @@ -32,9 +32,9 @@ createGuest = (embedder, url, frameName, options) -> guest.once 'closed', -> delete frameToGuest[frameName] - ipc.on 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_OPENER_POSTMESSAGE', (event, method, args...) -> - if embedder.getUrl().indexOf(args[1]) is 0 or args[1] is '*' - embedder.send 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_POSTMESSAGE', args[0], args[1] + ipc.on 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_OPENER_POSTMESSAGE', (event, message, targetOrigin) -> + if embedder.getUrl().indexOf(targetOrigin) is 0 or targetOrigin is '*' + embedder.send 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_POSTMESSAGE', message, targetOrigin guest.id @@ -55,11 +55,11 @@ ipc.on 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_METHOD', (event, guestId, method, return unless BrowserWindow.windows.has guestId BrowserWindow.windows.get(guestId)[method] args... -ipc.on 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_POSTMESSAGE', (event, guestId, method, args...) -> +ipc.on 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_POSTMESSAGE', (event, guestId, message, targetOrigin) -> return unless BrowserWindow.windows.has guestId window = BrowserWindow.windows.get(guestId) - if window.getUrl().indexOf(args[1]) is 0 or args[1] is '*' - window.send 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_POSTMESSAGE', args[0], args[1] + if window.getUrl().indexOf(targetOrigin) is 0 or targetOrigin is '*' + window.send 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_POSTMESSAGE', message, targetOrigin ipc.on 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD', (event, guestId, method, args...) -> return unless BrowserWindow.windows.has guestId diff --git a/atom/renderer/lib/override.coffee b/atom/renderer/lib/override.coffee index eba0e9c982..a727da59c4 100644 --- a/atom/renderer/lib/override.coffee +++ b/atom/renderer/lib/override.coffee @@ -5,11 +5,9 @@ remote = require 'remote' # Window object returned by "window.open". class FakeWindow constructor: (@guestId) -> - that = this - - ipc.on 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_CLOSED', (guestId) -> - if guestId is that.guestId - that.closed = true + ipc.on 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_CLOSED', (guestId) => + if guestId is @guestId + @closed = true close: -> ipc.send 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_CLOSE', @guestId @@ -20,8 +18,8 @@ class FakeWindow blur: -> ipc.send 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_METHOD', @guestId, 'blur' - postMessage: (args...) -> - ipc.send 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_POSTMESSAGE', @guestId, 'postMessage', args[0], args[1] + postMessage: (message, targetOrigin) -> + ipc.send 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_POSTMESSAGE', @guestId, message, targetOrigin eval: (args...) -> ipc.send 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD', @guestId, 'executeJavaScript', args... @@ -73,8 +71,8 @@ window.prompt = -> throw new Error('prompt() is and will not be supported in atom-shell.') window.opener = - postMessage: (args...) -> - ipc.send 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_OPENER_POSTMESSAGE', 'postMessage', args[0], args[1] + postMessage: (message, targetOrigin) -> + ipc.send 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_OPENER_POSTMESSAGE', message, targetOrigin -ipc.on 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_POSTMESSAGE', (data, origin) -> - window.postMessage(data, origin) +ipc.on 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_POSTMESSAGE', (message, targetOrigin) -> + window.postMessage(message, targetOrigin)