diff --git a/testing/web-platform/tests/html/browsers/the-window-object/BarProp.window.js b/testing/web-platform/tests/html/browsers/the-window-object/BarProp.window.js
new file mode 100644
index 0000000000000..27a357cab591c
--- /dev/null
+++ b/testing/web-platform/tests/html/browsers/the-window-object/BarProp.window.js
@@ -0,0 +1,59 @@
+function assert_barProps(barPropObjects, visible) {
+ let lastBarProp = undefined;
+ for (const currentBarProp of barPropObjects) {
+ assert_not_equals(currentBarProp, lastBarProp, "BarBrop objects of different properties are identical");
+ assert_equals(currentBarProp.visible, visible, "a BarProp's visible is wrong");
+ lastBarProp = currentBarProp;
+ }
+}
+
+function assert_identical_barProps(barProps, w, oldBarPropObjects, visible) {
+ barProps.map(val => w[val]).map((val, index) => {
+ assert_equals(val, oldBarPropObjects[index], "BarProp identity not preserved");
+ });
+ assert_barProps(oldBarPropObjects, visible);
+}
+
+async_test(t => {
+ const frame = document.body.appendChild(document.createElement("iframe")),
+ frameW = frame.contentWindow,
+ barProps = ["locationbar", "menubar", "personalbar", "scrollbars", "statusbar", "toolbar"],
+ barPropObjects = barProps.map(val => frameW[val]);
+
+ assert_barProps(barPropObjects, true);
+ frame.remove();
+ assert_identical_barProps(barProps, frameW, barPropObjects, false);
+ t.step_timeout(() => {
+ assert_identical_barProps(barProps, frameW, barPropObjects, false);
+ t.done();
+ }, 0);
+}, "BarBrop objects of a nested Window");
+
+async_test(t => {
+ const openee = window.open("/common/blank.html"),
+ barProps = ["locationbar", "menubar", "personalbar", "scrollbars", "statusbar", "toolbar"],
+ barPropObjects = barProps.map(val => openee[val]);
+
+ // This is used to demonstrate that the Document is replaced while the global object (not the
+ // global this object) stays the same
+ openee.tiedToGlobalObject = openee.document;
+
+ assert_barProps(barPropObjects, true);
+ openee.onload = t.step_func(() => {
+ assert_own_property(openee, "tiedToGlobalObject");
+ assert_not_equals(openee.tiedToGlobalObject, openee.document);
+
+ assert_identical_barProps(barProps, openee, barPropObjects, true);
+
+ openee.onunload = t.step_func(() => {
+ assert_identical_barProps(barProps, openee, barPropObjects, true);
+ t.step_timeout(() => {
+ assert_identical_barProps(barProps, openee, barPropObjects, false);
+ t.done();
+ }, 0);
+ });
+
+ openee.close();
+ assert_identical_barProps(barProps, openee, barPropObjects, true);
+ });
+}, "BarProp objects of an auxiliary Window");
diff --git a/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-locationbar-manual.html b/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-locationbar-manual.html
deleted file mode 100644
index 4331b3b66005f..0000000000000
--- a/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-locationbar-manual.html
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
- Window Proxy locationbar visible flag Test
-
-
-
-
-
- Description
- WindowProxy.locationbar Test
-
- Manual Test Steps:
-
- - Make the locationbar visible in the user agent before executing this test.
- - You may need to manually reload afterwards.
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-menubar-manual.html b/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-menubar-manual.html
deleted file mode 100644
index 43345934a589c..0000000000000
--- a/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-menubar-manual.html
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
- Window Proxy menubar visible flag Test
-
-
-
-
-
- Description
- WindowProxy.menubar Test
-
- Manual Test Steps:
-
- - Make the menubar visible in the user agent before executing this test.
- - You may need to manually reload afterwards.
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-personalbar-manual.html b/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-personalbar-manual.html
deleted file mode 100644
index d7f109840dcf0..0000000000000
--- a/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-personalbar-manual.html
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
- Window Proxy personalbar visible flag Test
-
-
-
-
-
- Description
- WindowProxy.personalbar Test
-
- Manual Test Steps:
-
- - Make the personalbar visible in the user agent before executing this test.
- - You may need to manually reload afterwards.
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-scrollbars-manual.html b/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-scrollbars-manual.html
deleted file mode 100644
index c412bdbe5eec0..0000000000000
--- a/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-scrollbars-manual.html
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
- Window Proxy scrollbars visible flag Test
-
-
-
-
-
- Description
- WindowProxy.scrollbars Test
-
- Manual Test Steps:
-
- - Make the scrollbars visible in the user agent before executing this test.
- - You may need to manually reload afterwards.
-
-
-
-
-
-
-
diff --git a/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-statusbar-manual.html b/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-statusbar-manual.html
deleted file mode 100644
index b09fcc017585f..0000000000000
--- a/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-statusbar-manual.html
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
- WindowProxy statusbar visible flag Test
-
-
-
-
-
- Description
- WindowProxy.statusbar Test
-
- Manual Test Steps:
-
- - Make the statusbar visible in the user agent before executing this test.
- - You may need to manually reload afterwards.
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-toolbar-manual.html b/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-toolbar-manual.html
deleted file mode 100644
index ba465443151f9..0000000000000
--- a/testing/web-platform/tests/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-toolbar-manual.html
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
- WindowProxy toolbar visible flag Test
-
-
-
-
-
- Description
- WindowProxy.toolbar Test
-
- Manual Test Steps:
-
- - Make the toolbar visible in the user agent before executing this test.
- - You may need to manually reload afterwards.
-
-
-
-
-
-
-
\ No newline at end of file