summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/semantics/embedded-content
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/semantics/embedded-content')
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html6
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-inline.html4
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-cross-origin-delivered.tentative.sub.window.js (renamed from testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-cross-origin.tentative.sub.window.js)10
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-cross-origin-frame.tentative.sub.window.js18
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-delivered-both.tentative.sub.window.js20
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-delivered.tentative.sub.window.js18
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-frame-both.tentative.sub.window.js20
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-frame.tentative.sub.window.js18
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-unsandboxed.tentative.sub.window.js17
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child.tentative.sub.window.js56
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-cross-origin-escalate.tentative.sub.window.js20
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-cross-site.tentative.sub.window.js21
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-escalate-privileges.tentative.sub.window.js63
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-allow-same-origin.tentative.sub.window.js20
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-frame-allow-top.tentative.sub.window.js19
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-sandboxed-cross-origin-parent.tentative.sub.window.js19
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-sandboxed-escalate.tentative.sub.window.js20
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-sandboxed.tentative.sub.window.js19
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-unsandboxed-cross-origin-parent.tentative.sub.window.js18
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-unsandboxed-inherit.tentative.sub.window.js19
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-unsandboxed.tentative.sub.window.js18
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild.tentative.sub.window.js50
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-same-site-no-activation.tentative.sub.window.js23
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-same-site.tentative.sub.window.js24
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-user-activation-no-sticky.tentative.sub.window.js19
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-user-activation-sticky.tentative.sub.window.js (renamed from testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-user-activation.tentative.sub.window.js)10
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-object-element/usemap-casing.html92
27 files changed, 403 insertions, 258 deletions
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html b/testing/web-platform/tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html
index 56edf25aa8..855f02d3b1 100644
--- a/testing/web-platform/tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html
+++ b/testing/web-platform/tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html
@@ -55,10 +55,13 @@ function type_codecs_test(type, audioCodecs, videoCodecs) {
var typeSupported = false;
var codecSupported = false;
+ var mimeSupported = canPlayType(type);
+
// Test 'type' without codecs.
// Spec: Generally, a user agent should never return "probably" for a type
// that allows the codecs parameter if that parameter is not present.
test(function() {
+ assert_implements_optional(mimeSupported, type)
t(type, 'maybe');
t(type + ';', 'maybe');
t(type + ';codecs', 'maybe');
@@ -69,6 +72,7 @@ function type_codecs_test(type, audioCodecs, videoCodecs) {
function test_codec(codec) {
var typeWithCodec = mime(type, [codec]);
test(function() {
+ assert_implements_optional(canPlayType(typeWithCodec), type)
t(typeWithCodec, 'probably');
codecSupported = true;
}, typeWithCodec + ' (optional)');
@@ -81,6 +85,7 @@ function type_codecs_test(type, audioCodecs, videoCodecs) {
// Test different pairings and orderings of audio+video codecs.
if (audioCodecs.length > 0 && videoCodecs.length > 0) {
test(function() {
+ assert_implements_optional(mimeSupported, type)
audioCodecs.forEach(function(ac) {
videoCodecs.forEach(function(vc) {
var canPlayBoth = canPlayType(mime(type, [ac, vc]));
@@ -93,6 +98,7 @@ function type_codecs_test(type, audioCodecs, videoCodecs) {
}, type + ' codecs subset');
test(function() {
+ assert_implements_optional(mimeSupported, type)
audioCodecs.forEach(function(ac) {
videoCodecs.forEach(function(vc) {
assert_equals(canPlayType(mime(type, [ac, vc])),
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-inline.html b/testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-inline.html
index 3b4c3542a9..1a8aabcaff 100644
--- a/testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-inline.html
+++ b/testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-inline.html
@@ -4,7 +4,7 @@
<script src="/resources/testharnessreport.js"></script>
<video>
<source src="/media/test.mp4" type="video/mp4">
- <source src="/media/test.ogv" type="video/ogg">
+ <source src="/media/test.webm" type="video/webm">
</video>
<script>
test(function() {
@@ -13,4 +13,4 @@ test(function() {
track.addCue(new VTTCue(0.0, 10.0, 'wow wow'));
track.mode = 'showing';
});
-</script> \ No newline at end of file
+</script>
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-cross-origin.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-cross-origin-delivered.tentative.sub.window.js
index 95d53e1fe3..8074314557 100644
--- a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-cross-origin.tentative.sub.window.js
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-cross-origin-delivered.tentative.sub.window.js
@@ -9,16 +9,6 @@
'use strict';
-// /* ---------------------- CROSS ORIGIN (A -> B) TESTS ---------------------- */
-
-promise_test(async t => {
- const main = await setupTest();
- const iframe_1 = await createNestedIframe(main,
- "HTTP_REMOTE_ORIGIN", "allow-top-navigation", "");
-
- await attemptTopNavigation(iframe_1, true);
-}, "A cross-origin frame with frame sandbox flags can navigate top");
-
promise_test(async t => {
const main = await setupTest();
const iframe_1 = await createNestedIframe(main,
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-cross-origin-frame.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-cross-origin-frame.tentative.sub.window.js
new file mode 100644
index 0000000000..a2191b352a
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-cross-origin-frame.tentative.sub.window.js
@@ -0,0 +1,18 @@
+// META: title=Top-level navigation tests with cross origin & user activated child frames
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(async t => {
+ const main = await setupTest();
+ const iframe_1 = await createNestedIframe(
+ main, 'HTTP_REMOTE_ORIGIN', 'allow-top-navigation', '');
+
+ await attemptTopNavigation(iframe_1, true);
+}, 'A cross-origin frame with frame sandbox flags can navigate top');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-delivered-both.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-delivered-both.tentative.sub.window.js
new file mode 100644
index 0000000000..540cc338c9
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-delivered-both.tentative.sub.window.js
@@ -0,0 +1,20 @@
+// META: title=Top-level navigation tests with child frames
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(async t => {
+ const main = await setupTest();
+ const iframe_1 = await createNestedIframe(
+ main, 'HTTP_ORIGIN', '',
+ 'allow-top-navigation allow-top-navigation-by-user-activation allow-same-origin');
+
+ await attemptTopNavigation(iframe_1, true);
+}, 'A frame with both top navigation delivered sandbox flags uses the less \
+ restrictive one');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-delivered.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-delivered.tentative.sub.window.js
new file mode 100644
index 0000000000..c020513012
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-delivered.tentative.sub.window.js
@@ -0,0 +1,18 @@
+// META: title=Top-level navigation tests with child frames
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(async t => {
+ const main = await setupTest();
+ const iframe_1 = await createNestedIframe(
+ main, 'HTTP_ORIGIN', '', 'allow-top-navigation allow-same-origin');
+
+ await attemptTopNavigation(iframe_1, true);
+}, 'A same-origin frame with delivered sandbox flags can navigate top');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-frame-both.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-frame-both.tentative.sub.window.js
new file mode 100644
index 0000000000..ff7d2eb584
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-frame-both.tentative.sub.window.js
@@ -0,0 +1,20 @@
+// META: title=Top-level navigation tests with child frames
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(async t => {
+ const main = await setupTest();
+ const iframe_1 = await createNestedIframe(
+ main, 'HTTP_ORIGIN',
+ 'allow-top-navigation allow-top-navigation-by-user-activation', '');
+
+ await attemptTopNavigation(iframe_1, true);
+}, 'A frame with both top navigation frame sandbox flags uses the less \
+ restrictive one');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-frame.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-frame.tentative.sub.window.js
new file mode 100644
index 0000000000..35abc554b6
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-frame.tentative.sub.window.js
@@ -0,0 +1,18 @@
+// META: title=Top-level navigation tests with child frames
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(async t => {
+ const main = await setupTest();
+ const iframe_1 = await createNestedIframe(
+ main, 'HTTP_ORIGIN', 'allow-top-navigation allow-same-origin', '');
+
+ await attemptTopNavigation(iframe_1, true);
+}, 'A same-origin frame with frame sandbox flags can navigate top');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-unsandboxed.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-unsandboxed.tentative.sub.window.js
new file mode 100644
index 0000000000..c2d78b6dd5
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child-unsandboxed.tentative.sub.window.js
@@ -0,0 +1,17 @@
+// META: title=Top-level navigation tests with child frames
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(async t => {
+ const main = await setupTest();
+ const iframe_1 = await createNestedIframe(main, 'HTTP_ORIGIN', '', '');
+
+ await attemptTopNavigation(iframe_1, true);
+}, 'A same-origin unsandboxed frame can navigate top');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child.tentative.sub.window.js
deleted file mode 100644
index 1d5ea93830..0000000000
--- a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-child.tentative.sub.window.js
+++ /dev/null
@@ -1,56 +0,0 @@
-// META: title=Top-level navigation tests with child frames
-// META: script=/common/dispatcher/dispatcher.js
-// META: script=/common/get-host-info.sub.js
-// META: script=/common/utils.js
-// META: script=/resources/testdriver.js
-// META: script=/resources/testdriver-vendor.js
-// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
-// META: script=./resources/sandbox-top-navigation-helper.sub.js
-
-'use strict';
-
-/* ----------------------- SAME ORIGIN (A -> A) TESTS ----------------------- */
-
-promise_test(async t => {
- const main = await setupTest();
- const iframe_1 = await createNestedIframe(main,
- "HTTP_ORIGIN", "", "allow-top-navigation allow-same-origin");
-
- await attemptTopNavigation(iframe_1, true);
-}, "A same-origin frame with delivered sandbox flags can navigate top");
-
-promise_test(async t => {
- const main = await setupTest();
- const iframe_1 = await createNestedIframe(main,
- "HTTP_ORIGIN", "allow-top-navigation allow-same-origin", "");
-
- await attemptTopNavigation(iframe_1, true);
-}, "A same-origin frame with frame sandbox flags can navigate top");
-
-promise_test(async t => {
- const main = await setupTest();
- const iframe_1 = await createNestedIframe(main,
- "HTTP_ORIGIN", "", "");
-
- await attemptTopNavigation(iframe_1, true);
-}, "A same-origin unsandboxed frame can navigate top");
-
-promise_test(async t => {
- const main = await setupTest();
- const iframe_1 = await createNestedIframe(main,
- "HTTP_ORIGIN", "",
- "allow-top-navigation allow-top-navigation-by-user-activation allow-same-origin");
-
- await attemptTopNavigation(iframe_1, true);
-}, "A frame with both top navigation delivered sandbox flags uses the less \
- restrictive one");
-
-promise_test(async t => {
- const main = await setupTest();
- const iframe_1 = await createNestedIframe(main,
- "HTTP_ORIGIN",
- "allow-top-navigation allow-top-navigation-by-user-activation", "");
-
- await attemptTopNavigation(iframe_1, true);
-}, "A frame with both top navigation frame sandbox flags uses the less \
- restrictive one");
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-cross-origin-escalate.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-cross-origin-escalate.tentative.sub.window.js
new file mode 100644
index 0000000000..c394699d85
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-cross-origin-escalate.tentative.sub.window.js
@@ -0,0 +1,20 @@
+// META: title=Top-level navigation tests with frames that try to give themselves top-nav permission
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(async t => {
+ const main = await setupTest();
+ const iframe_1 = await createNestedIframe(main, 'HTTP_REMOTE_ORIGIN', '', '');
+ const iframe_2 = await createNestedIframe(
+ iframe_1, 'HTTP_REMOTE_ORIGIN', 'allow-top-navigation', '');
+
+ await attemptTopNavigation(iframe_2, false);
+}, 'A cross origin unsandboxed frame can\'t escalate privileges in a child \
+ frame');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-cross-site.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-cross-site.tentative.sub.window.js
index 26db4eeaca..cacc5bd983 100644
--- a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-cross-site.tentative.sub.window.js
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-cross-site.tentative.sub.window.js
@@ -20,24 +20,3 @@ promise_test(async t => {
await attemptTopNavigation(new_iframe, false);
}, "A cross-site unsandboxed iframe navigation consumes user activation and " +
"disallows top-level navigation.");
-
-promise_test(async t => {
- const main = await setupTest();
-
- const iframe = await createNestedIframe(main, "HTTP_ORIGIN", "", "");
- await activate(iframe);
-
- const new_iframe = await navigateFrameTo(iframe, "HTTP_REMOTE_ORIGIN");
- await attemptTopNavigation(new_iframe, true);
-}, "A same-site unsandboxed iframe navigation does not consume user " +
- "activation and allows top-level navigation.");
-
-promise_test(async t => {
- const main = await setupTest();
-
- const iframe = await createNestedIframe(main, "HTTP_ORIGIN", "", "");
-
- const new_iframe = await navigateFrameTo(iframe, "HTTP_REMOTE_ORIGIN");
- await attemptTopNavigation(new_iframe, false);
-}, "A same-site unsandboxed iframe navigation without sticky user activation " +
- "does not allow top-level navigation.");
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-escalate-privileges.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-escalate-privileges.tentative.sub.window.js
deleted file mode 100644
index 2ea0ba606e..0000000000
--- a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-escalate-privileges.tentative.sub.window.js
+++ /dev/null
@@ -1,63 +0,0 @@
-// META: title=Top-level navigation tests with frames that try to give themselves top-nav permission
-// META: script=/common/dispatcher/dispatcher.js
-// META: script=/common/get-host-info.sub.js
-// META: script=/common/utils.js
-// META: script=/resources/testdriver.js
-// META: script=/resources/testdriver-vendor.js
-// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
-// META: script=./resources/sandbox-top-navigation-helper.sub.js
-
-'use strict';
-
-promise_test(async t => {
- const main = await setupTest();
- const iframe_1 = await createNestedIframe(main,
- "HTTP_REMOTE_ORIGIN", "", "");
- const iframe_2 = await createNestedIframe(iframe_1,
- "HTTP_REMOTE_ORIGIN", "allow-top-navigation", "");
-
- await attemptTopNavigation(iframe_2, false);
-}, "A cross origin unsandboxed frame can't escalate privileges in a child \
- frame");
-
-promise_test(async t => {
- const main = await setupTest();
- const iframe_1 = await createNestedIframe(main,
- "HTTP_REMOTE_ORIGIN", "allow-top-navigation", "");
- const iframe_2 = await createNestedIframe(iframe_1,
- "OTHER_ORIGIN", "", "");
-
- await attemptTopNavigation(iframe_2, true);
-}, "An unsandboxed grandchild inherits its parents ability to navigate top.");
-
-promise_test(async t => {
- const main = await setupTest();
- const iframe_1 = await createNestedIframe(main,
- "HTTP_ORIGIN", "", "");
- const iframe_2 = await createNestedIframe(iframe_1,
- "HTTP_ORIGIN", "allow-top-navigation", "");
-
- await attemptTopNavigation(iframe_2, true);
-}, "A same-origin grandchild with frame allow-top can navigate top");
-
-promise_test(async t => {
- const main = await setupTest();
- const iframe_1 = await createNestedIframe(main,
- "HTTP_ORIGIN", "", "");
- const iframe_2 = await createNestedIframe(iframe_1,
- "HTTP_ORIGIN", "", "allow-top-navigation");
-
- await attemptTopNavigation(iframe_2, false);
-}, "A sandboxed same-origin grandchild without allow-same-origin can't \
- escalate its own top-nav privileges");
-
-promise_test(async t => {
- const main = await setupTest();
- const iframe_1 = await createNestedIframe(main,
- "HTTP_ORIGIN", "", "");
- const iframe_2 = await createNestedIframe(iframe_1,
- "HTTP_ORIGIN", "", "allow-same-origin allow-top-navigation");
-
- await attemptTopNavigation(iframe_2, true);
-}, "A sandboxed same-origin grandchild with allow-same-origin can \
- give itself top-nav privileges");
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-allow-same-origin.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-allow-same-origin.tentative.sub.window.js
new file mode 100644
index 0000000000..2be6cd66a7
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-allow-same-origin.tentative.sub.window.js
@@ -0,0 +1,20 @@
+// META: title=Top-level navigation tests with frames that try to give themselves top-nav permission
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(async t => {
+ const main = await setupTest();
+ const iframe_1 = await createNestedIframe(main, 'HTTP_ORIGIN', '', '');
+ const iframe_2 = await createNestedIframe(
+ iframe_1, 'HTTP_ORIGIN', '', 'allow-same-origin allow-top-navigation');
+
+ await attemptTopNavigation(iframe_2, true);
+}, 'A sandboxed same-origin grandchild with allow-same-origin can \
+ give itself top-nav privileges');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-frame-allow-top.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-frame-allow-top.tentative.sub.window.js
new file mode 100644
index 0000000000..43ca5eb404
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-frame-allow-top.tentative.sub.window.js
@@ -0,0 +1,19 @@
+// META: title=Top-level navigation tests with frames that try to give themselves top-nav permission
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(async t => {
+ const main = await setupTest();
+ const iframe_1 = await createNestedIframe(main, 'HTTP_ORIGIN', '', '');
+ const iframe_2 = await createNestedIframe(
+ iframe_1, 'HTTP_ORIGIN', 'allow-top-navigation', '');
+
+ await attemptTopNavigation(iframe_2, true);
+}, 'A same-origin grandchild with frame allow-top can navigate top');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-sandboxed-cross-origin-parent.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-sandboxed-cross-origin-parent.tentative.sub.window.js
new file mode 100644
index 0000000000..8833ad42bb
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-sandboxed-cross-origin-parent.tentative.sub.window.js
@@ -0,0 +1,19 @@
+// META: title=Top-level navigation tests with grandchild frames
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(async t => {
+ const main = await setupTest();
+ const iframe_1 = await createNestedIframe(main, 'HTTP_REMOTE_ORIGIN', '', '');
+ const iframe_2 = await createNestedIframe(
+ iframe_1, 'HTTP_ORIGIN', 'allow-top-navigation allow-same-origin', '');
+
+ await attemptTopNavigation(iframe_2, true);
+}, 'A same-origin sandboxed grandchild in a cross-origin parent can navigate top');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-sandboxed-escalate.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-sandboxed-escalate.tentative.sub.window.js
new file mode 100644
index 0000000000..448925144a
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-sandboxed-escalate.tentative.sub.window.js
@@ -0,0 +1,20 @@
+// META: title=Top-level navigation tests with frames that try to give themselves top-nav permission
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(async t => {
+ const main = await setupTest();
+ const iframe_1 = await createNestedIframe(main, 'HTTP_ORIGIN', '', '');
+ const iframe_2 = await createNestedIframe(
+ iframe_1, 'HTTP_ORIGIN', '', 'allow-top-navigation');
+
+ await attemptTopNavigation(iframe_2, false);
+}, 'A sandboxed same-origin grandchild without allow-same-origin can\'t \
+ escalate its own top-nav privileges');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-sandboxed.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-sandboxed.tentative.sub.window.js
new file mode 100644
index 0000000000..a4b43a7b1f
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-sandboxed.tentative.sub.window.js
@@ -0,0 +1,19 @@
+// META: title=Top-level navigation tests with grandchild frames
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(async t => {
+ const main = await setupTest();
+ const iframe_1 = await createNestedIframe(main, 'HTTP_ORIGIN', '', '');
+ const iframe_2 =
+ await createNestedIframe(iframe_1, 'HTTP_ORIGIN', 'allow-scripts', '');
+
+ await attemptTopNavigation(iframe_2, false);
+}, 'A fully sandboxed same-origin grandchild can\'t navigate top');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-unsandboxed-cross-origin-parent.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-unsandboxed-cross-origin-parent.tentative.sub.window.js
new file mode 100644
index 0000000000..5abbb9c30c
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-unsandboxed-cross-origin-parent.tentative.sub.window.js
@@ -0,0 +1,18 @@
+// META: title=Top-level navigation tests with grandchild frames
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(async t => {
+ const main = await setupTest();
+ const iframe_1 = await createNestedIframe(main, 'HTTP_REMOTE_ORIGIN', '', '');
+ const iframe_2 = await createNestedIframe(iframe_1, 'HTTP_ORIGIN', '', '');
+
+ await attemptTopNavigation(iframe_2, true);
+}, 'A same-origin grandchild in a cross-origin parent can navigate top');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-unsandboxed-inherit.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-unsandboxed-inherit.tentative.sub.window.js
new file mode 100644
index 0000000000..a31c56b935
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-unsandboxed-inherit.tentative.sub.window.js
@@ -0,0 +1,19 @@
+// META: title=Top-level navigation tests with frames that try to give themselves top-nav permission
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(async t => {
+ const main = await setupTest();
+ const iframe_1 = await createNestedIframe(
+ main, 'HTTP_REMOTE_ORIGIN', 'allow-top-navigation', '');
+ const iframe_2 = await createNestedIframe(iframe_1, 'OTHER_ORIGIN', '', '');
+
+ await attemptTopNavigation(iframe_2, true);
+}, 'An unsandboxed grandchild inherits its parents ability to navigate top.');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-unsandboxed.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-unsandboxed.tentative.sub.window.js
new file mode 100644
index 0000000000..7fe80dfa1b
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild-unsandboxed.tentative.sub.window.js
@@ -0,0 +1,18 @@
+// META: title=Top-level navigation tests with grandchild frames
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(async t => {
+ const main = await setupTest();
+ const iframe_1 = await createNestedIframe(main, 'HTTP_ORIGIN', '', '');
+ const iframe_2 = await createNestedIframe(iframe_1, 'HTTP_ORIGIN', '', '');
+
+ await attemptTopNavigation(iframe_2, true);
+}, 'An unsandboxed same-origin grandchild can navigate top');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild.tentative.sub.window.js
deleted file mode 100644
index 326c1dd54a..0000000000
--- a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-grandchild.tentative.sub.window.js
+++ /dev/null
@@ -1,50 +0,0 @@
-// META: title=Top-level navigation tests with grandchild frames
-// META: script=/common/dispatcher/dispatcher.js
-// META: script=/common/get-host-info.sub.js
-// META: script=/common/utils.js
-// META: script=/resources/testdriver.js
-// META: script=/resources/testdriver-vendor.js
-// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
-// META: script=./resources/sandbox-top-navigation-helper.sub.js
-
-'use strict';
-
-promise_test(async t => {
- const main = await setupTest();
- const iframe_1 = await createNestedIframe(main,
- "HTTP_ORIGIN", "", "");
- const iframe_2 = await createNestedIframe(iframe_1,
- "HTTP_ORIGIN", "allow-scripts", "");
-
- await attemptTopNavigation(iframe_2, false);
-}, "A fully sandboxed same-origin grandchild can't navigate top");
-
-promise_test(async t => {
- const main = await setupTest();
- const iframe_1 = await createNestedIframe(main,
- "HTTP_ORIGIN", "", "");
- const iframe_2 = await createNestedIframe(iframe_1,
- "HTTP_ORIGIN", "", "");
-
- await attemptTopNavigation(iframe_2, true);
-}, "An unsandboxed same-origin grandchild can navigate top");
-
-promise_test(async t => {
- const main = await setupTest();
- const iframe_1 = await createNestedIframe(main,
- "HTTP_REMOTE_ORIGIN", "", "");
- const iframe_2 = await createNestedIframe(iframe_1,
- "HTTP_ORIGIN", "", "");
-
- await attemptTopNavigation(iframe_2, true);
-}, "A same-origin grandchild in a cross-origin parent can navigate top");
-
-promise_test(async t => {
- const main = await setupTest();
- const iframe_1 = await createNestedIframe(main,
- "HTTP_REMOTE_ORIGIN", "", "");
- const iframe_2 = await createNestedIframe(iframe_1,
- "HTTP_ORIGIN", "allow-top-navigation allow-same-origin", "");
-
- await attemptTopNavigation(iframe_2, true);
-}, "A same-origin sandboxed grandchild in a cross-origin parent can navigate top"); \ No newline at end of file
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-same-site-no-activation.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-same-site-no-activation.tentative.sub.window.js
new file mode 100644
index 0000000000..03350e76e2
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-same-site-no-activation.tentative.sub.window.js
@@ -0,0 +1,23 @@
+// META: title=Top-level navigation tests with cross origin & user activated child frames
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-actions.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(
+ async t => {
+ const main = await setupTest();
+
+ const iframe = await createNestedIframe(main, 'HTTP_ORIGIN', '', '');
+
+ const new_iframe = await navigateFrameTo(iframe, 'HTTP_REMOTE_ORIGIN');
+ await attemptTopNavigation(new_iframe, false);
+ },
+ 'A same-site unsandboxed iframe navigation without sticky user activation ' +
+ 'does not allow top-level navigation.');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-same-site.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-same-site.tentative.sub.window.js
new file mode 100644
index 0000000000..0ee6b8edcc
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-same-site.tentative.sub.window.js
@@ -0,0 +1,24 @@
+// META: title=Top-level navigation tests with cross origin & user activated child frames
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-actions.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(
+ async t => {
+ const main = await setupTest();
+
+ const iframe = await createNestedIframe(main, 'HTTP_ORIGIN', '', '');
+ await activate(iframe);
+
+ const new_iframe = await navigateFrameTo(iframe, 'HTTP_REMOTE_ORIGIN');
+ await attemptTopNavigation(new_iframe, true);
+ },
+ 'A same-site unsandboxed iframe navigation does not consume user ' +
+ 'activation and allows top-level navigation.');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-user-activation-no-sticky.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-user-activation-no-sticky.tentative.sub.window.js
new file mode 100644
index 0000000000..c62155ce30
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-user-activation-no-sticky.tentative.sub.window.js
@@ -0,0 +1,19 @@
+// META: title=Top-level navigation tests with cross origin & user activated child frames
+// META: script=/common/dispatcher/dispatcher.js
+// META: script=/common/get-host-info.sub.js
+// META: script=/common/utils.js
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-actions.js
+// META: script=/resources/testdriver-vendor.js
+// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js
+// META: script=./resources/sandbox-top-navigation-helper.sub.js
+
+'use strict';
+
+promise_test(async t => {
+ const main = await setupTest();
+ const iframe_1 = await createNestedIframe(
+ main, 'HTTP_ORIGIN', 'allow-top-navigation-by-user-activation', '');
+
+ await attemptTopNavigation(iframe_1, false);
+}, 'allow-top-navigation-by-user-activation set but no sticky activation');
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-user-activation.tentative.sub.window.js b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-user-activation-sticky.tentative.sub.window.js
index 5079c8ad14..e62fbdfb22 100644
--- a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-user-activation.tentative.sub.window.js
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/sandbox-top-navigation-user-activation-sticky.tentative.sub.window.js
@@ -10,8 +10,6 @@
'use strict';
-/* ------------------------- USER ACTIVATION TESTS ------------------------- */
-
promise_test(async t => {
const main = await setupTest();
const iframe_1 = await createNestedIframe(main,
@@ -20,11 +18,3 @@ promise_test(async t => {
await attemptTopNavigation(iframe_1, true);
}, "Allow top with user activation + user activation");
-
-promise_test(async t => {
- const main = await setupTest();
- const iframe_1 = await createNestedIframe(main,
- "HTTP_ORIGIN", "allow-top-navigation-by-user-activation", "");
-
- await attemptTopNavigation(iframe_1, false);
-}, "allow-top-navigation-by-user-activation set but no sticky activation");
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-object-element/usemap-casing.html b/testing/web-platform/tests/html/semantics/embedded-content/the-object-element/usemap-casing.html
index 114a472fb6..9431c73fe7 100644
--- a/testing/web-platform/tests/html/semantics/embedded-content/the-object-element/usemap-casing.html
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-object-element/usemap-casing.html
@@ -8,53 +8,53 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<div id="log"></div>
+<object data="/images/threecolors.png" usemap="#sanityCheck" width="100" height="100"></object>
+<map name="sanityCheck"><area shape="rect" coords="0,0,100,100"></map>
+
+<object data="/images/threecolors.png" usemap="#sImPlE" width="100" height="100"></object>
+<map name="simple"><area shape="rect" coords="0,0,100,100"></map>
+<map name="SIMPLE"><area shape="rect" coords="0,0,100,100"></map>
+
+<object data="/images/threecolors.png" usemap="#paSSfield-killroyß" width="100" height="100"></object>
+<map name="passfield-killroyß"><area shape="rect" coords="0,0,100,100"></map>
+<map name="PASSFIELD-KILLROYß"><area shape="rect" coords="0,0,100,100"></map>
+<map name="paſſfield-killroyß"><area shape="rect" coords="0,0,100,100"></map>
+<map name="passfield-&#x212a;illroyß"><area shape="rect" coords="0,0,100,100"></map>
+<map name="paßfield-killroyß"><area shape="rect" coords="0,0,100,100"></map>
+<map name="paẞfield-killroyß"><area shape="rect" coords="0,0,100,100"></map>
+<map name="passfield-killroyẞ"><area shape="rect" coords="0,0,100,100"></map>
+<map name="passfield-killroyß"><area shape="rect" coords="0,0,100,100"></map>
+<map name="passfıeld-killroyß"><area shape="rect" coords="0,0,100,100"></map>
+<map name="passfİeld-killroyß"><area shape="rect" coords="0,0,100,100"></map>
+
+<object data="/images/threecolors.png" usemap="#глупый" width="100" height="100"></object>
+<map name="глупы&#x438;&#x306;"><area shape="rect" coords="0,0,100,100"></map>
+<map name="ГЛУПЫЙ"><area shape="rect" coords="0,0,100,100"></map>
+<map name="ГЛУПЫ&#x418;&#x306;"><area shape="rect" coords="0,0,100,100"></map>
+
+<object data="/images/threecolors.png" usemap="#åωk" width="100" height="100"></object>
+<map name="ÅΩK"><area shape="rect" coords="0,0,100,100"></map>
+<map name="&#x212b;ωk"><area shape="rect" coords="0,0,100,100"></map>
+<map name="å&#x2126;k"><area shape="rect" coords="0,0,100,100"></map>
+<map name="åω&#x212a;"><area shape="rect" coords="0,0,100,100"></map>
+
+<object data="/images/threecolors.png" usemap="#blah1" width="100" height="100"></object>
+<map name="blah&#x2460;"><area shape="rect" coords="0,0,100,100"></map>
+<map name="bl&#x24b6;h1"><area shape="rect" coords="0,0,100,100"></map>
+<map name="bl&#x24d0;h1"><area shape="rect" coords="0,0,100,100"></map>
+
+<object data="/images/threecolors.png" usemap="#t&Eacute;dz5アパートFi" width="100" height="100"></object>
+<map name="T&Eacute;DZ5アパートFi"><area shape="rect" coords="0,0,100,100"></map>
+<map name="T&eacute;&#x01F1;&#x2075;アパートFi"><area shape="rect" coords="0,0,100,100"></map>
+<map name="t&Eacute;dz5&#x3300;Fi"><area shape="rect" coords="0,0,100,100"></map>
+<map name="t&Eacute;dz5&#x30A2;&#x30CF;&#x309A;&#x30FC;&#x30C8;Fi"><area shape="rect" coords="0,0,100,100"></map>
+<map name="T&Eacute;DZ⁵アパートFi"><area shape="rect" coords="0,0,100,100"></map>
+<map name="T&Eacute;DZ5アパートfi"><area shape="rect" coords="0,0,100,100"></map>
+
+<object data="/images/threecolors.png" usemap="#ΣΣ" width="100" height="100"></object>
+<map name="σς"><area shape="rect" coords="0,0,100,100"></map>
-<object data="/images/threecolors.png" usemap="#sanityCheck" width="300" height="300"></object>
-<map name="sanityCheck"><area shape="rect" coords="0,0,300,300"></map>
-
-<object data="/images/threecolors.png" usemap="#sImPlE" width="300" height="300"></object>
-<map name="simple"><area shape="rect" coords="0,0,300,300"></map>
-<map name="SIMPLE"><area shape="rect" coords="0,0,300,300"></map>
-
-<object data="/images/threecolors.png" usemap="#paSSfield-killroyß" width="300" height="300"></object>
-<map name="passfield-killroyß"><area shape="rect" coords="0,0,300,300"></map>
-<map name="PASSFIELD-KILLROYß"><area shape="rect" coords="0,0,300,300"></map>
-<map name="paſſfield-killroyß"><area shape="rect" coords="0,0,300,300"></map>
-<map name="passfield-&#x212a;illroyß"><area shape="rect" coords="0,0,300,300"></map>
-<map name="paßfield-killroyß"><area shape="rect" coords="0,0,300,300"></map>
-<map name="paẞfield-killroyß"><area shape="rect" coords="0,0,300,300"></map>
-<map name="passfield-killroyẞ"><area shape="rect" coords="0,0,300,300"></map>
-<map name="passfield-killroyß"><area shape="rect" coords="0,0,300,300"></map>
-<map name="passfıeld-killroyß"><area shape="rect" coords="0,0,300,300"></map>
-<map name="passfİeld-killroyß"><area shape="rect" coords="0,0,300,300"></map>
-
-<object data="/images/threecolors.png" usemap="#глупый" width="300" height="300"></object>
-<map name="глупы&#x438;&#x306;"><area shape="rect" coords="0,0,300,300"></map>
-<map name="ГЛУПЫЙ"><area shape="rect" coords="0,0,300,300"></map>
-<map name="ГЛУПЫ&#x418;&#x306;"><area shape="rect" coords="0,0,300,300"></map>
-
-<object data="/images/threecolors.png" usemap="#åωk" width="300" height="300"></object>
-<map name="ÅΩK"><area shape="rect" coords="0,0,300,300"></map>
-<map name="&#x212b;ωk"><area shape="rect" coords="0,0,300,300"></map>
-<map name="å&#x2126;k"><area shape="rect" coords="0,0,300,300"></map>
-<map name="åω&#x212a;"><area shape="rect" coords="0,0,300,300"></map>
-
-<object data="/images/threecolors.png" usemap="#blah1" width="300" height="300"></object>
-<map name="blah&#x2460;"><area shape="rect" coords="0,0,300,300"></map>
-<map name="bl&#x24b6;h1"><area shape="rect" coords="0,0,300,300"></map>
-<map name="bl&#x24d0;h1"><area shape="rect" coords="0,0,300,300"></map>
-
-<object data="/images/threecolors.png" usemap="#t&Eacute;dz5アパートFi" width="300" height="300"></object>
-<map name="T&Eacute;DZ5アパートFi"><area shape="rect" coords="0,0,300,300"></map>
-<map name="T&eacute;&#x01F1;&#x2075;アパートFi"><area shape="rect" coords="0,0,300,300"></map>
-<map name="t&Eacute;dz5&#x3300;Fi"><area shape="rect" coords="0,0,300,300"></map>
-<map name="t&Eacute;dz5&#x30A2;&#x30CF;&#x309A;&#x30FC;&#x30C8;Fi"><area shape="rect" coords="0,0,300,300"></map>
-<map name="T&Eacute;DZ⁵アパートFi"><area shape="rect" coords="0,0,300,300"></map>
-<map name="T&Eacute;DZ5アパートfi"><area shape="rect" coords="0,0,300,300"></map>
-
-<object data="/images/threecolors.png" usemap="#ΣΣ" width="300" height="300"></object>
-<map name="σς"><area shape="rect" coords="0,0,300,300"></map>
+<div id="log"></div>
<script>
"use strict";