Only remove guest from embedder when view id changes
authorKevin Sawicki <kevinsawicki@gmail.com>
Wed, 2 Nov 2016 22:19:16 +0000 (15:19 -0700)
committerKevin Sawicki <kevinsawicki@gmail.com>
Mon, 7 Nov 2016 21:42:36 +0000 (13:42 -0800)
lib/browser/guest-view-manager.js

index 556441f..9ca8326 100644 (file)
@@ -162,8 +162,12 @@ const attachGuest = function (embedder, elementInstanceId, guestInstanceId, para
   if (guestInstance.elementInstanceId) {
     const oldKey = `${guestInstance.embedder.getId()}-${guestInstance.elementInstanceId}`
     delete embedderElementsMap[oldKey]
-    webViewManager.removeGuest(guestInstance.embedder, guestInstanceId)
-    guestInstance.embedder.send(`ELECTRON_GUEST_VIEW_INTERNAL_DESTROY_GUEST-${guest.viewInstanceId}`)
+
+    // Remove guest from embedder if moving across web views
+    if (guest.viewInstanceId !== params.instanceId) {
+      webViewManager.removeGuest(guestInstance.embedder, guestInstanceId)
+      guestInstance.embedder.send(`ELECTRON_GUEST_VIEW_INTERNAL_DESTROY_GUEST-${guest.viewInstanceId}`)
+    }
   }
 
   const webPreferences = {