From f29c7164f32c1a06daeb990cfa6dbc1645ed8f1c Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 4 Nov 2014 18:12:57 +0800 Subject: [PATCH] Translate |disposition| to string --- atom/browser/api/atom_api_web_contents.cc | 4 ++-- atom/browser/api/atom_api_window.cc | 2 +- atom/browser/api/lib/browser-window.coffee | 2 +- atom/browser/api/lib/web-contents.coffee | 11 +++++++++++ atom/browser/lib/guest-window-manager.coffee | 2 +- 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/atom/browser/api/atom_api_web_contents.cc b/atom/browser/api/atom_api_web_contents.cc index b7e8831229da..b68b9503dfae 100644 --- a/atom/browser/api/atom_api_web_contents.cc +++ b/atom/browser/api/atom_api_web_contents.cc @@ -91,7 +91,7 @@ bool WebContents::ShouldCreateWebContents( args.AppendString(target_url.spec()); args.AppendString(frame_name); args.AppendInteger(CURRENT_TAB); - Emit("new-window", args); + Emit("-new-window", args); return false; } @@ -107,7 +107,7 @@ content::WebContents* WebContents::OpenURLFromTab( args.AppendString(params.url.spec()); args.AppendString(""); args.AppendInteger(params.disposition); - Emit("new-window", args); + Emit("-new-window", args); return NULL; } diff --git a/atom/browser/api/atom_api_window.cc b/atom/browser/api/atom_api_window.cc index 32f5c6217e20..1f4a4bbe6ce4 100644 --- a/atom/browser/api/atom_api_window.cc +++ b/atom/browser/api/atom_api_window.cc @@ -91,7 +91,7 @@ void Window::WillCreatePopupWindow(const base::string16& frame_name, args.AppendString(target_url.spec()); args.AppendString(frame_name); args.AppendInteger(disposition); - Emit("new-window", args); + Emit("-new-window", args); } void Window::WillCloseWindow(bool* prevent_default) { diff --git a/atom/browser/api/lib/browser-window.coffee b/atom/browser/api/lib/browser-window.coffee index 7d27234d0a2a..e855a93524fc 100644 --- a/atom/browser/api/lib/browser-window.coffee +++ b/atom/browser/api/lib/browser-window.coffee @@ -25,7 +25,7 @@ BrowserWindow::_init = -> enumerable: true # Make new windows requested by links behave like "window.open" - @on 'new-window', (event, url, frameName) => + @on '-new-window', (event, url, frameName) => event.sender = @webContents options = show: true, width: 800, height: 600 ipc.emit 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_OPEN', event, url, frameName, options diff --git a/atom/browser/api/lib/web-contents.coffee b/atom/browser/api/lib/web-contents.coffee index fa4bed486923..e22d5e01c2b7 100644 --- a/atom/browser/api/lib/web-contents.coffee +++ b/atom/browser/api/lib/web-contents.coffee @@ -26,6 +26,17 @@ module.exports.wrap = (webContents) -> webContents.getId = -> "#{@getProcessId()}-#{@getRoutingId()}" webContents.equal = (other) -> @getId() is other.getId() + # Translate |disposition| to string for 'new-window' event. + webContents.on '-new-window', (args..., disposition) -> + disposition = + switch disposition + when 2 then 'default' + when 4 then 'foreground-tab' + when 5 then 'background-tab' + when 6, 7 then 'new-window' + else 'other' + @emit 'new-window', args..., disposition + # Tell the rpc server that a render view has been deleted and we need to # release all objects owned by it. webContents.on 'render-view-deleted', (event, processId, routingId) -> diff --git a/atom/browser/lib/guest-window-manager.coffee b/atom/browser/lib/guest-window-manager.coffee index 67aac2ea77f7..3004ab07c27e 100644 --- a/atom/browser/lib/guest-window-manager.coffee +++ b/atom/browser/lib/guest-window-manager.coffee @@ -34,7 +34,7 @@ createGuest = (embedder, url, frameName, options) -> # Routed window.open messages. ipc.on 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_OPEN', (event, args...) -> - event.sender.emit 'new-window', event, args... + event.sender.emit '-new-window', event, args... if event.sender.isGuest() or event.defaultPrevented event.returnValue = null else