diff --git a/atom/browser/lib/guest-view-manager.coffee b/atom/browser/lib/guest-view-manager.coffee index f827b3afae..d2ff96faab 100644 --- a/atom/browser/lib/guest-view-manager.coffee +++ b/atom/browser/lib/guest-view-manager.coffee @@ -56,6 +56,10 @@ createGuest = (embedder, params) -> guest.on event, (_, args...) -> embedder.send "ATOM_SHELL_GUEST_VIEW_INTERNAL_DISPATCH_EVENT-#{guest.viewInstanceId}", event, args... + # Autosize. + guest.on 'size-changed', (_, args...) -> + embedder.send "ATOM_SHELL_GUEST_VIEW_INTERNAL_SIZE_CHANGED", args... + id # Destroy an existing guest instance. diff --git a/atom/renderer/lib/guest-view-internal.coffee b/atom/renderer/lib/guest-view-internal.coffee index 9d09cc3da0..24a57ea1fa 100644 --- a/atom/renderer/lib/guest-view-internal.coffee +++ b/atom/renderer/lib/guest-view-internal.coffee @@ -20,13 +20,19 @@ dispatchEvent = (webView, event, args...) -> domEvent = new Event(event) for f, i in WEB_VIEW_EVENTS[event] domEvent[f] = args[i] - webView.webviewNode.dispatchEvent domEvent + webView.dispatchEvent domEvent module.exports = registerEvents: (webView, viewInstanceId) -> ipc.on "ATOM_SHELL_GUEST_VIEW_INTERNAL_DISPATCH_EVENT-#{viewInstanceId}", (event, args...) -> dispatchEvent webView, event, args... + ipc.on 'ATOM_SHELL_GUEST_VIEW_INTERNAL_SIZE_CHANGED', (args...) -> + domEvent = new Event('size-changed') + for f, i in ['oldWidth', 'oldHeight', 'newWidth', 'newHeight'] + domEvent[f] = args[i] + webView.onSizeChanged domEvent + createGuest: (type, params, callback) -> requestId++ ipc.send 'ATOM_SHELL_GUEST_VIEW_MANAGER_CREATE_GUEST', type, params, requestId diff --git a/atom/renderer/lib/web-view.coffee b/atom/renderer/lib/web-view.coffee index 1ebce7a4bd..e17267bc30 100644 --- a/atom/renderer/lib/web-view.coffee +++ b/atom/renderer/lib/web-view.coffee @@ -382,7 +382,7 @@ class WebView @attachWindow guestInstanceId, false @pendingGuestCreation = true - @dispatchEvent = (webViewEvent) -> + dispatchEvent: (webViewEvent) -> @webviewNode.dispatchEvent webViewEvent # Adds an 'on' property on the webview, which can be used to set/unset