Portals: Do not create a RemoteFrame for a portal when a portal if
inserted into a disconnected node.

Bug: 1029508
Change-Id: I8d90a488198b0772baa2bd41a16c6a330fc792fa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1943310
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Commit-Queue: Lucas Gadani <lfg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#720283}
diff --git a/portals/portals-adopt-predecessor.html b/portals/portals-adopt-predecessor.html
index 7054545..96d0be9 100644
--- a/portals/portals-adopt-predecessor.html
+++ b/portals/portals-adopt-predecessor.html
@@ -62,4 +62,14 @@
     });
     window.open(`resources/portals-adopt-predecessor.html?test=${test}`);
   }, "Tests that the adopted predecessor is destroyed if it isn't inserted");
+
+  async_test(t => {
+    var test = "adopt-to-disconnected-node";
+    var bc = new BroadcastChannel(`test-${test}`);
+    bc.onmessage = t.step_func_done(function(e) {
+      assert_equals(e.data, "passed");
+      bc.close();
+    });
+    window.open(`resources/portals-adopt-predecessor.html?test=${test}`);
+  }, "Tests that an adopted portal can be inserted into a disconnected node.");
 </script>
diff --git a/portals/resources/portals-adopt-predecessor-portal.html b/portals/resources/portals-adopt-predecessor-portal.html
index b7eb3b9..48e162b 100644
--- a/portals/resources/portals-adopt-predecessor-portal.html
+++ b/portals/resources/portals-adopt-predecessor-portal.html
@@ -64,5 +64,14 @@
         });
       });
     }
+    if (test == "adopt-to-disconnected-node") {
+      var portal = e.adoptPredecessor();
+      document.body.appendChild(portal);
+      var node = document.createElement("div");
+      node.appendChild(portal);
+      var bc_test = new BroadcastChannel(`test-${test}`);
+      bc_test.postMessage("passed");
+      bc_test.close();
+    }
   }
 </script>