diff --git a/atom/browser/lib/guest-window-manager.coffee b/atom/browser/lib/guest-window-manager.coffee
index 2dc5056a57ea..9a5c0ca349ae 100644
--- a/atom/browser/lib/guest-window-manager.coffee
+++ b/atom/browser/lib/guest-window-manager.coffee
@@ -22,7 +22,7 @@ createGuest = (embedder, url, frameName, options) ->
     guest.loadUrl url
     return guest.id
 
-  guest = new BrowserWindow(mergeBrowserWindowOptions(embedder, options))
+  guest = new BrowserWindow(options)
   guest.loadUrl url
 
   # Remember the embedder, will be used by window.opener methods.
@@ -51,11 +51,12 @@ createGuest = (embedder, url, frameName, options) ->
 # Routed window.open messages.
 ipc.on 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_OPEN', (event, args...) ->
   [url, frameName, options] = args
-  event.sender.emit 'new-window', event, url, frameName, 'new-window'
+  options = mergeBrowserWindowOptions event.sender, options
+  event.sender.emit 'new-window', event, url, frameName, 'new-window', options
   if (event.sender.isGuest() and not event.sender.allowPopups) or event.defaultPrevented
     event.returnValue = null
   else
-    event.returnValue = createGuest event.sender, args...
+    event.returnValue = createGuest event.sender, url, frameName, options
 
 ipc.on 'ATOM_SHELL_GUEST_WINDOW_MANAGER_WINDOW_CLOSE', (event, guestId) ->
   BrowserWindow.fromId(guestId)?.destroy()
diff --git a/atom/renderer/lib/web-view/guest-view-internal.coffee b/atom/renderer/lib/web-view/guest-view-internal.coffee
index b491184fb8d7..2852d1122874 100644
--- a/atom/renderer/lib/web-view/guest-view-internal.coffee
+++ b/atom/renderer/lib/web-view/guest-view-internal.coffee
@@ -16,7 +16,7 @@ WEB_VIEW_EVENTS =
   'did-get-redirect-request': ['oldUrl', 'newUrl', 'isMainFrame']
   'dom-ready': []
   'console-message': ['level', 'message', 'line', 'sourceId']
-  'new-window': ['url', 'frameName', 'disposition']
+  'new-window': ['url', 'frameName', 'disposition', 'options']
   'close': []
   'crashed': []
   'gpu-crashed': []
diff --git a/docs/api/web-contents.md b/docs/api/web-contents.md
index f2eebbc98f84..c2dccc3a876c 100644
--- a/docs/api/web-contents.md
+++ b/docs/api/web-contents.md
@@ -111,6 +111,8 @@ Returns:
 * `frameName` String
 * `disposition` String - Can be `default`, `foreground-tab`, `background-tab`,
   `new-window` and `other`.
+* `options` Object - The options which will be used for creating the new
+  `BrowserWindow`.
 
 Emitted when the page requests to open a new window for a `url`. It could be
 requested by `window.open` or an external link like `<a target='_blank'>`.
diff --git a/docs/api/web-view-tag.md b/docs/api/web-view-tag.md
index 7b4aa2ebf86c..3fda3a98edb5 100644
--- a/docs/api/web-view-tag.md
+++ b/docs/api/web-view-tag.md
@@ -505,6 +505,8 @@ Returns:
 * `frameName` String
 * `disposition` String - Can be `default`, `foreground-tab`, `background-tab`,
   `new-window` and `other`.
+* `options` Object - The options which should be used for creating the new
+  `BrowserWindow`.
 
 Fired when the guest page attempts to open a new browser window.