Browse Source

Better preventDefault for ELECTRON_GUEST_WINDOW_MANAGER_INTERNAL_WINDOW_OPEN

Ryohei Ikegami 8 years ago
parent
commit
deba6553f5
1 changed files with 4 additions and 1 deletions
  1. 4 1
      lib/browser/guest-window-manager.js

+ 4 - 1
lib/browser/guest-window-manager.js

@@ -242,11 +242,14 @@ ipcMain.on('ELECTRON_GUEST_WINDOW_MANAGER_INTERNAL_WINDOW_OPEN', function (event
                                                                   disposition, options,
                                                                   additionalFeatures, postData) {
   options = mergeBrowserWindowOptions(event.sender, options)
+  const {webContents} = options
   event.sender.emit('new-window', event, url, frameName, disposition, options, additionalFeatures)
   const newGuest = event.newGuest
   if ((event.sender.isGuest() && !event.sender.allowPopups) || event.defaultPrevented) {
     if (newGuest !== undefined && newGuest !== null) {
-      event.defaultPrevented = false
+      if (webContents == newGuest.webContents) {
+        event.defaultPrevented = false
+      }
       event.returnValue = setupGuest(event.sender, frameName, newGuest, options)
     } else {
       event.returnValue = null