Resync web-platform-tests/html tests from upstream
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Dec 2019 22:54:52 +0000 (22:54 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Dec 2019 22:54:52 +0000 (22:54 +0000)
https://bugs.webkit.org/show_bug.cgi?id=205424

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Resync web-platform-tests/html tests from upstream b5b7813e9ce247495b0df.

* resources/resource-files.json:
* web-platform-tests/html/*: Updated.

LayoutTests:

* TestExpectations:
* platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
* platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
* platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
* platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt:
* platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
* tests-options.json:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253791 268f45cc-cd09-0410-ab3c-d52691b4dbfc

479 files changed:
LayoutTests/ChangeLog
LayoutTests/TestExpectations
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/resources/resource-files.json
LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-frag-percent-encoded.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-top.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/allow_prototype_cycle_through_location.sub-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/allow_prototype_cycle_through_location.sub.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-weird-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-weird.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-prototype-setting-cross-origin.sub-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-prototype-setting-cross-origin.sub.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-prototype-setting-same-origin-domain.sub-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-prototype-setting-same-origin-domain.sub.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/section_network_offline-manual.https.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/offline/section_network_online-manual.https.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_feature_policy.tentative.sub.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/resources/post-done-to-opener.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/resources/w3c-import.log [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-disallow-scripts-via-unsandboxed-popup.tentative-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-disallow-scripts-via-unsandboxed-popup.tentative.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-navigation-timing-iframe.tentative.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-navigation-timing.tentative-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-navigation-timing.tentative.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-new-execution-context-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-new-execution-context-iframe.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-new-execution-context.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/cross-global-npo-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/cross-global-npo.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/cross-global-support.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/prototype-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/prototype.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-cross-origin.sub-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-cross-origin.sub.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-same-origin-domain.sub-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-same-origin-domain.sub.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-closed.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-multiple.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-noopener.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-noreferrer.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-setter.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-access/document_access_feature_policy.tentative.sub-expected.txt [deleted file]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-access/document_access_feature_policy.tentative.sub.html [deleted file]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-access/document_access_parent_access.tentative.html
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-access/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested-navigate.window-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested-navigate.window.html [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.any.html with 100% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested-navigate.window.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested-set.window-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested-set.window.html [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.any.worker.html with 100% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested-set.window.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested.window-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested.window.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested.window.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/meta-http-equiv.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/meta-http-equiv.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/none-load-from-cache-storage.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/none-load-from-cache-storage.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/none.https.html
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-blank-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-blank.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-blank.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-srcdoc-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-srcdoc.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-srcdoc.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-load-from-cache-storage.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-load-from-cache-storage.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-load-from-cache-storage.https.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp.https.html
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/resources/sw-store-to-cache-storage.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/resources/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coep.https-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coep.https.html
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/no-https-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/no-https.html
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/resources/common.js
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/resources/coop-coep.py
LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/dom/elements-forms.js
LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/global-attributes/dataset-set-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/global-attributes/dataset-set.html
LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/the-innertext-idl-attribute/getter-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/the-innertext-idl-attribute/getter-tests.js
LayoutTests/imported/w3c/web-platform-tests/html/dom/idlharness.https.html
LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-grouping-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-metadata-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-obsolete-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-sections-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-tabular-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-text-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection.js
LayoutTests/imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https.html [moved from LayoutTests/imported/w3c/web-platform-tests/html/dom/usvstring-reflection.html with 97% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/dom/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any.worker-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any.worker.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/blank.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-sharedworker.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-sharedworker.js.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-worker.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-worker.js.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-failure.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-failure.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-domain.sub.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-domain.sub.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-messagechannel.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-messagechannel.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-popup.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-popup.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker-with-channel.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker-with-channel.js.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker.js.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-1.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-1.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-2.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-2.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-3.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-3.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-4-incrementer.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-4-incrementer.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-worker-success.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-worker-success.js.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/serviceworker-failure.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/serviceworker-failure.js.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/sharedworker-failure.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/sharedworker-failure.js.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/test-incrementer.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/test-sab.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/w3c-import.log [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.https.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-idb.any-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-idb.any.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-idb.any.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-idb.any.worker-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-idb.any.worker.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-notifications-api.any-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-notifications-api.any.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-notifications-api.any.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-notifications-api.any.worker-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-notifications-api.any.worker.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/w3c-import.log [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-failure.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-failure.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-failure.https.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-failure.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-failure.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-failure.https.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html.headers [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/urls/dynamic-changes-to-base-urls/dynamic-urls.sub-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/urls/dynamic-changes-to-base-urls/dynamic-urls.sub.html
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/urls/dynamic-changes-to-base-urls/historical.sub.xhtml
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/urls/terminology-0/multiple-base.sub-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/urls/terminology-0/multiple-base.sub.html
LayoutTests/imported/w3c/web-platform-tests/html/interaction/focus/sequential-focus-navigation-and-the-tabindex-attribute/tabindex-getter-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/interaction/focus/sequential-focus-navigation-and-the-tabindex-attribute/tabindex-getter.html
LayoutTests/imported/w3c/web-platform-tests/html/interaction/focus/the-autofocus-attribute/resources/imagemap.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/interaction/focus/the-autofocus-attribute/resources/utils.js
LayoutTests/imported/w3c/web-platform-tests/html/interaction/focus/the-autofocus-attribute/resources/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/interaction/focus/the-autofocus-attribute/supported-elements-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/interaction/focus/the-autofocus-attribute/supported-elements.html
LayoutTests/imported/w3c/web-platform-tests/html/interaction/focus/the-autofocus-attribute/update-the-rendering.html
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/flow-content-0/dialog-display-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/flow-content-0/dialog-display.html
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/select-sizing-001-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/select-sizing-001.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-x.xhtml
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/tables/table-column-width-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/tables/table-column-width.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/tables/table-vspace-hspace-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/tables/table-vspace-hspace-s-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/tables/table-vspace-hspace-s.html
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/tables/table-vspace-hspace.html
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/tables/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-display-rendering.html
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-sans-fieldset-display.html
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/the-page/iframe-marginwidth-marginheight-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/the-page/iframe-marginwidth-marginheight.html
LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/canvas-aspect-ratio-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/canvas-aspect-ratio.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.tentative-expected.txt [deleted file]
LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.tentative.html [deleted file]
LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-expected.html
LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref-expected.html
LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html
LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001.html
LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/the-select-element/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-multiple-error-events-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-multiple-error-events.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-multiple-load-events-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-multiple-load-events.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-rel-attribute-ascii-case-insensitive-expected.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-rel-attribute-ascii-case-insensitive-notref.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-rel-attribute-ascii-case-insensitive.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/resources/link-style-error.js
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-1.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-2.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/not-in-shadow-tree-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/not-in-shadow-tree.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/remove-from-document-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/remove-from-document.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-style-element/mutations.window-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-style-element/mutations.window.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-style-element/mutations.window.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-style-element/style-error-01-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-style-element/style-error-01.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-style-element/support/css-red.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-style-element/support/w3c-import.log [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-style-element/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy-attribute-redirect-on-load.https.sub.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy-attribute.https.sub.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy.https.sub.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-default-feature-policy.https.sub.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-disabled-by-feature-policy.https.sub.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-control.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-br.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-source.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-text.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-remove-source-after.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-remove-source.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-remove-text.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/media_fragment_seek.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-remove-from-document-different-load-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-remove-from-document-different-load.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/support/cors-tester.py
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross-origin-to-whom-part-2.window-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross-origin-to-whom-part-2.window.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross-origin-to-whom-part-2.window.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross-origin-to-whom.window-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross-origin-to-whom.window.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross-origin-to-whom.window.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-load-event-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-load-event.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_navigate_ancestor-1.sub-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_navigate_ancestor-1.sub.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads.sub.tentative-expected.txt [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads_without_user_activation.sub.tentative-expected.txt with 52% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads.sub.tentative.html [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads_without_user_activation.sub.tentative.html with 86% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads.sub.tentative-expected.txt [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads_without_user_activation.sub.tentative-expected.txt with 100% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads.sub.tentative.html [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads_without_user_activation.sub.tentative.html with 100% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.html [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads_without_user_activation.sub.tentative.html with 89% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads_without_user_activation.sub.tentative-expected.txt [deleted file]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads.sub.tentative-expected.txt [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads_without_user_activation.sub.tentative-expected.txt with 100% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads.sub.tentative.html [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads_without_user_activation.sub.tentative.html with 100% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/srcdoc_change_hash.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/srcdoc_process_attributes-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/srcdoc_process_attributes.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/document-with-embedded-svg.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/svg.svg [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/img.complete-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/img.complete.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/support/sizes-iframed.sub.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/resize-during-playback-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/resize-during-playback.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-customError-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-patternMismatch-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-typeMismatch-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/infinite_backtracking-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/infinite_backtracking.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/support/validator.js
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/SubmitEvent.window-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/SubmitEvent.window.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/SubmitEvent.window.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/constructing-form-data-set.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-submission-algorithm-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-submission-algorithm.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/implicit-submission.optional-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/implicit-submission.optional.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/resources/form-submission.py
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/resources/targetted-form.js
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/submit-entity-body.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/historical-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/historical-search-event-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/historical-search-event.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/historical.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-button-element/button-submit-children-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-button-element/button-submit-children.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-button-element/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/checkbox-detached-change-event-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/checkbox-detached-change-event.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-stepdown-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-stepdown.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-stepup-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-stepup.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/number-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/number.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/radio-detached-change-event-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/radio-detached-change-event.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-pre-element/grouping-pre-reftest-001.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/abspos-dialog-layout-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/abspos-dialog-layout.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-autofocus-just-once-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-autofocus-just-once.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusing-steps-prevent-autofocus-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusing-steps-prevent-autofocus.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-summary-element/anchor-with-inline-element-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-summary-element/anchor-with-inline-element.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-summary-element/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/css-module-worker-test-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/css-module-worker-test.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/import-css-module-basic-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/import-css-module-basic.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/bad-import.css [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/basic.css [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/css-module-at-import-iframe.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/css-module-basic-iframe.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/malformed-iframe.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/malformed.css [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/utf8.css [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/w3c-import.log [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/worker-dynamic-import.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/resources/worker.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/utf8.tentative-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/utf8.tentative.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/w3c-import.log [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/is-module-goal.mjs
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/README.md [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/invalid-content-type.tentative-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/invalid-content-type.tentative.html [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/invalid-content-type.html with 100% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/json-module-service-worker-test.https.tentative-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/json-module-service-worker-test.https.tentative.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/module.tentative-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/module.tentative.html [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/module.html with 100% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.tentative.any-expected.txt [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.any-expected.txt with 100% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.tentative.any.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.tentative.any.js [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.any.js with 100% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.tentative.any.worker-expected.txt [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.any.worker-expected.txt with 100% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.tentative.any.worker.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/parse-error.tentative-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/parse-error.tentative.html [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/parse-error.html with 100% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/serviceworker-dynamic-import.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/serviceworker.js [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/utf8.tentative-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/utf8.tentative.html [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/utf8.html with 100% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/valid-content-type.tentative-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/valid-content-type.tentative.html [moved from LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/valid-content-type.html with 100% similarity]
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/charset-02-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/module-vs-script-2.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/referrer-no-referrer.sub.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/referrer-origin-when-cross-origin.sub.html
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16be.js
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16le.js
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-8.js
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-content-hierarcy-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-content-hierarcy.html
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/Element.getElementsByTagName-foreign-02.html
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html-integration-point.html
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_innerHTML_adoption01-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_innerHTML_adoption01.html
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_innerHTML_foreign-fragment-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_innerHTML_foreign-fragment.html
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_innerHTML_math.html
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_innerHTML_tests4.html
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_innerHTML_tests6.html
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_innerHTML_tests7.html
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_innerHTML_tests_innerHTML_1.html
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_innerHTML_webkit02-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_innerHTML_webkit02.html
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html_content_in_foreign_context-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/html_content_in_foreign_context.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/math-parse03.html
LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/tools/html5lib_test_fragment.xml
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/activation-api-iframe-no-activate.tenative.html
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/activation-transfer-cross-origin-with-click-two-child-frames.sub.tentative.html
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/activation-transfer-cross-origin-with-click.sub.tentative.html
LayoutTests/imported/w3c/web-platform-tests/html/user-activation/message-event-activation-api-iframe-cross-origin.sub.tentative.html
LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html
LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/secure_context-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/secure_context.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/webappapis/the-windoworworkerglobalscope-mixin/README.md [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/html/webappapis/the-windoworworkerglobalscope-mixin/w3c-import.log
LayoutTests/imported/w3c/web-platform-tests/html/webappapis/timers/negative-settimeout.html
LayoutTests/platform/gtk/TestExpectations
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/none-load-from-cache-storage.https-expected.txt [new file with mode: 0644]
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-load-from-cache-storage.https-expected.txt [new file with mode: 0644]
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https-expected.txt [new file with mode: 0644]
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads.sub.tentative-expected.txt [new file with mode: 0644]
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads.sub.tentative-expected.txt [new file with mode: 0644]
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/json-module-service-worker-test.https.tentative-expected.txt [new file with mode: 0644]
LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt
LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt
LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt
LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt
LayoutTests/tests-options.json
Tools/Scripts/webkitpy/w3c/test_converter.py

index a49d2c2..1eb35bc 100644 (file)
@@ -1,3 +1,18 @@
+2019-12-19  Chris Dumez  <cdumez@apple.com>
+
+        Resync web-platform-tests/html tests from upstream
+        https://bugs.webkit.org/show_bug.cgi?id=205424
+
+        Reviewed by Ryosuke Niwa.
+
+        * TestExpectations:
+        * platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
+        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
+        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
+        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt:
+        * platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
+        * tests-options.json:
+
 2019-12-19  Ryosuke Niwa  <rniwa@webkit.org>
 
         Make ShadowRoot.delegateFocus work in iOS
index ae0cc9f..dbff0de 100644 (file)
@@ -302,7 +302,6 @@ imported/w3c/web-platform-tests/html/browsers/history/the-history-interface/hist
 imported/w3c/web-platform-tests/html/browsers/history/the-history-interface/traverse_the_history_3.html [ Skip ]
 imported/w3c/web-platform-tests/html/browsers/offline/appcache/appcache-iframe.https.html [ Skip ]
 imported/w3c/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_feature_policy.tentative.sub.html [ Skip ]
-imported/w3c/web-platform-tests/html/browsers/windows/document-access/document_access_feature_policy.tentative.sub.html [ Skip ]
 imported/w3c/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html [ Skip ]
 imported/w3c/web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html [ Skip ]
 imported/w3c/web-platform-tests/html/interaction/focus/focus-01.html [ Skip ]
@@ -321,7 +320,6 @@ imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-eleme
 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/srcdoc_change_hash.html [ Skip ]
 imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/select-event.html [ Skip ]
 imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setRangeText.html [ Skip ]
-imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/parse-error.html [ Skip ]
 imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/no-active-script-manual-module.html [ Skip ]
 imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/referrer-no-referrer.sub.html [ Skip ]
 imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/referrer-origin-when-cross-origin.sub.html [ Skip ]
@@ -344,6 +342,19 @@ imported/w3c/web-platform-tests/cors/image-tainting-in-cross-origin-iframe.sub.h
 imported/w3c/web-platform-tests/dom/events/EventListener-incumbent-global-1.sub.html [ Skip ]
 imported/w3c/web-platform-tests/dom/events/EventListener-incumbent-global-2.sub.html [ Skip ]
 imported/w3c/web-platform-tests/webmessaging/broadcastchannel/origin.window.html [ Skip ]
+imported/w3c/web-platform-tests/html/semantics/document-metadata/the-style-element/style-error-01.html [ Skip ]
+imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-submission-algorithm.html [ Skip ]
+imported/w3c/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html [ Skip ]
+imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-disallow-scripts-via-unsandboxed-popup.tentative.html [ Skip ]
+imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio.html [ Skip ]
+imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-multiple-error-events.html [ Skip ]
+imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-multiple-load-events.html [ Skip ]
+imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_navigate_ancestor-1.sub.html [ Skip ]
+imported/w3c/web-platform-tests/html/semantics/forms/historical-search-event.html [ Skip ]
+imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/checkbox-detached-change-event.html [ Skip ]
+imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/radio-detached-change-event.html [ Skip ]
+imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-summary-element/anchor-with-inline-element.html [ Skip ]
+imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/parse-error.tentative.html [ Skip ]
 
 # Newly imported WPT ref tests failures.
 imported/w3c/web-platform-tests/html/dom/elements/requirements-relating-to-bidirectional-algorithm-formatting-characters/dir-isolation-001a.html [ ImageOnlyFailure ]
@@ -407,6 +418,9 @@ imported/w3c/web-platform-tests/html/semantics/forms/the-textarea-element/multil
 imported/w3c/web-platform-tests/html/semantics/text-level-semantics/the-b-element/b-usage.html [ ImageOnlyFailure ]
 imported/w3c/web-platform-tests/html/semantics/text-level-semantics/the-ruby-element/ruby-usage.html [ ImageOnlyFailure ]
 [ Release ] imported/w3c/web-platform-tests/html/rendering/replaced-elements/embedded-content/video-controls-vertical-writing-mode.html [ ImageOnlyFailure ]
+imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-rel-attribute-ascii-case-insensitive.html [ ImageOnlyFailure ]
+imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/select-sizing-001.html [ ImageOnlyFailure ]
+imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-x.xhtml [ ImageOnlyFailure ]
 
 # Newly imported WPT tests that are crashing.
 [ Debug ] imported/w3c/web-platform-tests/html/rendering/replaced-elements/embedded-content/video-controls-vertical-writing-mode.html [ Crash ]
@@ -425,13 +439,14 @@ imported/w3c/web-platform-tests/html/browsers/history/the-history-interface/comb
 imported/w3c/web-platform-tests/html/browsers/history/the-history-interface/combination_history_003.html [ Failure Pass ]
 imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/execution-timing/058.html [ Failure Pass ]
 imported/w3c/web-platform-tests/html/interaction/focus/the-autofocus-attribute/update-the-rendering.html [ Failure Pass ]
+imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross-origin-to-whom.window.html [ Failure Pass ]
+imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross-origin-to-whom-part-2.window.html [ Failure Pass ]
 
 imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-load-error-events.html [ DumpJSConsoleLogInStdErr ]
 imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-load-error-events.https.html [ DumpJSConsoleLogInStdErr ]
 imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-01.html [ DumpJSConsoleLogInStdErr ]
 imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-limited-quirks.html [ DumpJSConsoleLogInStdErr ]
 imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-quirks.html [ DumpJSConsoleLogInStdErr ]
-imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/invalid-content-type.html [ DumpJSConsoleLogInStdErr ]
 imported/w3c/web-platform-tests/html/dom/idlharness.https.html [ DumpJSConsoleLogInStdErr ]
 imported/w3c/web-platform-tests/html/dom/idlharness.worker.html [ DumpJSConsoleLogInStdErr ]
 imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/error-type-1.html [ DumpJSConsoleLogInStdErr ]
@@ -440,6 +455,7 @@ imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html [ Dump
 imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception.html [ DumpJSConsoleLogInStdErr ]
 imported/w3c/web-platform-tests/html/browsers/offline/application-cache-api/api_update_error.https.html [ DumpJSConsoleLogInStdErr ]
 imported/w3c/web-platform-tests/css/css-properties-values-api/url-resolution.html [ DumpJSConsoleLogInStdErr ]
+imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/invalid-content-type.tentative.html [ DumpJSConsoleLogInStdErr ]
 
 [ Debug ] imported/w3c/web-platform-tests/service-workers/service-worker/clients-matchall-order.https.html [ Slow ]
 [ Debug ] imported/w3c/web-platform-tests/service-workers/service-worker/getregistrations.https.html [ Slow ]
@@ -2092,6 +2108,7 @@ workers/sab/no-transfer.html [ Skip ]
 workers/sab/postMessage-clones.html [ Skip ]
 workers/sab/postMessage-transfer-type-error.html [ Skip ]
 workers/sab/sent-from-worker-no-transfer.html [ Skip ]
+imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/ [ Skip ]
 
 # These tests are slow by design.
 workers/wasm-hashset-many.html [ Slow ]
index 5883267..a921243 100644 (file)
@@ -1,5 +1,17 @@
 2019-12-19  Chris Dumez  <cdumez@apple.com>
 
+        Resync web-platform-tests/html tests from upstream
+        https://bugs.webkit.org/show_bug.cgi?id=205424
+
+        Reviewed by Ryosuke Niwa.
+
+        Resync web-platform-tests/html tests from upstream b5b7813e9ce247495b0df.
+
+        * resources/resource-files.json:
+        * web-platform-tests/html/*: Updated.
+
+2019-12-19  Chris Dumez  <cdumez@apple.com>
+
         Resync web-platform-tests/WebIDL tests from upstream
         https://bugs.webkit.org/show_bug.cgi?id=205418
 
index c7d1af9..b690b18 100644 (file)
         "web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_setter_iframe.html",
         "web-platform-tests/html/browsers/sandboxing/inner-iframe.html",
         "web-platform-tests/html/browsers/sandboxing/noscript-iframe.html",
+        "web-platform-tests/html/browsers/sandboxing/sandbox-navigation-timing-iframe.tentative.html",
+        "web-platform-tests/html/browsers/sandboxing/sandbox-new-execution-context-iframe.html",
         "web-platform-tests/html/browsers/the-window-object/accessing-other-browsing-contexts/test1.html",
         "web-platform-tests/html/browsers/the-window-object/accessing-other-browsing-contexts/test2.html",
         "web-platform-tests/html/browsers/the-window-object/accessing-other-browsing-contexts/test3.html",
         "web-platform-tests/html/browsers/the-window-object/garbage-collection-and-browsing-contexts/non-automated/discard_iframe_history_2-1.html",
         "web-platform-tests/html/browsers/the-window-object/garbage-collection-and-browsing-contexts/non-automated/discard_iframe_history_2-2.html",
         "web-platform-tests/html/browsers/the-window-object/garbage-collection-and-browsing-contexts/non-automated/discard_iframe_history_2-3.html",
+        "web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/cross-global-support.html",
         "web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/test.html",
         "web-platform-tests/html/browsers/the-window-object/support/BarProp-target.html",
         "web-platform-tests/html/browsers/the-window-object/support/closed.html",
         "web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/016-1.html",
         "web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-03-frame.html",
         "web-platform-tests/html/dom/reflection-original.html",
+        "web-platform-tests/html/editing/dnd/canvas/001.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/002.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/003-1.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/003.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/004.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/005.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/006.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/007.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/008.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/009.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/010-1.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/010.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/011.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/012.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/013.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/014.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/cross-domain/001-manual.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/helper-drag-me-green-box.xhtml",
+        "web-platform-tests/html/editing/dnd/canvas/helper-drop-here-canvas.xhtml",
+        "web-platform-tests/html/editing/dnd/crashers/dialog-001.html",
+        "web-platform-tests/html/editing/dnd/cross-document/001-1.html",
+        "web-platform-tests/html/editing/dnd/cross-document/001.html",
+        "web-platform-tests/html/editing/dnd/cross-document/003-1.html",
+        "web-platform-tests/html/editing/dnd/cross-document/003.html",
+        "web-platform-tests/html/editing/dnd/datastore/001.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/002.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/003.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/004.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/005.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/006.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/007.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/008.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/009-1.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/009.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/010-1.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/010.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/011.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/012.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/013-1.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/013.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/014-1.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/014.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/016.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/017.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/018.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/019.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/020.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/021.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/022.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/023.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/024.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/025.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/026.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/027.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/028.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/029.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/030.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/031.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/032.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/033.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/034.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/035.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/036.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/037.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/038.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/039.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/040.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/041.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/042.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/043.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/044.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/045.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/046.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/047.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/048.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/049.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/050.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/051.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/052.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/053.html",
+        "web-platform-tests/html/editing/dnd/datastore/054.html",
+        "web-platform-tests/html/editing/dnd/datastore/055.html",
+        "web-platform-tests/html/editing/dnd/datastore/056.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/057.xhtml",
+        "web-platform-tests/html/editing/dnd/datastore/058.html",
+        "web-platform-tests/html/editing/dnd/datastore/helper-drop-box-here.xhtml",
+        "web-platform-tests/html/editing/dnd/draggable-areas/border-radius.html",
+        "web-platform-tests/html/editing/dnd/draggable-areas/border.html",
+        "web-platform-tests/html/editing/dnd/draggable-areas/box-shadow.html",
+        "web-platform-tests/html/editing/dnd/draggable-areas/outline.html",
+        "web-platform-tests/html/editing/dnd/draggable-areas/transform.html",
+        "web-platform-tests/html/editing/dnd/draggable-areas/z-index.html",
+        "web-platform-tests/html/editing/dnd/drop/001.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/002.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/003.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/004.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/005.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/006.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/007.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/008.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/009.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/010.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/011.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/012.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/013.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/014.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/015.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/016.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/017.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/018.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/019.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/020.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/021.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/022.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/023.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/024.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/025.html",
+        "web-platform-tests/html/editing/dnd/drop/026.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/027.xhtml",
+        "web-platform-tests/html/editing/dnd/drop/028.html",
+        "web-platform-tests/html/editing/dnd/dropzone/001.xhtml",
+        "web-platform-tests/html/editing/dnd/dropzone/002.xhtml",
+        "web-platform-tests/html/editing/dnd/dropzone/003.xhtml",
+        "web-platform-tests/html/editing/dnd/dropzone/004.xhtml",
+        "web-platform-tests/html/editing/dnd/dropzone/005.xhtml",
+        "web-platform-tests/html/editing/dnd/dropzone/006.xhtml",
+        "web-platform-tests/html/editing/dnd/dropzone/007.html",
+        "web-platform-tests/html/editing/dnd/dropzone/008.html",
+        "web-platform-tests/html/editing/dnd/dropzone/009.html",
+        "web-platform-tests/html/editing/dnd/dropzone/010.html",
+        "web-platform-tests/html/editing/dnd/events/001-1.xhtml",
+        "web-platform-tests/html/editing/dnd/events/001.xhtml",
+        "web-platform-tests/html/editing/dnd/events/002-1.xhtml",
+        "web-platform-tests/html/editing/dnd/events/002.xhtml",
+        "web-platform-tests/html/editing/dnd/events/003-1.xhtml",
+        "web-platform-tests/html/editing/dnd/events/003.xhtml",
+        "web-platform-tests/html/editing/dnd/events/004.xhtml",
+        "web-platform-tests/html/editing/dnd/events/005.xhtml",
+        "web-platform-tests/html/editing/dnd/events/006.xhtml",
+        "web-platform-tests/html/editing/dnd/events/007.xhtml",
+        "web-platform-tests/html/editing/dnd/events/008.xhtml",
+        "web-platform-tests/html/editing/dnd/events/009.xhtml",
+        "web-platform-tests/html/editing/dnd/events/010.xhtml",
+        "web-platform-tests/html/editing/dnd/events/011.xhtml",
+        "web-platform-tests/html/editing/dnd/events/012.xhtml",
+        "web-platform-tests/html/editing/dnd/events/013.xhtml",
+        "web-platform-tests/html/editing/dnd/events/014.xhtml",
+        "web-platform-tests/html/editing/dnd/events/015.xhtml",
+        "web-platform-tests/html/editing/dnd/events/016.xhtml",
+        "web-platform-tests/html/editing/dnd/events/017.xhtml",
+        "web-platform-tests/html/editing/dnd/events/018.xhtml",
+        "web-platform-tests/html/editing/dnd/events/019.xhtml",
+        "web-platform-tests/html/editing/dnd/events/020.xhtml",
+        "web-platform-tests/html/editing/dnd/events/021.xhtml",
+        "web-platform-tests/html/editing/dnd/events/022.xhtml",
+        "web-platform-tests/html/editing/dnd/events/023.xhtml",
+        "web-platform-tests/html/editing/dnd/events/024.xhtml",
+        "web-platform-tests/html/editing/dnd/events/025.html",
+        "web-platform-tests/html/editing/dnd/events/026.html",
+        "web-platform-tests/html/editing/dnd/events/027.xhtml",
+        "web-platform-tests/html/editing/dnd/events/028.xhtml",
+        "web-platform-tests/html/editing/dnd/events/029.html",
+        "web-platform-tests/html/editing/dnd/events/030.html",
+        "web-platform-tests/html/editing/dnd/events/031-1.html",
+        "web-platform-tests/html/editing/dnd/events/031.html",
+        "web-platform-tests/html/editing/dnd/events/032.html",
+        "web-platform-tests/html/editing/dnd/events/033.html",
+        "web-platform-tests/html/editing/dnd/events/034.html",
+        "web-platform-tests/html/editing/dnd/events/035.html",
+        "web-platform-tests/html/editing/dnd/events/036.html",
+        "web-platform-tests/html/editing/dnd/events/037-proposed.xhtml",
+        "web-platform-tests/html/editing/dnd/events/037-spec.xhtml",
+        "web-platform-tests/html/editing/dnd/events/038-proposed.html",
+        "web-platform-tests/html/editing/dnd/events/events-cross-document-suite-HELPER-1.html",
+        "web-platform-tests/html/editing/dnd/events/events-cross-document-suite-HELPER-2.html",
+        "web-platform-tests/html/editing/dnd/events/events-non-draggable-001.html",
+        "web-platform-tests/html/editing/dnd/events/events-non-draggable-002.html",
+        "web-platform-tests/html/editing/dnd/events/helper-drag-me-input-with-circle.xhtml",
+        "web-platform-tests/html/editing/dnd/events/helper-drag-me-link-with-circle.xhtml",
+        "web-platform-tests/html/editing/dnd/events/helper-drag-me-p-with-circle.xhtml",
+        "web-platform-tests/html/editing/dnd/events/helper-drop-here-body-circle.xhtml",
+        "web-platform-tests/html/editing/dnd/file/001.html",
+        "web-platform-tests/html/editing/dnd/file/002.html",
+        "web-platform-tests/html/editing/dnd/file/003.html",
+        "web-platform-tests/html/editing/dnd/file/004.html",
+        "web-platform-tests/html/editing/dnd/file/005.html",
+        "web-platform-tests/html/editing/dnd/file/006.html",
+        "web-platform-tests/html/editing/dnd/file/007.html",
+        "web-platform-tests/html/editing/dnd/file/008.html",
+        "web-platform-tests/html/editing/dnd/file/009.html",
+        "web-platform-tests/html/editing/dnd/file/010.html",
+        "web-platform-tests/html/editing/dnd/file/011.html",
+        "web-platform-tests/html/editing/dnd/file/prompt/001.html",
+        "web-platform-tests/html/editing/dnd/file/prompt/002.html",
+        "web-platform-tests/html/editing/dnd/file/prompt/003.html",
+        "web-platform-tests/html/editing/dnd/file/prompt/004.html",
+        "web-platform-tests/html/editing/dnd/file/prompt/005.html",
+        "web-platform-tests/html/editing/dnd/file/prompt/006.html",
+        "web-platform-tests/html/editing/dnd/file/prompt/007.html",
+        "web-platform-tests/html/editing/dnd/file/prompt/008.html",
+        "web-platform-tests/html/editing/dnd/file/prompt/009.html",
+        "web-platform-tests/html/editing/dnd/images/001.xhtml",
+        "web-platform-tests/html/editing/dnd/images/002.xhtml",
+        "web-platform-tests/html/editing/dnd/images/003.xhtml",
+        "web-platform-tests/html/editing/dnd/images/004.xhtml",
+        "web-platform-tests/html/editing/dnd/images/005.xhtml",
+        "web-platform-tests/html/editing/dnd/images/006.xhtml",
+        "web-platform-tests/html/editing/dnd/images/007.xhtml",
+        "web-platform-tests/html/editing/dnd/images/008.xhtml",
+        "web-platform-tests/html/editing/dnd/images/009.xhtml",
+        "web-platform-tests/html/editing/dnd/images/010.xhtml",
+        "web-platform-tests/html/editing/dnd/images/011.xhtml",
+        "web-platform-tests/html/editing/dnd/images/012-1.xhtml",
+        "web-platform-tests/html/editing/dnd/images/012.xhtml",
+        "web-platform-tests/html/editing/dnd/images/013-1.xhtml",
+        "web-platform-tests/html/editing/dnd/images/013.xhtml",
+        "web-platform-tests/html/editing/dnd/images/014-1.xhtml",
+        "web-platform-tests/html/editing/dnd/images/014.xhtml",
+        "web-platform-tests/html/editing/dnd/images/015.xhtml",
+        "web-platform-tests/html/editing/dnd/images/016.xhtml",
+        "web-platform-tests/html/editing/dnd/images/017.xhtml",
+        "web-platform-tests/html/editing/dnd/images/018.xhtml",
+        "web-platform-tests/html/editing/dnd/images/021.xhtml",
+        "web-platform-tests/html/editing/dnd/images/022.xhtml",
+        "web-platform-tests/html/editing/dnd/images/023.xhtml",
+        "web-platform-tests/html/editing/dnd/images/024.xhtml",
+        "web-platform-tests/html/editing/dnd/images/025.xhtml",
+        "web-platform-tests/html/editing/dnd/images/026.xhtml",
+        "web-platform-tests/html/editing/dnd/images/027.xhtml",
+        "web-platform-tests/html/editing/dnd/images/028.xhtml",
+        "web-platform-tests/html/editing/dnd/images/cross-domain/001-manual.xhtml",
+        "web-platform-tests/html/editing/dnd/images/helper-circle.xhtml",
+        "web-platform-tests/html/editing/dnd/images/helper-drag-me-data-url-image.xhtml",
+        "web-platform-tests/html/editing/dnd/images/helper-drop-horizontal-scrollbar.xhtml",
+        "web-platform-tests/html/editing/dnd/images/helper-drop-image-here.xhtml",
+        "web-platform-tests/html/editing/dnd/images/helper-drop-vertical-scrollbar.xhtml",
+        "web-platform-tests/html/editing/dnd/interactive/frames-1.html",
+        "web-platform-tests/html/editing/dnd/interactive/frames.html",
+        "web-platform-tests/html/editing/dnd/interactive/object-retention.html",
+        "web-platform-tests/html/editing/dnd/interactive/plugins.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/001.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/002.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/003.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/004.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/005.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/006.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/007.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/008.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/009.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/010.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/011.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/012.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/015.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/016.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/017.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/018.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/019.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/020.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/021.html",
+        "web-platform-tests/html/editing/dnd/interactiveelements/022.html",
+        "web-platform-tests/html/editing/dnd/media/001.xhtml",
+        "web-platform-tests/html/editing/dnd/microdata/000.html",
+        "web-platform-tests/html/editing/dnd/microdata/001.html",
+        "web-platform-tests/html/editing/dnd/microdata/002.html",
+        "web-platform-tests/html/editing/dnd/microdata/003.html",
+        "web-platform-tests/html/editing/dnd/microdata/004.html",
+        "web-platform-tests/html/editing/dnd/microdata/005.html",
+        "web-platform-tests/html/editing/dnd/microdata/006.html",
+        "web-platform-tests/html/editing/dnd/microdata/007.html",
+        "web-platform-tests/html/editing/dnd/microdata/008.html",
+        "web-platform-tests/html/editing/dnd/microdata/009.html",
+        "web-platform-tests/html/editing/dnd/microdata/010.html",
+        "web-platform-tests/html/editing/dnd/microdata/011.html",
+        "web-platform-tests/html/editing/dnd/microdata/012.html",
+        "web-platform-tests/html/editing/dnd/microdata/013.html",
+        "web-platform-tests/html/editing/dnd/microdata/014.html",
+        "web-platform-tests/html/editing/dnd/microdata/015.html",
+        "web-platform-tests/html/editing/dnd/microdata/016.html",
+        "web-platform-tests/html/editing/dnd/microdata/017.html",
+        "web-platform-tests/html/editing/dnd/microdata/018.html",
+        "web-platform-tests/html/editing/dnd/microdata/019.html",
+        "web-platform-tests/html/editing/dnd/microdata/020.html",
+        "web-platform-tests/html/editing/dnd/microdata/021.html",
+        "web-platform-tests/html/editing/dnd/navigation/001-1.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/001.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/002.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/003.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/004.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/005.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/006.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/007-1.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/007.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/008-1.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/008.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/009-1.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/009.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/010-1.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/010.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/011-1.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/011.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/012.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/013.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/014.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/015.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/016-1.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/016.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/017.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/018.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/019.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/020.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/021-1.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/021.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/022-1.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/022.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/023-1.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/023.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/helper-drag-image-dont-drop.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/helper-drag-selection-dont-drop.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/helper-drop-here-reload.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/helper-drop-image-now.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/helper-drop-link-now.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/helper-drop-now.xhtml",
+        "web-platform-tests/html/editing/dnd/navigation/helper-drop-selection-here.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/001.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/002.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/003.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/004.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/005.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/006.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/007.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/008.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/009.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/010.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/011.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/012.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/013.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/014.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/015.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/016.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/017.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/018.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/019.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/020.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/021.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/022.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/023.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/024.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/025.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/026.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/027.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/028.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/029.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/030.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/031.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/032.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/033.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/034.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/035.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/036.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/038.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/039.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/040.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/041.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/042.html",
+        "web-platform-tests/html/editing/dnd/overlay/043.html",
+        "web-platform-tests/html/editing/dnd/overlay/044.html",
+        "web-platform-tests/html/editing/dnd/overlay/045.html",
+        "web-platform-tests/html/editing/dnd/overlay/046.html",
+        "web-platform-tests/html/editing/dnd/overlay/047.html",
+        "web-platform-tests/html/editing/dnd/overlay/048.html",
+        "web-platform-tests/html/editing/dnd/overlay/049.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/050.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/051.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/052.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/053.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/054.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/055.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/056.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/057.xhtml",
+        "web-platform-tests/html/editing/dnd/overlay/058.html",
+        "web-platform-tests/html/editing/dnd/overlay/059.html",
+        "web-platform-tests/html/editing/dnd/overlay/060.html",
+        "web-platform-tests/html/editing/dnd/overlay/061.html",
+        "web-platform-tests/html/editing/dnd/overlay/062.html",
+        "web-platform-tests/html/editing/dnd/overlay/heavy-styling-001.html",
+        "web-platform-tests/html/editing/dnd/overlay/heavy-styling-002.html",
+        "web-platform-tests/html/editing/dnd/overlay/heavy-styling-003.html",
+        "web-platform-tests/html/editing/dnd/overlay/heavy-styling-004.html",
+        "web-platform-tests/html/editing/dnd/overlay/heavy-styling-005.html",
+        "web-platform-tests/html/editing/dnd/overlay/heavy-styling-006.html",
+        "web-platform-tests/html/editing/dnd/overlay/heavy-styling-007.html",
+        "web-platform-tests/html/editing/dnd/overlay/heavy-styling-008.html",
+        "web-platform-tests/html/editing/dnd/overlay/heavy-styling-009.html",
+        "web-platform-tests/html/editing/dnd/overlay/outside-viewport-001.html",
+        "web-platform-tests/html/editing/dnd/overlay/outside-viewport-002.html",
+        "web-platform-tests/html/editing/dnd/overlay/outside-viewport-003.html",
+        "web-platform-tests/html/editing/dnd/overlay/outside-viewport-004.html",
+        "web-platform-tests/html/editing/dnd/overlay/outside-viewport-005.html",
+        "web-platform-tests/html/editing/dnd/overlay/outside-viewport-006.html",
+        "web-platform-tests/html/editing/dnd/overlay/oversized-001.html",
+        "web-platform-tests/html/editing/dnd/platform/alttab.html",
+        "web-platform-tests/html/editing/dnd/platform/cancel-middle-click.html",
+        "web-platform-tests/html/editing/dnd/platform/cancel-right-click.html",
+        "web-platform-tests/html/editing/dnd/platform/close-drag-001.html",
+        "web-platform-tests/html/editing/dnd/platform/close-drag-002.html",
+        "web-platform-tests/html/editing/dnd/platform/close-drag-003.html",
+        "web-platform-tests/html/editing/dnd/platform/close-drag-004.html",
+        "web-platform-tests/html/editing/dnd/platform/close-drag-005.html",
+        "web-platform-tests/html/editing/dnd/platform/close-drag-006.html",
+        "web-platform-tests/html/editing/dnd/platform/cursors/001.html",
+        "web-platform-tests/html/editing/dnd/platform/cursors/002.html",
+        "web-platform-tests/html/editing/dnd/platform/cursors/003.html",
+        "web-platform-tests/html/editing/dnd/platform/cursors/004.html",
+        "web-platform-tests/html/editing/dnd/platform/cursors/005.html",
+        "web-platform-tests/html/editing/dnd/platform/cursors/006.html",
+        "web-platform-tests/html/editing/dnd/platform/cursors/007.html",
+        "web-platform-tests/html/editing/dnd/platform/cursors/008.html",
+        "web-platform-tests/html/editing/dnd/platform/cursors/009.html",
+        "web-platform-tests/html/editing/dnd/platform/cursors/010.html",
+        "web-platform-tests/html/editing/dnd/platform/cursors/011.html",
+        "web-platform-tests/html/editing/dnd/platform/drag-keypress.html",
+        "web-platform-tests/html/editing/dnd/platform/drag-link.html",
+        "web-platform-tests/html/editing/dnd/platform/drag-to-title.html",
+        "web-platform-tests/html/editing/dnd/platform/file-drop-position.html",
+        "web-platform-tests/html/editing/dnd/platform/file-os-to-os.html",
+        "web-platform-tests/html/editing/dnd/platform/file-to-system.html",
+        "web-platform-tests/html/editing/dnd/platform/html-to-os-HELPER-FILE.html",
+        "web-platform-tests/html/editing/dnd/platform/html-to-os.html",
+        "web-platform-tests/html/editing/dnd/platform/html-unicode-to-os.html",
+        "web-platform-tests/html/editing/dnd/platform/inputs-no-js.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/001.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/002.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/003.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/004.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/005.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/006.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/007.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/008.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/009.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/010.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/011.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/012.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/013.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/014.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/015.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/016.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/017.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/018.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/019.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/020.html",
+        "web-platform-tests/html/editing/dnd/platform/interrupt/021.html",
+        "web-platform-tests/html/editing/dnd/platform/keyboardshortcuts.html",
+        "web-platform-tests/html/editing/dnd/platform/modifiers/all.html",
+        "web-platform-tests/html/editing/dnd/platform/modifiers/copy.html",
+        "web-platform-tests/html/editing/dnd/platform/modifiers/copylink.html",
+        "web-platform-tests/html/editing/dnd/platform/modifiers/copymove.html",
+        "web-platform-tests/html/editing/dnd/platform/modifiers/link.html",
+        "web-platform-tests/html/editing/dnd/platform/modifiers/linkmove.html",
+        "web-platform-tests/html/editing/dnd/platform/modifiers/move.html",
+        "web-platform-tests/html/editing/dnd/platform/modifiers/onlydropzone.html",
+        "web-platform-tests/html/editing/dnd/platform/modifiers/onlydropzoneevents.html",
+        "web-platform-tests/html/editing/dnd/platform/modifiers/releasemodifiersdrag.html",
+        "web-platform-tests/html/editing/dnd/platform/modifiers/releasemodifiersdrop.html",
+        "web-platform-tests/html/editing/dnd/platform/modifiers/scriptmodified.html",
+        "web-platform-tests/html/editing/dnd/platform/moving-window.html",
+        "web-platform-tests/html/editing/dnd/platform/overlappingwindows.html",
+        "web-platform-tests/html/editing/dnd/platform/placeholderposition1.html",
+        "web-platform-tests/html/editing/dnd/platform/placeholderposition2.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-001.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-002.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-003.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-004.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-005.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-006.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-007.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-008.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-009.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-010.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-011.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-101.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-102.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-103.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-104.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-105.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-106.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-107.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-108.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-109.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-110.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-111.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-203.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-204.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-205.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-206.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-207.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-303.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-304.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-305.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-306.html",
+        "web-platform-tests/html/editing/dnd/platform/plugin/plugin-dnd-307.html",
+        "web-platform-tests/html/editing/dnd/platform/plugindrop.html",
+        "web-platform-tests/html/editing/dnd/platform/selection-between-ui.html",
+        "web-platform-tests/html/editing/dnd/platform/selection-from-os.html",
+        "web-platform-tests/html/editing/dnd/platform/selection-from-ui.html",
+        "web-platform-tests/html/editing/dnd/platform/selection-to-os.html",
+        "web-platform-tests/html/editing/dnd/platform/selection-to-ui-via.html",
+        "web-platform-tests/html/editing/dnd/platform/selection-to-ui.html",
+        "web-platform-tests/html/editing/dnd/platform/selection-ui-to-self.html",
+        "web-platform-tests/html/editing/dnd/platform/selection-unicode-to-os.html",
+        "web-platform-tests/html/editing/dnd/platform/taskbardrop.html",
+        "web-platform-tests/html/editing/dnd/platform/taskbarminimise.html",
+        "web-platform-tests/html/editing/dnd/platform/text-os-to-os.html",
+        "web-platform-tests/html/editing/dnd/platform/text-to-os.html",
+        "web-platform-tests/html/editing/dnd/reload/001.xhtml",
+        "web-platform-tests/html/editing/dnd/reload/002.xhtml",
+        "web-platform-tests/html/editing/dnd/reload/003.xhtml",
+        "web-platform-tests/html/editing/dnd/reload/004.xhtml",
+        "web-platform-tests/html/editing/dnd/reload/005.xhtml",
+        "web-platform-tests/html/editing/dnd/reload/006.xhtml",
+        "web-platform-tests/html/editing/dnd/reload/007.xhtml",
+        "web-platform-tests/html/editing/dnd/reload/008.xhtml",
+        "web-platform-tests/html/editing/dnd/reload/009-1.xhtml",
+        "web-platform-tests/html/editing/dnd/reload/009.xhtml",
+        "web-platform-tests/html/editing/dnd/reload/010-1.xhtml",
+        "web-platform-tests/html/editing/dnd/reload/010.xhtml",
+        "web-platform-tests/html/editing/dnd/reload/011-1.xhtml",
+        "web-platform-tests/html/editing/dnd/reload/011.xhtml",
+        "web-platform-tests/html/editing/dnd/reload/012-1.xhtml",
+        "web-platform-tests/html/editing/dnd/reload/012-2.xhtml",
+        "web-platform-tests/html/editing/dnd/reload/012.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/001.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/002.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/003.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/004.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/005.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/006.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/007.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/008.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/009.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/010.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/011.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/012.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/013.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/014.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/015.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/016.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/017.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/018.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/019.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/020.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/021.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/022-1.html",
+        "web-platform-tests/html/editing/dnd/remove/022.html",
+        "web-platform-tests/html/editing/dnd/remove/helper-drag-me-input.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/helper-drag-me-link.xhtml",
+        "web-platform-tests/html/editing/dnd/remove/helper-drag-me-p.xhtml",
+        "web-platform-tests/html/editing/dnd/roundtrip/001.xhtml",
+        "web-platform-tests/html/editing/dnd/roundtrip/002.xhtml",
+        "web-platform-tests/html/editing/dnd/roundtrip/003.xhtml",
+        "web-platform-tests/html/editing/dnd/roundtrip/004.xhtml",
+        "web-platform-tests/html/editing/dnd/roundtrip/005.xhtml",
+        "web-platform-tests/html/editing/dnd/roundtrip/006.xhtml",
+        "web-platform-tests/html/editing/dnd/roundtrip/007.xhtml",
+        "web-platform-tests/html/editing/dnd/roundtrip/008.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/001.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/002.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/003.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/004.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/005.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/006.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/007.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/008.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/009.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/010.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/011.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/012.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/013.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/014.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/015.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/016.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/017.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/018.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/019.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/020.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/021.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/022.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/023.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/024.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/025.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/026.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/027.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/028.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/029.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/030.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/031.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/032.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/033.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/034.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/035.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/036.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/037.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/038.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/039.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/040.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/041.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/042.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/043.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/044.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/045.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/046.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/047.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/048.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/049.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/050.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/051.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/052.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/053.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/054.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/055.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/056.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/057.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/058.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/059.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/060.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/061.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/062.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/063.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/064-1.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/064.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/065.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/066.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/067-1.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/067-2.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/067.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/068-1.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/068-2.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/068.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/069.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/070.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/071.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/072.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/073.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/074.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/075.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/076.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/077.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/078.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/079.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/080.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/081.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/082.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/083.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/084.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/085.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/086.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/087.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/088.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/089.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/090.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/091-1.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/091-2.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/091.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/092.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/093.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/094.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/095.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/096.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/097.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/098.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/099.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/100.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/101.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/102.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/103.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/104.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/105.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/106.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/107-1.html",
+        "web-platform-tests/html/editing/dnd/selection/107.html",
+        "web-platform-tests/html/editing/dnd/selection/108-1.html",
+        "web-platform-tests/html/editing/dnd/selection/108.html",
+        "web-platform-tests/html/editing/dnd/selection/109.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/110.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/111.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/112.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/113.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/114.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/115.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/116.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/117.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/118.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/119.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/120.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/121.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/122.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/123.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/124.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/125.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/126.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/127.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/128.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/129.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/130.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/131.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/132.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/133.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/134.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/135.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/136.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/137.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/138.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/139.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/140.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/141.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/142.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/143.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/144.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/145.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/146.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/147.html",
+        "web-platform-tests/html/editing/dnd/selection/148.html",
+        "web-platform-tests/html/editing/dnd/selection/149.html",
+        "web-platform-tests/html/editing/dnd/selection/150.html",
+        "web-platform-tests/html/editing/dnd/selection/151.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/152.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/153.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/154.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/155.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/156.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/157.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/158.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/159.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/160.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/161.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/162.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/163.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/164.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/165.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/166.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/167.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/168.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/169.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/170.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/171.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/172.html",
+        "web-platform-tests/html/editing/dnd/selection/173.html",
+        "web-platform-tests/html/editing/dnd/selection/helper-drag-me-input-to-other-input.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/helper-drag-me-input-to-other-textarea.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/helper-drag-me-input.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/helper-drag-me-textarea-to-other-blue-box.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/helper-drag-me-textarea-to-other-input.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/helper-drag-me-textarea-to-other-textarea.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/helper-drop-here-blue-box-contenteditable.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/helper-drop-here-blue-box.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/helper-drop-here-input.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/helper-drop-here-textarea.xhtml",
+        "web-platform-tests/html/editing/dnd/selection/helper-scroll-then-drop-input.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/013-1.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/014-1.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/015-1.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/016-1.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/017.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/018.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/019.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/020.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/021.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/022.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/023.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/024.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/025.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/026.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/027.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/028.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/029.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/030.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/031.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/032.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/033.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/034.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/035.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/036.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/037.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/038.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/039.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/040.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/041.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/042.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/043.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/049.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/050.xhtml",
+        "web-platform-tests/html/editing/dnd/svg/051.xhtml",
+        "web-platform-tests/html/editing/dnd/target-origin/004-1.html",
+        "web-platform-tests/html/editing/dnd/target-origin/005-1.html",
+        "web-platform-tests/html/editing/dnd/target-origin/103-1.html",
+        "web-platform-tests/html/editing/dnd/target-origin/104-1.html",
+        "web-platform-tests/html/editing/dnd/target-origin/105-1.html",
+        "web-platform-tests/html/editing/dnd/target-origin/106-1.html",
+        "web-platform-tests/html/editing/dnd/target-origin/107-1.html",
+        "web-platform-tests/html/editing/dnd/target-origin/108-1.html",
+        "web-platform-tests/html/editing/dnd/target-origin/109-1.html",
+        "web-platform-tests/html/editing/dnd/target-origin/110-1.html",
+        "web-platform-tests/html/editing/dnd/target-origin/117-1.html",
+        "web-platform-tests/html/editing/dnd/target-origin/118-1.html",
+        "web-platform-tests/html/editing/dnd/target-origin/HELPER-mustallow.html",
+        "web-platform-tests/html/editing/dnd/target-origin/HELPER-mustblock.html",
+        "web-platform-tests/html/editing/dnd/target-origin/HELPER-showorigin.html",
         "web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html",
         "web-platform-tests/html/interaction/focus/document-level-focus-apis/support/test.html",
         "web-platform-tests/html/interaction/focus/processing-model/support/preventScroll-helper.html",
         "web-platform-tests/html/rendering/the-details-element/single-summary.html",
         "web-platform-tests/html/semantics/document-metadata/the-base-element/example.html",
         "web-platform-tests/html/semantics/document-metadata/the-base-element/example2.html",
+        "web-platform-tests/html/semantics/document-metadata/the-link-element/link-rel-attribute-ascii-case-insensitive-notref.html",
         "web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/support/remove-cookie.html",
         "web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/cors/support/set-cookie.html",
         "web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-iframe.html",
         "web-platform-tests/html/semantics/embedded-content/the-iframe-element/same_origin_child.html",
         "web-platform-tests/html/semantics/embedded-content/the-iframe-element/same_origin_grandchild.html",
         "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/blank.htm",
+        "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/document-with-embedded-svg.html",
         "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-checks-contentDocument.html",
         "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-opens-modals.html",
         "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-on-popup.html",
index e8a1e9f..aa17942 100644 (file)
 var steps = [{
     fragid:'has%20two%20spaces',
       handler: function(){
-        assert_equals( scrollPosition(), 100 );
+        assert_equals( document.scrollingElement.scrollTop, 100 );
       }
     },{
       fragid:'escape%20collision',
       handler: function(){
-        assert_equals( scrollPosition(), 200 );
+        assert_equals( document.scrollingElement.scrollTop, 200 );
         document.getElementById("%20has%20two%20spaces").setAttribute("id", "has%20two%20spaces");
       }
     },{
       fragid:'has%20two%20spaces',
       handler: function(){
-        assert_equals( scrollPosition(), 300 );
+        assert_equals( document.scrollingElement.scrollTop, 300 );
       }
     },{
       fragid:'do%20not%20go%20here',
       handler: function(){
         // don't move
-        assert_equals( scrollPosition(), 400 );
+        assert_equals( document.scrollingElement.scrollTop, 400 );
       }
     }];
 
-function scrollPosition(){
-  return document.documentElement.scrollTop || document.body.scrollTop;
-}
-
 function runNextStep(){
     if( steps.length > 0 ) {
       var step = steps.shift();
index 3265a71..bf62e4c 100644 (file)
 var steps = [{
     fragid:'not-the-top',
     handler: function(){
-      assert_not_equals( scrollPosition(), 0 );
+      assert_not_equals( document.scrollingElement.scrollTop, 0 );
     }
   },{
     fragid:'top',
     handler: function(){
-      assert_equals( scrollPosition(), 0 );
+      assert_equals( document.scrollingElement.scrollTop, 0 );
     }
   },{
     fragid:'not-the-top',
     handler: function(){
-      assert_not_equals( scrollPosition(), 0 );
+      assert_not_equals( document.scrollingElement.scrollTop, 0 );
     }
   },{
     fragid:'TOP',
     handler: function(){
-      assert_equals( scrollPosition(), 0 );
+      assert_equals( document.scrollingElement.scrollTop, 0 );
     }
   }];
 
-function scrollPosition(){
-  return document.documentElement.scrollTop || document.body.scrollTop;
-}
-
 function runNextStep(){
     if( steps.length > 0 ) {
       var step = steps.shift();
index c3f0c41..b66fcd3 100644 (file)
@@ -1,7 +1,7 @@
-Blocked access to external URL http://www.localhost:8800/html/browsers/history/the-location-interface/cross_origin_joined_frame.sub.html
+CONSOLE MESSAGE: SecurityError: Attempted to use a non-registrable domain.
 
 FAIL same-origin, same-window location cycle cyclic __proto__ value
-FAIL cross-origin location has null prototype assert_equals: cross-origin unjoined location's [[Prototype] expected null but got object "[object LocationPrototype]"
+PASS cross-origin location has null prototype 
 FAIL same-origin, different-window location cycle cyclic __proto__ value
-FAIL cross-origin, but joined via document.domain, location cycle assert_equals: accessing win.Location before joining win's origin expected true but got false
+FAIL cross-origin, but joined via document.domain, location cycle Blocked a frame with origin "http://localhost:8800" from accessing a cross-origin frame. Protocols, domains, and ports must match.
  
index f72ed1e..7be6239 100644 (file)
@@ -79,7 +79,7 @@ var triggerCrossOriginTest = (function() {
     });
 
     crossOrigin.src =
-      "//{{domains[www]}}:" + location.port + pathdir + "cross_origin_joined_frame.sub.html";
+      "//{{hosts[alt][]}}:" + location.port + pathdir + "cross_origin_joined_frame.sub.html";
   })
   .catch(t.unreached_func("crossOrigin onload/src setting"));
 })();
index 0092497..b3d6179 100644 (file)
@@ -1,16 +1,11 @@
-Blocked access to external URL http://www.localhost:8801/common/blank.html
 
 
-FAIL Cross-origin: the prototype is null assert_equals: expected null but got object "[object LocationPrototype]"
+PASS Cross-origin: the prototype is null 
 PASS Cross-origin: setting the prototype to an empty object via Object.setPrototypeOf should throw a TypeError 
-FAIL Cross-origin: setting the prototype to an empty object via __proto__ should throw a "SecurityError" DOMException assert_throws: function "function () {
-      target.__proto__ = newValue;
-    }" threw object "TypeError: Cannot set prototype of immutable prototype object" that is not a DOMException SecurityError: property "code" is equal to undefined, expected 18
+PASS Cross-origin: setting the prototype to an empty object via __proto__ should throw a "SecurityError" DOMException 
 PASS Cross-origin: setting the prototype to an empty object via Reflect.setPrototypeOf should return false 
-FAIL Cross-origin: the prototype must still be null assert_equals: expected null but got object "[object LocationPrototype]"
-FAIL Cross-origin: setting the prototype to null via Object.setPrototypeOf should not throw Cannot set prototype of immutable prototype object
-FAIL Cross-origin: setting the prototype to null via __proto__ should throw a "SecurityError" since it ends up in CrossOriginGetOwnProperty assert_throws: function "function () {
-        target.__proto__ = newValue;
-      }" threw object "TypeError: Cannot set prototype of immutable prototype object" that is not a DOMException SecurityError: property "code" is equal to undefined, expected 18
-FAIL Cross-origin: setting the prototype to null via Reflect.setPrototypeOf should return true assert_true: expected true got false
+PASS Cross-origin: the prototype must still be null 
+PASS Cross-origin: setting the prototype to null via Object.setPrototypeOf should not throw 
+PASS Cross-origin: setting the prototype to null via __proto__ should throw a "SecurityError" since it ends up in CrossOriginGetOwnProperty 
+PASS Cross-origin: setting the prototype to null via Reflect.setPrototypeOf should return true 
 
index 7bb6a27..20b7dc9 100644 (file)
@@ -8,7 +8,7 @@
 <script src="/resources/testharnessreport.js"></script>
 <script src="/common/test-setting-immutable-prototype.js"></script>
 
-<iframe src="//{{domains[www]}}:{{ports[http][1]}}/common/blank.html"></iframe>
+<iframe src="//{{hosts[alt][]}}:{{ports[http][1]}}/common/blank.html"></iframe>
 
 <script>
 "use strict";
index 7e0e015..b4ee711 100644 (file)
@@ -1,12 +1,14 @@
-Blocked access to external URL http://www.localhost:8801/common/domain-setter.sub.html
+CONSOLE MESSAGE: line 7: SecurityError: Attempted to use a non-registrable domain.
 
 
-PASS Same-origin-domain prerequisite check: the original prototype is accessible 
+FAIL Same-origin-domain prerequisite check: the original prototype is accessible assert_not_equals: got disallowed value null
 PASS Same-origin-domain: setting the prototype to an empty object via Object.setPrototypeOf should throw a TypeError 
-PASS Same-origin-domain: setting the prototype to an empty object via __proto__ should throw a TypeError 
+FAIL Same-origin-domain: setting the prototype to an empty object via __proto__ should throw a TypeError assert_throws: function "function () {
+      target.__proto__ = newValue;
+    }" threw object "SecurityError: Blocked a frame with origin "http://localhost:8800" from accessing a cross-origin frame. Protocols, domains, and ports must match." ("SecurityError") expected object "TypeError" ("TypeError")
 PASS Same-origin-domain: setting the prototype to an empty object via Reflect.setPrototypeOf should return false 
-PASS Same-origin-domain: the prototype must still be its original value 
-PASS Same-origin-domain: setting the prototype to its original value via Object.setPrototypeOf should not throw 
-PASS Same-origin-domain: setting the prototype to its original value via __proto__ should not throw 
-PASS Same-origin-domain: setting the prototype to its original value via Reflect.setPrototypeOf should return true 
+PASS Same-origin-domain: the prototype must still be null 
+PASS Same-origin-domain: setting the prototype to null via Object.setPrototypeOf should not throw 
+FAIL Same-origin-domain: setting the prototype to null via __proto__ should not throw Blocked a frame with origin "http://localhost:8800" from accessing a cross-origin frame. Protocols, domains, and ports must match.
+PASS Same-origin-domain: setting the prototype to null via Reflect.setPrototypeOf should return true 
 
index 570dfcc..c9b913d 100644 (file)
@@ -8,7 +8,7 @@
 <script src="/resources/testharnessreport.js"></script>
 <script src="/common/test-setting-immutable-prototype.js"></script>
 
-<iframe src="//{{domains[www]}}:{{ports[http][1]}}/common/domain-setter.sub.html"></iframe>
+<iframe src="//{{hosts[alt][]}}:{{ports[http][1]}}/common/domain-setter.sub.html"></iframe>
 
 <script>
 "use strict";
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub-expected.txt
new file mode 100644 (file)
index 0000000..947d98d
--- /dev/null
@@ -0,0 +1,18 @@
+Blocked access to external URL http://www1.localhost:8800/html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_frame.html
+
+
+Harness Error (TIMEOUT), message = null
+
+TIMEOUT Access allowed if same-origin with no 'document.domain' modification. (Sanity check) Test timed out
+NOTRUN Access not allowed if different-origin with no 'document.domain' modification. (Sanity check) 
+NOTRUN Access disallowed if same-origin but only one sets document.domain. 
+NOTRUN Access allowed if same-origin and both set document.domain to existing value. 
+NOTRUN Access allowed if different-origin but both set document.domain to parent domain. 
+NOTRUN Access disallowed again if same-origin, both set document-domain to existing value, then one sets to parent. 
+NOTRUN Access is revoked to Window object when we stop being same effective script origin due to document.domain. 
+NOTRUN Access is revoked to Location object when we stop being same effective script origin due to document.domain. 
+NOTRUN Access is not revoked to Document object when we stop being same effective script origin due to document.domain. 
+NOTRUN Access is not revoked to random object when we stop being same effective script origin due to document.domain. 
+NOTRUN Access evolves correctly for non-cross-origin objects when we join up via document.domain and then diverge again. 
+NOTRUN Access evolves correctly for cross-origin objects when we join up via document.domain and then diverge again. 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html
new file mode 100644 (file)
index 0000000..eb02c96
--- /dev/null
@@ -0,0 +1,305 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/document_domain_frame.sub.js"></script>
+<body>
+<script>
+promise_test(async (t) => {
+  let frame1 = await createFrame(t, "control1-1", "{{domains[www1]}}");
+  let frame2 = await createFrame(t, "control1-2", "{{domains[www1]}}");
+  let result = await postMessageToFrame(frame1, { 'poke-at-sibling': "control1-2" });
+  assert_equals(result.data, "omg!");
+}, "Access allowed if same-origin with no 'document.domain' modification. (Sanity check)");
+
+promise_test(async (t) => {
+  let frame1 = await createFrame(t, "control2-1", "{{domains[www1]}}");
+  let frame2 = await createFrame(t, "control2-2", "{{domains[www2]}}");
+  let result = await postMessageToFrame(frame1, { 'poke-at-sibling': "control2-2" });
+  assert_equals(result.data, "SecurityError");
+}, "Access not allowed if different-origin with no 'document.domain' modification. (Sanity check)");
+
+promise_test(async (t) => {
+  let frame1 = await createFrame(t, "one-set-one-not-1", "{{domains[www1]}}");
+  let frame2 = await createFrame(t, "one-set-one-not-2", "{{domains[www1]}}");
+  await postMessageToFrame(frame1, { domain: "{{domains[www1]}}" });
+
+  let result = await postMessageToFrame(frame1, { 'poke-at-sibling': "one-set-one-not-2" });
+  assert_equals(result.data, "SecurityError");
+
+  result = await postMessageToFrame(frame2, { 'poke-at-sibling': "one-set-one-not-1" });
+  assert_equals(result.data, "SecurityError");
+}, "Access disallowed if same-origin but only one sets document.domain.");
+
+promise_test(async (t) => {
+  var frame1 = await createFrame(t, "both-set-to-existing-1", "{{domains[www1]}}");
+  var frame2 = await createFrame(t, "both-set-to-existing-2", "{{domains[www1]}}");
+  let result = await postMessageToFrame(frame1, { domain: "{{domains[www1]}}" });
+  assert_equals(result.data, "Done");
+
+  result = await postMessageToFrame(frame2, { domain: "{{domains[www1]}}" });
+  assert_equals(result.data, "Done");
+
+  result = await postMessageToFrame(frame1, { 'poke-at-sibling': "both-set-to-existing-2" });
+  assert_equals(result.data, "omg!");
+
+  result = await postMessageToFrame(frame2, { 'poke-at-sibling': "both-set-to-existing-1" });
+  assert_equals(result.data, "omg!");
+}, "Access allowed if same-origin and both set document.domain to existing value.");
+
+promise_test(async (t) => {
+  var frame1 = await createFrame(t, "both-set-to-parent-1", "{{domains[www1]}}");
+  var frame2 = await createFrame(t, "both-set-to-parent-2", "{{domains[www2]}}");
+  let result = await postMessageToFrame(frame1, { domain: "{{domains[]}}" });
+  assert_equals(result.data, "Done");
+
+  result = await postMessageToFrame(frame2, { domain: "{{domains[]}}" });
+  assert_equals(result.data, "Done");
+
+  result = await postMessageToFrame(frame1, { 'poke-at-sibling': "both-set-to-parent-2" });
+  assert_equals(result.data, "omg!");
+
+  result = await postMessageToFrame(frame2, { 'poke-at-sibling': "both-set-to-parent-1" });
+  assert_equals(result.data, "omg!");
+}, "Access allowed if different-origin but both set document.domain to parent domain.");
+
+promise_test(async (t) => {
+  var frame1 = await createFrame(t, "allow-then-revoke-1", "{{domains[www1]}}");
+  var frame2 = await createFrame(t, "allow-then-revoke-2", "{{domains[www1]}}");
+  let result = await postMessageToFrame(frame1, { domain: "{{domains[www1]}}" });
+  assert_equals(result.data, "Done");
+
+  result = await postMessageToFrame(frame2, { domain: "{{domains[www1]}}" });
+  assert_equals(result.data, "Done");
+
+  result = await postMessageToFrame(frame1, { 'poke-at-sibling': "allow-then-revoke-2" });
+  assert_equals(result.data, "omg!");
+
+  result = await postMessageToFrame(frame2, { 'poke-at-sibling': "allow-then-revoke-1" });
+  assert_equals(result.data, "omg!");
+
+  result = await postMessageToFrame(frame1, { domain: "{{domains[]}}" });
+  assert_equals(result.data, "Done");
+
+  result = await postMessageToFrame(frame1, { 'poke-at-sibling': "allow-then-revoke-2" });
+  assert_equals(result.data, "SecurityError");
+
+  result = await postMessageToFrame(frame2, { 'poke-at-sibling': "allow-then-revoke-1" });
+  assert_equals(result.data, "SecurityError");
+}, "Access disallowed again if same-origin, both set document-domain to existing value, then one sets to parent.");
+
+promise_test(async (t) => {
+  let frame1 = await createFrame(t, "revoke-Window-1", "{{domains[www1]}}");
+  let frame2 = await createFrame(t, "revoke-Window-2", "{{domains[www1]}}");
+
+  let result = await postMessageToFrame(frame1, { cache: ["parent", "revoke-Window-2"] });
+  assert_equals(result.data, "cached");
+
+  result = await postMessageToFrame(frame1, 'touch-cached');
+  assert_equals(result.data, "Reachable 1");
+
+  result = await postMessageToFrame(frame2, { cache: ["parent", "revoke-Window-1"] });
+  assert_equals(result.data, "cached");
+
+  result = await postMessageToFrame(frame1, 'touch-cached');
+  assert_equals(result.data, "Reachable 1");
+
+  result = await postMessageToFrame(frame1, { domain: "{{domains[www1]}}" });
+  assert_equals(result.data, "Done");
+
+  result = await postMessageToFrame(frame1, 'touch-cached');
+  assert_equals(result.data, "SecurityError");
+
+  result = await postMessageToFrame(frame2, 'touch-cached');
+  assert_equals(result.data, "SecurityError");
+}, "Access is revoked to Window object when we stop being same effective script origin due to document.domain.");
+
+promise_test(async (t) => {
+  let frame1 = await createFrame(t, "revoke-Location-1", "{{domains[www1]}}");
+  let frame2 = await createFrame(t, "revoke-Location-2", "{{domains[www1]}}");
+
+  let result = await postMessageToFrame(frame1, { cache: ["parent", "revoke-Location-2", "location"] });
+  assert_equals(result.data, "cached");
+
+  result = await postMessageToFrame(frame1, 'touch-cached');
+  assert_equals(result.data, "Reachable 3");
+
+  result = await postMessageToFrame(frame2, { cache: ["parent", "revoke-Location-1", "location"] });
+  assert_equals(result.data, "cached");
+
+  result = await postMessageToFrame(frame1, 'touch-cached');
+  assert_equals(result.data, "Reachable 3");
+
+  result = await postMessageToFrame(frame1, { domain: "{{domains[www1]}}" });
+  assert_equals(result.data, "Done");
+
+  result = await postMessageToFrame(frame1, 'touch-cached');
+  assert_equals(result.data, "SecurityError");
+
+  result = await postMessageToFrame(frame2, 'touch-cached');
+  assert_equals(result.data, "SecurityError");
+}, "Access is revoked to Location object when we stop being same effective script origin due to document.domain.");
+
+promise_test(async (t) => {
+  let frame1 = await createFrame(t, "no-revoke-Document-1", "{{domains[www1]}}");
+  let frame2 = await createFrame(t, "no-revoke-Document-2", "{{domains[www1]}}");
+
+  let result = await postMessageToFrame(frame1, { cache: ["parent", "no-revoke-Document-2", "document"] });
+  assert_equals(result.data, "cached");
+
+  result = await postMessageToFrame(frame1, 'touch-cached');
+  assert_equals(result.data, "Reachable 4");
+
+  result = await postMessageToFrame(frame2, { cache: ["parent", "no-revoke-Document-1", "document"] });
+  assert_equals(result.data, "cached");
+
+  result = await postMessageToFrame(frame2, 'touch-cached');
+  assert_equals(result.data, "Reachable 4");
+
+  result = await postMessageToFrame(frame1, { domain: "{{domains[www1]}}" });
+  assert_equals(result.data, "Done");
+
+  result = await postMessageToFrame(frame1, 'touch-cached');
+  assert_equals(result.data, "Reachable 4");
+
+  result = await postMessageToFrame(frame2, 'touch-cached');
+  assert_equals(result.data, "Reachable 4");
+}, "Access is not revoked to Document object when we stop being same effective script origin due to document.domain.");
+
+promise_test(async (t) => {
+  let frame1 = await createFrame(t, "no-revoke-object-1", "{{domains[www1]}}");
+  let frame2 = await createFrame(t, "no-revoke-object-2", "{{domains[www1]}}");
+
+  let result = await postMessageToFrame(frame1, { cache: ["parent", "no-revoke-object-2", "bar"] });
+  assert_equals(result.data, "cached");
+
+  result = await postMessageToFrame(frame1, 'touch-cached');
+  assert_equals(result.data, "Reachable 2");
+
+  result = await postMessageToFrame(frame2, { cache: ["parent", "no-revoke-object-1", "bar"] });
+  assert_equals(result.data, "cached");
+
+  result = await postMessageToFrame(frame1, 'touch-cached');
+  assert_equals(result.data, "Reachable 2");
+
+  result = await postMessageToFrame(frame1, { domain: "{{domains[www1]}}" });
+  assert_equals(result.data, "Done");
+
+  result = await postMessageToFrame(frame1, 'touch-cached');
+  assert_equals(result.data, "Reachable 2");
+
+  result = await postMessageToFrame(frame2, 'touch-cached');
+  assert_equals(result.data, "Reachable 2");
+}, "Access is not revoked to random object when we stop being same effective script origin due to document.domain.");
+
+promise_test(async (t) => {
+  let frame1 = await createFrame(t, "join-and-diverge-1", "{{domains[www2.www1]}}");
+  let frame2 = await createFrame(t, "join-and-diverge-2", "{{domains[www1.www1]}}");
+
+  // Make sure we can't touch each other.
+  let result = await postMessageToFrame(frame1, { 'poke-at-sibling': "join-and-diverge-2" });
+  assert_equals(result.data, "SecurityError");
+
+  result = await postMessageToFrame(frame2, { 'poke-at-sibling': "join-and-diverge-1" });
+  assert_equals(result.data, "SecurityError");
+
+  result = await postMessageToFrame(frame1, { cache: ["parent", "join-and-diverge-2", "bar"] });
+  assert_equals(result.data, "SecurityError");
+
+  result = await postMessageToFrame(frame2, { cache: ["parent", "join-and-diverge-1", "document"] });
+  assert_equals(result.data, "SecurityError");
+
+  // Let's join up now.
+  result = await postMessageToFrame(frame1, { domain: "{{domains[www1]}}" });
+  assert_equals(result.data, "Done");
+
+  result = await postMessageToFrame(frame2, { domain: "{{domains[www1]}}" });
+  assert_equals(result.data, "Done");
+
+  // Now we should be able to touch each other.
+  result = await postMessageToFrame(frame1, { 'poke-at-sibling': "join-and-diverge-2" });
+  assert_equals(result.data, "omg!");
+
+  result = await postMessageToFrame(frame2, { 'poke-at-sibling': "join-and-diverge-1" });
+  assert_equals(result.data, "omg!");
+
+  // Cache a random object and a document.
+  result = await postMessageToFrame(frame1, { cache: ["parent", "join-and-diverge-2", "bar"] });
+  assert_equals(result.data, "cached");
+
+  result = await postMessageToFrame(frame1, 'touch-cached');
+  assert_equals(result.data, "Reachable 2");
+
+  result = await postMessageToFrame(frame2, { cache: ["parent", "join-and-diverge-1", "document"] });
+  assert_equals(result.data, "cached");
+
+  result = await postMessageToFrame(frame2, 'touch-cached');
+  assert_equals(result.data, "Reachable 4");
+
+  // OK, now let's diverge
+  result = await postMessageToFrame(frame1, { domain: "{{domains[]}}" });
+  assert_equals(result.data, "Done");
+
+  // We should still be able to touch our cached things.
+  result = await postMessageToFrame(frame1, 'touch-cached');
+  assert_equals(result.data, "Reachable 2");
+
+  result = await postMessageToFrame(frame2, 'touch-cached');
+  assert_equals(result.data, "Reachable 4");
+}, "Access evolves correctly for non-cross-origin objects when we join up via document.domain and then diverge again.");
+
+promise_test(async (t) => {
+  let frame1 = await createFrame(t, "join-and-diverge-cross-origin-1", "{{domains[www2.www1]}}");
+  let frame2 = await createFrame(t, "join-and-diverge-cross-origin-2", "{{domains[www1.www1]}}");
+
+  // Make sure we can't touch each other.
+  let result = await postMessageToFrame(frame1, { 'poke-at-sibling': "join-and-diverge-cross-origin-2" });
+  assert_equals(result.data, "SecurityError");
+
+  result = await postMessageToFrame(frame2, { 'poke-at-sibling': "join-and-diverge-cross-origin-1" });
+  assert_equals(result.data, "SecurityError");
+
+  result = await postMessageToFrame(frame1, { cache: ["parent", "join-and-diverge-2", "bar"] });
+  assert_equals(result.data, "SecurityError");
+
+  result = await postMessageToFrame(frame2, { cache: ["parent", "join-and-diverge-1", "document"] });
+  assert_equals(result.data, "SecurityError");
+
+  // Let's join up now.
+  result = await postMessageToFrame(frame1, { domain: "{{domains[www1]}}" });
+  assert_equals(result.data, "Done");
+
+  result = await postMessageToFrame(frame2, { domain: "{{domains[www1]}}" });
+  assert_equals(result.data, "Done");
+
+  // Now we should be able to touch each other.
+  result = await postMessageToFrame(frame1, { 'poke-at-sibling': "join-and-diverge-cross-origin-2" });
+  assert_equals(result.data, "omg!");
+
+  result = await postMessageToFrame(frame2, { 'poke-at-sibling': "join-and-diverge-cross-origin-1" });
+  assert_equals(result.data, "omg!");
+
+  // Cache a window and a location
+  result = await postMessageToFrame(frame1, { cache: ["parent", "join-and-diverge-cross-origin-2"] });
+  assert_equals(result.data, "cached");
+
+  result = await postMessageToFrame(frame1, 'touch-cached');
+  assert_equals(result.data, "Reachable 1");
+
+  result = await postMessageToFrame(frame2, { cache: ["parent", "join-and-diverge-cross-origin-1", "location"] });
+  assert_equals(result.data, "cached");
+
+  result = await postMessageToFrame(frame2, 'touch-cached');
+  assert_equals(result.data, "Reachable 3");
+
+  // OK, now let's diverge
+  result = await postMessageToFrame(frame1, { domain: "{{domains[]}}" });
+  assert_equals(result.data, "Done");
+
+  // Now our cross-origin objects should start denying access.
+  result = await postMessageToFrame(frame1, 'touch-cached');
+  assert_equals(result.data, "SecurityError");
+
+  result = await postMessageToFrame(frame2, 'touch-cached');
+  assert_equals(result.data, "SecurityError");
+}, "Access evolves correctly for cross-origin objects when we join up via document.domain and then diverge again.");
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/resources/post-done-to-opener.html b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/resources/post-done-to-opener.html
new file mode 100644 (file)
index 0000000..b47f0f2
--- /dev/null
@@ -0,0 +1,3 @@
+<script>
+  window.opener.top.postMessage("DONE", "*");
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/resources/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/resources/w3c-import.log
new file mode 100644 (file)
index 0000000..ca08a4d
--- /dev/null
@@ -0,0 +1,17 @@
+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the WPT github:
+       https://github.com/web-platform-tests/wpt
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/resources/post-done-to-opener.html
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-disallow-scripts-via-unsandboxed-popup.tentative-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-disallow-scripts-via-unsandboxed-popup.tentative-expected.txt
new file mode 100644 (file)
index 0000000..2548cd7
--- /dev/null
@@ -0,0 +1,8 @@
+CONSOLE MESSAGE: line 21: Blocked script execution in 'about:srcdoc' because the document's frame is sandboxed and the 'allow-scripts' permission is not set.
+CONSOLE MESSAGE: line 2: TypeError: null is not an object (evaluating 'window.opener.top')
+
+
+Harness Error (TIMEOUT), message = null
+
+TIMEOUT Sandboxed => unsandboxed popup Test timed out
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-disallow-scripts-via-unsandboxed-popup.tentative.html b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-disallow-scripts-via-unsandboxed-popup.tentative.html
new file mode 100644 (file)
index 0000000..0bb98c5
--- /dev/null
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<body>
+  <script>
+    async_test(t => {
+      let i = document.createElement('iframe');
+      i.sandbox = "allow-same-origin allow-popups allow-popups-to-escape-sandbox";
+      i.srcdoc = `<a target='_blank'
+                     href="javascript:window.opener.top.postMessage('FAIL', '*');">Click me!</a>
+                  <a target='_blank'
+                     href="./resources/post-done-to-opener.html">Click me next!</a>`;
+
+      i.onload = _ => {
+        // Since the frame is sandboxed, but allow-same-origin, we can reach into it to grab the
+        // anchor element to click. We'll click the `javascript:` URL first, then pop up a new
+        // window that posts `DONE`.
+        //
+        // TODO(mkwst): This feels like a race, but it's one that we consistently win when I'm
+        // running the test locally 10,000 times. Good enough!™
+        i.contentDocument.body.querySelectorAll('a')[0].click();
+        i.contentDocument.body.querySelectorAll('a')[1].click();
+      };
+      document.body.appendChild(i);
+
+      window.addEventListener('message', t.step_func(e => {
+        assert_not_equals(e.data, "FAIL");
+        if (e.data == "DONE")
+          t.done();
+      }));
+    }, "Sandboxed => unsandboxed popup");
+  </script>
+</body>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-navigation-timing-iframe.tentative.html b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-navigation-timing-iframe.tentative.html
new file mode 100644 (file)
index 0000000..43726e7
--- /dev/null
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<script>
+  let result;
+  try {
+    parent.document.getElementsByClassName('script');
+    result = 'iframe not sandboxed'
+  } catch (e) {
+    result = 'iframe sandboxed(' + e.message + ')';
+  }
+  window.onmessage = m => {
+    window.parent.postMessage({
+      result: result
+    }, '*');
+  };
+</script>
\ No newline at end of file
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-navigation-timing.tentative-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-navigation-timing.tentative-expected.txt
new file mode 100644 (file)
index 0000000..59a8ce6
--- /dev/null
@@ -0,0 +1,4 @@
+
+
+FAIL setting sandbox attribute should not affect current document in iframe assert_equals: expected "iframe not sandboxed" but got "iframe sandboxed(Sandbox access violation: Blocked a frame at \"http://localhost:8800\" from accessing a cross-origin frame.  The frame requesting access is sandboxed and lacks the \"allow-same-origin\" flag.)"
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-navigation-timing.tentative.html b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-navigation-timing.tentative.html
new file mode 100644 (file)
index 0000000..686f1c0
--- /dev/null
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Sandbox Navigation Timing</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<html></html>
+<script>
+  const sandboxUrl = location.pathname.substring(0, location.pathname.lastIndexOf('/') + 1) + 'sandbox-navigation-timing-iframe.tentative.html';
+  async_test(t => {
+    const iframe = document.createElement('iframe');
+    iframe.src = sandboxUrl;
+    document.body.appendChild(iframe); // Navigation starts; value of sandbox flags locked on.
+    // This should not affect the sandbox value used for both about:blank document
+    // and the final document in iframe.
+    iframe.sandbox = 'allow-scripts';
+    const iframeAboutBlankDocument = iframe.contentDocument;
+
+    iframe.onload = t.step_func(() => {
+      const iframeAboutBlankContents = iframeAboutBlankDocument.querySelectorAll('body');
+      assert_equals(iframeAboutBlankContents[0].tagName, "BODY",
+        "about:blank document's contents should still be accessible");
+
+      iframe.contentWindow.postMessage("is iframe sandboxed?", "*");
+    });
+    window.onmessage = t.step_func_done(e => {
+      assert_equals(e.data.result, 'iframe not sandboxed');
+    });
+  }, 'setting sandbox attribute should not affect current document in iframe');
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-new-execution-context-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-new-execution-context-expected.txt
new file mode 100644 (file)
index 0000000..c1e7333
--- /dev/null
@@ -0,0 +1,7 @@
+CONSOLE MESSAGE: line 1984: Sandbox access violation: Blocked a frame at "http://localhost:8800" from accessing a frame at "http://localhost:8800".  The frame being accessed is sandboxed and lacks the "allow-same-origin" flag.
+Reuse of iframe about:blank document execution context in sandbox="allow-scripts" iframe
+
+
+
+PASS iframe with sandbox should load with new execution context 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-new-execution-context-iframe.html b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-new-execution-context-iframe.html
new file mode 100644 (file)
index 0000000..dc15d57
--- /dev/null
@@ -0,0 +1,5 @@
+<body>
+  <script>
+    document.__proto__.changeFromSandboxedIframe = "change from sandboxed iframe";
+  </script>
+</body>
\ No newline at end of file
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-new-execution-context.html b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-new-execution-context.html
new file mode 100644 (file)
index 0000000..6537293
--- /dev/null
@@ -0,0 +1,39 @@
+<!doctype html>
+<html>
+  <head>
+    <title>Reuse of iframe about:blank document execution context</title>
+    <link rel="author" title="Dan Clark" href="mailto:daniec@microsoft.com">
+    <link rel="help" href="http://www.w3.org/html/wg/drafts/html/master/browsers.html#sandboxing">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+  </head>
+
+  <body>
+    <h1>Reuse of iframe about:blank document execution context in sandbox="allow-scripts" iframe</h1>
+    <script type="text/javascript">
+      async_test(t => {
+        let iframe = document.createElement("iframe");
+        document.body.appendChild(iframe);
+
+        let iframeAboutBlankDocument = iframe.contentDocument;
+        assert_equals(iframeAboutBlankDocument.URL, "about:blank");
+
+        iframe.sandbox = "allow-scripts";
+        iframe.src = './sandbox-new-execution-context-iframe.html';
+
+        iframe.onload = t.step_func_done(() => {
+          assert_equals(iframe.contentDocument, null,
+            "New document in sandboxed iframe should have opaque origin");
+
+          assert_equals(iframeAboutBlankDocument.__proto__.changeFromSandboxedIframe, undefined,
+            "Sandboxed iframe contents should not have been able to mess with type system of about:blank document");
+
+          let iframeAboutBlankContents = iframeAboutBlankDocument.querySelectorAll('body');
+          assert_equals(iframeAboutBlankContents[0].tagName, "BODY",
+            "about:blank document's contents should still be accessible");
+        });
+      },"iframe with sandbox should load with new execution context");
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript-expected.txt
new file mode 100644 (file)
index 0000000..49aab62
--- /dev/null
@@ -0,0 +1,39 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x332
+  RenderBlock {HTML} at (0,0) size 800x332
+    RenderBody {BODY} at (8,8) size 784x316
+      RenderIFrame {IFRAME} at (0,0) size 304x154 [border: (2px inset #000000)]
+        layer at (0,0) size 300x150
+          RenderView at (0,0) size 300x150
+        layer at (0,0) size 300x34
+          RenderBlock {HTML} at (0,0) size 300x34
+            RenderBody {BODY} at (8,8) size 284x18
+              RenderText {#text} at (0,0) size 37x18
+                text run at (0,0) width 37: "PASS"
+      RenderText {#text} at (304,140) size 4x18
+        text run at (304,140) width 4: " "
+      RenderIFrame {IFRAME} at (308,0) size 304x154 [border: (2px inset #000000)]
+        layer at (0,0) size 300x150
+          RenderView at (0,0) size 300x150
+        layer at (0,0) size 300x34
+          RenderBlock {HTML} at (0,0) size 300x34
+            RenderBody {BODY} at (8,8) size 284x18
+              RenderText {#text} at (0,0) size 37x18
+                text run at (0,0) width 37: "PASS"
+      RenderText {#text} at (612,140) size 4x18
+        text run at (612,140) width 4: " "
+      RenderIFrame {IFRAME} at (0,158) size 304x154 [border: (2px inset #000000)]
+        layer at (0,0) size 300x150
+          RenderView at (0,0) size 300x150
+        layer at (0,0) size 300x34
+          RenderBlock {HTML} at (0,0) size 300x34
+            RenderBody {BODY} at (8,8) size 284x18
+              RenderText {#text} at (0,0) size 9x18
+                text run at (0,0) width 9: "P"
+              RenderInline {B} at (0,0) size 22x18
+                RenderText {#text} at (8,0) size 22x18
+                  text run at (8,0) width 22: "AS"
+              RenderText {#text} at (29,0) size 10x18
+                text run at (29,0) width 10: "S"
+      RenderText {#text} at (0,0) size 0x0
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript.html b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript.html
new file mode 100644 (file)
index 0000000..bb7ced0
--- /dev/null
@@ -0,0 +1,7 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>noscript parsing when sandbox disables scripting</title>
+<link rel=match href=/html/browsers/sandboxing/sandbox-parse-noscript-ref.html>
+<iframe srcdoc="<noscript>PASS</noscript>" sandbox></iframe>
+<iframe src="noscript-iframe.html" sandbox></iframe>
+<iframe srcdoc="<noscript>P<b>AS</b>S</noscript>" sandbox></iframe>
index 91216fc..3ba111c 100644 (file)
@@ -19,5 +19,10 @@ List of files:
 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-allow-same-origin.html
 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-allow-scripts.html
 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-disallow-same-origin.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-disallow-scripts-via-unsandboxed-popup.tentative.html
 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-disallow-scripts.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-navigation-timing-iframe.tentative.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-navigation-timing.tentative.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-new-execution-context-iframe.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-new-execution-context.html
 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript.html
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/cross-global-npo-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/cross-global-npo-expected.txt
new file mode 100644 (file)
index 0000000..507c84a
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS Named access across globals 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/cross-global-npo.html b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/cross-global-npo.html
new file mode 100644 (file)
index 0000000..2acad07
--- /dev/null
@@ -0,0 +1,38 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Named access across globals</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id=log></div>
+<script>
+async_test(function() {
+  var iframe = document.createElement("iframe");
+  iframe.src = "cross-global-support.html";
+  document.body.appendChild(iframe);
+  iframe.onload = this.step_func_done(function() {
+    var name = "named";
+    var win = iframe.contentWindow;
+    var element = win.document.getElementById(name);
+
+    var expectedValues = [
+      // [value, is own property]
+      [element, false, "window"],
+      [element, false, "Window.prototype"],
+      [element, true, "named prototype object"],
+      [undefined, false, "EventTarget.prototype"],
+      [undefined, false, "Object.prototype"],
+    ];
+    for (var object = win; object; object = Object.getPrototypeOf(object)) {
+      var expected = expectedValues.shift();
+      assert_equals(object[name], expected[0], "[[Get]] on " + expected[2]);
+      var desc = Object.getOwnPropertyDescriptor(object, name);
+      if (expected[1]) {
+        assert_not_equals(desc, undefined, "[[GetOwnProperty]] on " + expected[2] + " should return something");
+        assert_equals(desc.value, element, "[[GetOwnProperty]] on " + expected[2]);
+      } else {
+        assert_equals(desc, undefined, "[[GetOwnProperty]] on " + expected[2]);
+      }
+    }
+  });
+});
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/cross-global-support.html b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/cross-global-support.html
new file mode 100644 (file)
index 0000000..9d7b9f8
--- /dev/null
@@ -0,0 +1,4 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Named access across globals: support file</title>
+<span id="named"></span>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/prototype-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/prototype-expected.txt
new file mode 100644 (file)
index 0000000..deb4abf
--- /dev/null
@@ -0,0 +1,6 @@
+
+PASS Property on window. 
+PASS Property on Window.prototype. 
+PASS Property on EventTarget.prototype. 
+PASS Property on Object.prototype. 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/prototype.html b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/prototype.html
new file mode 100644 (file)
index 0000000..9103743
--- /dev/null
@@ -0,0 +1,94 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Named access with shadowing properties</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id=log></div>
+<script>
+test(function() {
+  var name = "named1";
+  window[name] = "shadowing";
+  var element = document.createElement("span");
+  element.id = name;
+  document.body.appendChild(element);
+
+  assert_equals(window[name], "shadowing");
+  assert_equals(Object.getOwnPropertyDescriptor(window, name).value, "shadowing");
+
+  assert_equals(Window.prototype[name], element);
+  assert_equals(Object.getOwnPropertyDescriptor(Window.prototype, name), undefined);
+
+  var npo = Object.getPrototypeOf(Window.prototype);
+  assert_equals(npo[name], element);
+  assert_equals(Object.getOwnPropertyDescriptor(npo, name).value, element);
+
+  assert_equals(EventTarget.prototype[name], undefined);
+  assert_equals(Object.getOwnPropertyDescriptor(EventTarget.prototype, name), undefined);
+}, "Property on window.");
+
+test(function() {
+  var name = "named2";
+  Window.prototype[name] = "shadowing";
+  var element = document.createElement("span");
+  element.id = name;
+  document.body.appendChild(element);
+
+  assert_equals(window[name], "shadowing");
+  assert_equals(Object.getOwnPropertyDescriptor(window, name), undefined);
+
+  assert_equals(Window.prototype[name], "shadowing");
+  assert_equals(Object.getOwnPropertyDescriptor(Window.prototype, name).value, "shadowing");
+
+  var npo = Object.getPrototypeOf(Window.prototype);
+  assert_equals(npo[name], element);
+  assert_equals(Object.getOwnPropertyDescriptor(npo, name).value, element);
+
+  assert_equals(EventTarget.prototype[name], undefined);
+  assert_equals(Object.getOwnPropertyDescriptor(EventTarget.prototype, name), undefined);
+}, "Property on Window.prototype.");
+
+test(function() {
+  var name = "named3";
+  EventTarget.prototype[name] = "shadowing";
+  var element = document.createElement("span");
+  element.id = name;
+  document.body.appendChild(element);
+
+  assert_equals(window[name], "shadowing");
+  assert_equals(Object.getOwnPropertyDescriptor(window, name), undefined);
+
+  assert_equals(Window.prototype[name], "shadowing");
+  assert_equals(Object.getOwnPropertyDescriptor(Window.prototype, name), undefined);
+
+  var npo = Object.getPrototypeOf(Window.prototype);
+  assert_equals(npo[name], "shadowing");
+  assert_equals(Object.getOwnPropertyDescriptor(npo, name), undefined);
+
+  assert_equals(EventTarget.prototype[name], "shadowing");
+  assert_equals(Object.getOwnPropertyDescriptor(EventTarget.prototype, name).value, "shadowing");
+}, "Property on EventTarget.prototype.");
+
+test(function() {
+  var name = "named4";
+  Object.prototype[name] = "shadowing";
+  var element = document.createElement("span");
+  element.id = name;
+  document.body.appendChild(element);
+
+  assert_equals(window[name], "shadowing");
+  assert_equals(Object.getOwnPropertyDescriptor(window, name), undefined);
+
+  assert_equals(Window.prototype[name], "shadowing");
+  assert_equals(Object.getOwnPropertyDescriptor(Window.prototype, name), undefined);
+
+  var npo = Object.getPrototypeOf(Window.prototype);
+  assert_equals(npo[name], "shadowing");
+  assert_equals(Object.getOwnPropertyDescriptor(npo, name), undefined);
+
+  assert_equals(EventTarget.prototype[name], "shadowing");
+  assert_equals(Object.getOwnPropertyDescriptor(EventTarget.prototype, name), undefined);
+
+  assert_equals(Object.prototype[name], "shadowing");
+  assert_equals(Object.getOwnPropertyDescriptor(Object.prototype, name).value, "shadowing");
+}, "Property on Object.prototype.");
+</script>
index c3c13e7..b59b764 100644 (file)
@@ -14,8 +14,11 @@ Property values requiring vendor prefixes:
 None
 ------------------------------------------------------------------------
 List of files:
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/cross-global-npo.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/cross-global-support.html
 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html
 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/navigated-named-objects.window.js
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/prototype.html
 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/test.html
 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties.html
 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/window-null-names.html
index 1389480..b3d6179 100644 (file)
@@ -1,16 +1,11 @@
-Blocked access to external URL http://www.localhost:8801/common/blank.html
 
 
-FAIL Cross-origin: the prototype is null assert_equals: expected null but got object "[object WindowPrototype]"
+PASS Cross-origin: the prototype is null 
 PASS Cross-origin: setting the prototype to an empty object via Object.setPrototypeOf should throw a TypeError 
-FAIL Cross-origin: setting the prototype to an empty object via __proto__ should throw a "SecurityError" DOMException assert_throws: function "function () {
-      target.__proto__ = newValue;
-    }" threw object "TypeError: Cannot set prototype of immutable prototype object" that is not a DOMException SecurityError: property "code" is equal to undefined, expected 18
+PASS Cross-origin: setting the prototype to an empty object via __proto__ should throw a "SecurityError" DOMException 
 PASS Cross-origin: setting the prototype to an empty object via Reflect.setPrototypeOf should return false 
-FAIL Cross-origin: the prototype must still be null assert_equals: expected null but got object "[object WindowPrototype]"
-FAIL Cross-origin: setting the prototype to null via Object.setPrototypeOf should not throw Cannot set prototype of immutable prototype object
-FAIL Cross-origin: setting the prototype to null via __proto__ should throw a "SecurityError" since it ends up in CrossOriginGetOwnProperty assert_throws: function "function () {
-        target.__proto__ = newValue;
-      }" threw object "TypeError: Cannot set prototype of immutable prototype object" that is not a DOMException SecurityError: property "code" is equal to undefined, expected 18
-FAIL Cross-origin: setting the prototype to null via Reflect.setPrototypeOf should return true assert_true: expected true got false
+PASS Cross-origin: the prototype must still be null 
+PASS Cross-origin: setting the prototype to null via Object.setPrototypeOf should not throw 
+PASS Cross-origin: setting the prototype to null via __proto__ should throw a "SecurityError" since it ends up in CrossOriginGetOwnProperty 
+PASS Cross-origin: setting the prototype to null via Reflect.setPrototypeOf should return true 
 
index 7e0e015..b4ee711 100644 (file)
@@ -1,12 +1,14 @@
-Blocked access to external URL http://www.localhost:8801/common/domain-setter.sub.html
+CONSOLE MESSAGE: line 7: SecurityError: Attempted to use a non-registrable domain.
 
 
-PASS Same-origin-domain prerequisite check: the original prototype is accessible 
+FAIL Same-origin-domain prerequisite check: the original prototype is accessible assert_not_equals: got disallowed value null
 PASS Same-origin-domain: setting the prototype to an empty object via Object.setPrototypeOf should throw a TypeError 
-PASS Same-origin-domain: setting the prototype to an empty object via __proto__ should throw a TypeError 
+FAIL Same-origin-domain: setting the prototype to an empty object via __proto__ should throw a TypeError assert_throws: function "function () {
+      target.__proto__ = newValue;
+    }" threw object "SecurityError: Blocked a frame with origin "http://localhost:8800" from accessing a cross-origin frame. Protocols, domains, and ports must match." ("SecurityError") expected object "TypeError" ("TypeError")
 PASS Same-origin-domain: setting the prototype to an empty object via Reflect.setPrototypeOf should return false 
-PASS Same-origin-domain: the prototype must still be its original value 
-PASS Same-origin-domain: setting the prototype to its original value via Object.setPrototypeOf should not throw 
-PASS Same-origin-domain: setting the prototype to its original value via __proto__ should not throw 
-PASS Same-origin-domain: setting the prototype to its original value via Reflect.setPrototypeOf should return true 
+PASS Same-origin-domain: the prototype must still be null 
+PASS Same-origin-domain: setting the prototype to null via Object.setPrototypeOf should not throw 
+FAIL Same-origin-domain: setting the prototype to null via __proto__ should not throw Blocked a frame with origin "http://localhost:8800" from accessing a cross-origin frame. Protocols, domains, and ports must match.
+PASS Same-origin-domain: setting the prototype to null via Reflect.setPrototypeOf should return true 
 
index 83d11a2..d3d10f1 100644 (file)
@@ -8,7 +8,7 @@
 <script src="/resources/testharnessreport.js"></script>
 <script src="/common/test-setting-immutable-prototype.js"></script>
 
-<iframe src="//{{domains[www]}}:{{ports[http][1]}}/common/domain-setter.sub.html"></iframe>
+<iframe src="//{{hosts[alt][]}}:{{ports[http][1]}}/common/domain-setter.sub.html"></iframe>
 
 <script>
 "use strict";
index 7c939bc..106c3f9 100644 (file)
@@ -2,7 +2,7 @@
 <meta charset="utf-8">
 <html>
   <head>
-    <title>Auxiliary Browing Contexts: window.opener when Opener Removed/Closed</title>
+    <title>Auxiliary Browsing Contexts: window.opener when Opener Removed/Closed</title>
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/PrefixedLocalStorage.js"></script>
index eb356c5..e71d4dc 100644 (file)
@@ -1,7 +1,7 @@
 <!doctype html>
 <html>
   <head>
-    <title>Auxiliary Browing Contexts: window.opener, multiple</title>
+    <title>Auxiliary Browsing Contexts: window.opener, multiple</title>
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/PrefixedLocalStorage.js"></script>
index fff1024..086a964 100644 (file)
@@ -1,7 +1,7 @@
 <!doctype html>
 <html>
   <head>
-    <title>Auxiliary Browing Contexts: window.opener noopener</title>
+    <title>Auxiliary Browsing Contexts: window.opener noopener</title>
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/PrefixedLocalStorage.js"></script>
index f82aa6f..b8226bd 100644 (file)
@@ -1,7 +1,7 @@
 <!doctype html>
 <html>
   <head>
-    <title>Auxiliary Browing Contexts: window.opener noreferrer</title>
+    <title>Auxiliary Browsing Contexts: window.opener noreferrer</title>
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/PrefixedLocalStorage.js"></script>
index e6ff4a1..ac6e47b 100644 (file)
@@ -1,7 +1,7 @@
 <!doctype html>
 <html>
   <head>
-    <title>Auxiliary Browing Contexts: window.opener setter</title>
+    <title>Auxiliary Browsing Contexts: window.opener setter</title>
     <meta name=timeout content=long>
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
index 5bbaee6..c43d3bd 100644 (file)
@@ -1,7 +1,7 @@
 <!doctype html>
 <html>
   <head>
-    <title>Auxiliary Browing Contexts: window.opener</title>
+    <title>Auxiliary Browsing Contexts: window.opener</title>
     <script src="/resources/testharness.js"></script>
     <script src="/resources/testharnessreport.js"></script>
     <script src="/common/PrefixedLocalStorage.js"></script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-access/document_access_feature_policy.tentative.sub-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-access/document_access_feature_policy.tentative.sub-expected.txt
deleted file mode 100644 (file)
index 5f2f2d6..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-Blocked access to external URL http://www.localhost:8800/html/browsers/windows/document-access/document_access_feature_policy.tentative.sub.html#iframe#document-access
-Blocked access to external URL http://www.localhost:8800/html/browsers/windows/document-access/document_access_feature_policy.tentative.sub.html#iframe#document-access
-
-
-Harness Error (TIMEOUT), message = null
-
-PASS Default "document-access" feature policy ["*"] allows the top-level document. 
-PASS Default "document-access" feature policy ["*"] allows same-origin iframes. 
-TIMEOUT Default "document-access" feature policy ["*"] allows cross-origin iframes. Test timed out
-TIMEOUT Feature policy "document-access" can be disabled in cross-origin iframes using "allow" attribute. Test timed out
-
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-access/document_access_feature_policy.tentative.sub.html b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-access/document_access_feature_policy.tentative.sub.html
deleted file mode 100644 (file)
index 2b3f512..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<body>
-  <script src=/resources/testharness.js></script>
-  <script src=/resources/testharnessreport.js></script>
-  <script src=/feature-policy/resources/featurepolicy.js></script>
-  <script>
-    run_all_fp_tests_allow_all(
-      'http://{{domains[www]}}:{{ports[http][0]}}',
-      'document-access',
-      'SecurityError',
-      () => {
-        return new Promise((resolve, reject) => {
-        try {
-            var iframe = document.createElement('iframe');
-            iframe.srcdoc ="<p>same origin iframe</p>";
-            document.documentElement.append(iframe);
-
-            // attempt to access something in a same origin iframe that would
-            // should be prevented by the feature policy.
-            iframe.contentWindow.location.href;
-            resolve();
-          } catch(e) {
-            reject(e);
-          }
-       });
-      });
-  </script>
-</body>
index 9a06d1b..07b27a5 100644 (file)
@@ -2,7 +2,7 @@
 <body>
   <script src=/resources/testharness.js></script>
   <script src=/resources/testharnessreport.js></script>
-  <iframe allow="document-access 'none'" src="resources/child.html"></iframe>
+  <iframe disallowdocumentaccess src="resources/child.html"></iframe>
   <script>
     async_test(function (t) {
       // Ensure post message works correctly.
index c56e23d..972a838 100644 (file)
@@ -14,5 +14,4 @@ Property values requiring vendor prefixes:
 None
 ------------------------------------------------------------------------
 List of files:
-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-access/document_access_feature_policy.tentative.sub.html
 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-access/document_access_parent_access.tentative.html
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested-navigate.window-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested-navigate.window-expected.txt
new file mode 100644 (file)
index 0000000..e88821a
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS Navigated frame to about:blank and document.domain 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested-navigate.window.js b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested-navigate.window.js
new file mode 100644 (file)
index 0000000..b639c81
--- /dev/null
@@ -0,0 +1,16 @@
+async_test(t => {
+  // Setting document.domain makes this document cross-origin with that of the frame. However,
+  // about:blank will end up reusing the origin of this document, at which point the frame's
+  // document is no longer cross-origin.
+  const frame = document.body.appendChild(document.createElement('iframe'));
+  document.domain = document.domain;
+  frame.src = "/common/blank.html";
+  frame.onload = t.step_func(() => {
+    assert_throws("SecurityError", () => window[0].document);
+    frame.src = "about:blank";
+    frame.onload = t.step_func_done(() => {
+      // Ensure we can access the child browsing context after navigation to non-initial about:blank
+      assert_equals(window[0].document, frame.contentDocument);
+    });
+  });
+}, "Navigated frame to about:blank and document.domain");
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested-set.window-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested-set.window-expected.txt
new file mode 100644 (file)
index 0000000..5fd2512
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS Initial about:blank frame and document.domain in the frame 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested-set.window.js b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested-set.window.js
new file mode 100644 (file)
index 0000000..13c0d50
--- /dev/null
@@ -0,0 +1,10 @@
+test(() => {
+  // As the initial:about frame document reuses the origin of this document, setting document.domain
+  // from the frame, resulting in a origin mutation, has no effect on these documents being able to
+  // reach each other, as they share the same "physical" origin.
+  document.body.appendChild(document.createElement('iframe'));
+  const script = document.createElement("script");
+  script.text = "document.domain = document.domain";
+  window[0].document.body.appendChild(script);
+  assert_equals(window[0].document.body.localName, "body");
+}, "Initial about:blank frame and document.domain in the frame");
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested.window-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested.window-expected.txt
new file mode 100644 (file)
index 0000000..1d6d672
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS Initial about:blank frame and document.domain 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested.window.html b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested.window.html
new file mode 100644 (file)
index 0000000..2382913
--- /dev/null
@@ -0,0 +1 @@
+<!-- This file is required for WebKit test infrastructure to run the templated test -->
\ No newline at end of file
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested.window.js b/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested.window.js
new file mode 100644 (file)
index 0000000..2e39d05
--- /dev/null
@@ -0,0 +1,9 @@
+test(() => {
+  // As the initial:about frame document reuses the origin of this document, setting document.domain
+  // from this document, resulting in a origin mutation, has no effect on these documents being able
+  // to reach each other, as they share the same "physical" origin.
+  document.body.appendChild(document.createElement('iframe'));
+  document.domain = document.domain;
+  // Ensure we can still access the child browsing context
+  assert_equals(window[0].document.body.localName, "body");
+}, "Initial about:blank frame and document.domain");
index 50ca7e5..6467099 100644 (file)
@@ -16,6 +16,9 @@ None
 List of files:
 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-window.html
 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/browsing-context.html
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested-navigate.window.js
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested-set.window.js
+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/document-domain-nested.window.js
 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/embedded-opener-a-form.html
 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/embedded-opener-remove-frame.html
 /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/embedded-opener.html
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/meta-http-equiv.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/meta-http-equiv.https-expected.txt
new file mode 100644 (file)
index 0000000..b70469b
--- /dev/null
@@ -0,0 +1,3 @@
+
+PASS <meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp"> top-level: navigating a frame to "none" should not fail 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/meta-http-equiv.https.html b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/meta-http-equiv.https.html
new file mode 100644 (file)
index 0000000..d35df31
--- /dev/null
@@ -0,0 +1,20 @@
+<!doctype html>
+<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp"><!-- should not be supported -->
+<title>Cross-Origin-Embedder-Policy in &lt;meta http-equiv></title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<div id=log></div>
+<script>
+async_test(t => {
+  const frame = document.createElement("iframe");
+  t.add_cleanup(() => frame.remove());
+  frame.src = "/common/blank.html";
+  document.body.append(frame);
+  assert_equals(frame.contentDocument.URL, "about:blank");
+  assert_equals(frame.contentDocument.body.localName, "body");
+  frame.onload = t.step_func_done(() => {
+    assert_equals(frame.contentDocument.URL, `${location.protocol}//${location.host}/common/blank.html`);
+    assert_equals(frame.contentDocument.body.localName, "body");
+  });
+}, `<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp"> top-level: navigating a frame to "none" should not fail`);
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/none-load-from-cache-storage.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/none-load-from-cache-storage.https-expected.txt
new file mode 100644 (file)
index 0000000..6ee6d2e
--- /dev/null
@@ -0,0 +1,32 @@
+
+
+PASS setting up 
+PASS Fetch cross-origin cors   from service-worker and CacheStorage. 
+PASS Fetch cross-origin no-cors   from service-worker and CacheStorage. 
+PASS Fetch same-origin cors   from service-worker and CacheStorage. 
+PASS Fetch same-origin no-cors   from service-worker and CacheStorage. 
+PASS Fetch same-origin cors cors-disabled corp-cross-origin from network and CacheStorage. 
+PASS Fetch same-origin cors cors-disabled corp-same-origin from network and CacheStorage. 
+PASS Fetch same-origin cors cors-disabled corp-undefined from network and CacheStorage. 
+PASS Fetch same-origin cors cors-enabled corp-cross-origin from network and CacheStorage. 
+PASS Fetch same-origin cors cors-enabled corp-same-origin from network and CacheStorage. 
+PASS Fetch same-origin cors cors-enabled corp-undefined from network and CacheStorage. 
+PASS Fetch same-origin no-cors cors-disabled corp-cross-origin from network and CacheStorage. 
+PASS Fetch same-origin no-cors cors-disabled corp-same-origin from network and CacheStorage. 
+PASS Fetch same-origin no-cors cors-disabled corp-undefined from network and CacheStorage. 
+PASS Fetch same-origin no-cors cors-enabled corp-cross-origin from network and CacheStorage. 
+PASS Fetch same-origin no-cors cors-enabled corp-same-origin from network and CacheStorage. 
+PASS Fetch same-origin no-cors cors-enabled corp-undefined from network and CacheStorage. 
+PASS Fetch cross-origin cors cors-disabled corp-cross-origin from network and CacheStorage. 
+PASS Fetch cross-origin cors cors-disabled corp-same-origin from network and CacheStorage. 
+PASS Fetch cross-origin cors cors-disabled corp-undefined from network and CacheStorage. 
+PASS Fetch cross-origin cors cors-enabled corp-cross-origin from network and CacheStorage. 
+PASS Fetch cross-origin cors cors-enabled corp-same-origin from network and CacheStorage. 
+PASS Fetch cross-origin cors cors-enabled corp-undefined from network and CacheStorage. 
+PASS Fetch cross-origin no-cors cors-disabled corp-cross-origin from network and CacheStorage. 
+PASS Fetch cross-origin no-cors cors-disabled corp-same-origin from network and CacheStorage. 
+PASS Fetch cross-origin no-cors cors-disabled corp-undefined from network and CacheStorage. 
+PASS Fetch cross-origin no-cors cors-enabled corp-cross-origin from network and CacheStorage. 
+PASS Fetch cross-origin no-cors cors-enabled corp-same-origin from network and CacheStorage. 
+PASS Fetch cross-origin no-cors cors-enabled corp-undefined from network and CacheStorage. 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/none-load-from-cache-storage.https.html b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/none-load-from-cache-storage.https.html
new file mode 100644 (file)
index 0000000..e0b8456
--- /dev/null
@@ -0,0 +1,172 @@
+<!doctype html>
+<html>
+<title> Retrieve resources from CacheStorage with Cross-Origin-Embedder-Policy: require-corp</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
+<script>
+
+/*
+  This document does NOT define the Cross-Origin-Embedder-Policy header.
+  Cross-Origin Embedder Policy Editor's draft: https://mikewest.github.io/corpp/
+
+  This test is retrieving same-origin and cross-origin resources from the
+  CacheStorage. The resources are generated from the ServiceWorker or from the
+  network with the header Cross-Origin-Resource-Policy being one of:
+    - 'same-origin'
+    - 'cross-origin'
+    - <undefined>
+*/
+
+promise_test(async (t) => {
+  const SCOPE = new URL(location.href).pathname;
+  const SCRIPT =
+    'resources/sw-store-to-cache-storage.js?' +
+    `pipe=header(service-worker-allowed,${SCOPE})`;
+
+  const reg = await service_worker_unregister_and_register(t, SCRIPT, SCOPE);
+  add_completion_callback(() => reg.unregister());
+  await new Promise(resolve => {
+    navigator.serviceWorker.addEventListener('controllerchange', resolve);
+  });
+}, 'setting up');
+
+function remote(path) {
+  const REMOTE_ORIGIN = get_host_info().HTTPS_REMOTE_ORIGIN;
+  return new URL(path, REMOTE_ORIGIN);
+}
+
+function local(path) {
+  return new URL(path, location.origin);
+}
+
+// Send a message to the currently active ServiceWorker and wait for its
+// response.
+function executeCommandInServiceWorker(command) {
+  return new Promise(resolve => {
+    navigator.serviceWorker.addEventListener('message', e => resolve(e.data));
+    navigator.serviceWorker.controller.postMessage(command);
+  });
+}
+
+// Try loading an image from a |response|. Return a Promise resolving or
+// rejecting depending on the image loading result.
+function readImageFromResponse(response) {
+  return new Promise((resolve, reject) => {
+    const img = document.createElement("img");
+    img.onload = resolve.bind(this, "");
+    img.onerror = reject.bind(this, {name: "Image.onerror"});
+    response.blob().then(blob => {
+      img.src = URL.createObjectURL(blob);
+      document.body.appendChild(img);
+    })
+  })
+}
+
+const image_path = "/images/blue.png?pipe=";
+
+const corp_header = {
+  "":"",
+  "corp-undefined": "",
+  "corp-same-origin": "|header(Cross-Origin-Resource-Policy,same-origin)",
+  "corp-cross-origin": "|header(Cross-Origin-Resource-Policy,cross-origin)",
+}
+
+const cors_header = {
+  "":"",
+  "cors-disabled": "",
+  "cors-enabled": "|header(Access-Control-Allow-Origin,*)",
+}
+
+function test(
+  // Test parameters:
+  request_source, request_origin, request_mode, response_cors, response_corp,
+  // Test expectations:
+  response_stored, response_type) {
+  promise_test(async (t) => {
+    // 0. Start from an empty CacheStorage.
+    await caches.delete("v1");
+
+    // 1. Make the ServiceWorker to request the ressource and store it into the
+    //    CacheStorage.
+    const path = image_path +
+      corp_header[response_corp] +
+      cors_header[response_cors];
+    const url = (request_origin === "same-origin" ? local : remote)(path);
+    const command = {
+      url: url.href,
+      mode: request_mode,
+      source: request_source,
+    };
+
+    assert_equals(await executeCommandInServiceWorker(command), response_stored);
+    if (response_stored === "not-stored") {
+      return;
+    }
+
+    // 2. Make this document to retrieve it from the CacheStorage.
+    const cache = await caches.open('v1');
+    const response = await cache.match(url);
+
+    assert_equals(response.type, response_type);
+
+    if (request_source === "service-worker") {
+      assert_equals("foo", await response.text());
+      return;
+    }
+
+    // Opaque response are not readable.
+    if (response_type === "opaque") {
+      await promise_rejects(t, {name: "Image.onerror"}, readImageFromResponse(response));
+      return;
+    }
+
+    await readImageFromResponse(response);
+  }, `Fetch ${request_origin} ${request_mode} ${response_cors} ${response_corp} from ${request_source} and CacheStorage.`)
+}
+
+// Responses generated from the ServiceWorker.
+{
+  test("service-worker", "cross-origin", "cors", "", "", "stored", "default");
+  test("service-worker", "cross-origin", "no-cors", "", "", "stored", "default");
+  test("service-worker", "same-origin", "cors", "", "", "stored", "default");
+  test("service-worker", "same-origin", "no-cors", "", "", "stored", "default");
+}
+
+// Responses generated from a same-origin server.
+{
+  const t = test.bind(this, "network", "same-origin");
+  t("cors", "cors-disabled", "corp-cross-origin", "stored", "basic");
+  t("cors", "cors-disabled", "corp-same-origin", "stored", "basic");
+  t("cors", "cors-disabled", "corp-undefined", "stored", "basic");
+  t("cors", "cors-enabled", "corp-cross-origin", "stored", "basic");
+  t("cors", "cors-enabled", "corp-same-origin", "stored", "basic");
+  t("cors", "cors-enabled", "corp-undefined", "stored", "basic");
+  t("no-cors", "cors-disabled", "corp-cross-origin", "stored", "basic");
+  t("no-cors", "cors-disabled", "corp-same-origin", "stored", "basic");
+  t("no-cors", "cors-disabled", "corp-undefined", "stored", "basic");
+  t("no-cors", "cors-enabled", "corp-cross-origin", "stored", "basic");
+  t("no-cors", "cors-enabled", "corp-same-origin", "stored", "basic");
+  t("no-cors", "cors-enabled", "corp-undefined", "stored", "basic");
+}
+
+// Responses generated from a cross-origin server.
+{
+  const t = test.bind(this, "network", "cross-origin");
+  t("cors", "cors-disabled", "corp-cross-origin", "not-stored");
+  t("cors", "cors-disabled", "corp-same-origin", "not-stored");
+  t("cors", "cors-disabled", "corp-undefined", "not-stored");
+  t("cors", "cors-enabled", "corp-cross-origin", "stored", "cors");
+  t("cors", "cors-enabled", "corp-same-origin", "stored", "cors");
+  t("cors", "cors-enabled", "corp-undefined", "stored", "cors");
+  t("no-cors", "cors-disabled", "corp-cross-origin", "stored", "opaque");
+  t("no-cors", "cors-disabled", "corp-same-origin", "not-stored");
+  t("no-cors", "cors-disabled", "corp-undefined", "stored", "opaque");
+  t("no-cors", "cors-enabled", "corp-cross-origin", "stored", "opaque");
+  t("no-cors", "cors-enabled", "corp-same-origin", "not-stored");
+  t("no-cors", "cors-enabled", "corp-undefined", "stored", "opaque");
+}
+
+</script>
+</html>
index b1bb6fe..f13a752 100644 (file)
@@ -54,10 +54,17 @@ async_test(t => {
   let pageLoaded = false;
   const bc = new BroadcastChannel(token());
   let finished = false;
+  let doneCheck = _ => {
+    if (finished && pageLoaded) {
+      t.done();
+    }
+  }
   bc.onmessage = t.step_func((event) => {
     pageLoaded = true;
     let payload = event.data;
     assert_equals(payload, "loaded");
+
+    doneCheck();
   });
 
   const bc2 = new BroadcastChannel(token());
@@ -65,15 +72,11 @@ async_test(t => {
     finished = true;
     let payload = event.data;
     assert_equals(payload, "loaded");
+
+    doneCheck();
   });
 
   const win = window.open(`resources/navigate-require-corp.sub.html?channelName=${bc.name}&to=navigate-none.sub.html?channelName=${bc2.name}`, "_blank", "noopener");
   assert_equals(win, null);
-
-  t.step_timeout(() => {
-    assert_true(pageLoaded);
-    assert_true(finished);
-    t.done();
-  }, 500);
 }, `"require-corp" top-level noopener popup: navigating to "none" should succeed`);
 </script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-blank-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-blank-expected.txt
new file mode 100644 (file)
index 0000000..bb996f2
--- /dev/null
@@ -0,0 +1,6 @@
+
+
+PASS Wait for the DOM to be built. 
+PASS about:blank can always be embedded by a 'require-corp' document 
+FAIL A(B(C)) A=require-corp, B=about:blank, C=no-require-corp => C can't load assert_equals: expected null but got Document node with 1 child
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-blank.html b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-blank.html
new file mode 100644 (file)
index 0000000..b94cb57
--- /dev/null
@@ -0,0 +1,47 @@
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+
+promise_test(t => {
+  return new Promise(resolve => {
+    window.addEventListener("DOMContentLoaded", resolve);
+  });
+}, "Wait for the DOM to be built.");
+
+promise_test(async t => {
+  let iframe = document.createElement("iframe");
+  let iframe_loaded =  new Promise(resolve => iframe.onload = resolve);
+  iframe.src = "about:blank";
+  document.body.appendChild(iframe);
+
+  // The about:blank document can load.
+  await iframe_loaded;
+  assert_not_equals(iframe.contentDocument, null);
+
+  t.done();
+}, "about:blank can always be embedded by a 'require-corp' document");
+
+promise_test(async t => {
+  let iframe_C = document.createElement("iframe");
+  let iframe_B = document.createElement("iframe");
+  iframe_B.src = "about:blank";
+  iframe_C.src = "/common/blank.html";
+  let iframe_B_loaded = new Promise(resolve => iframe_B.onload = resolve);
+  let iframe_C_loaded = new Promise(resolve => iframe_C.onload = resolve);
+  document.body.appendChild(iframe_B);
+
+  // The about:blank frame must be able to load.
+  await iframe_B_loaded;
+  assert_not_equals(iframe_B.contentDocument, null);
+  iframe_B.contentDocument.body.appendChild(iframe_C);
+
+  // The document nested under about:blank must not load because it does not
+  // specify the Cross-Origin-Embedder-Policy: require-corp header.
+  // An error page must be displayed instead.
+  await iframe_C_loaded;
+  assert_equals(iframe_C.contentDocument, null);
+
+  t.done();
+}, "A(B(C)) A=require-corp, B=about:blank, C=no-require-corp => C can't load");
+
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-blank.html.headers b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-blank.html.headers
new file mode 100644 (file)
index 0000000..8df9847
--- /dev/null
@@ -0,0 +1 @@
+cross-origin-embedder-policy: require-corp
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-srcdoc-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-srcdoc-expected.txt
new file mode 100644 (file)
index 0000000..723802f
--- /dev/null
@@ -0,0 +1,6 @@
+
+
+PASS Wait for the DOM to be built. 
+PASS about:srcdoc can always be embedded by a 'require-corp' document 
+FAIL A(B(C)) A=require-corp, B=about:srcdoc, C=no-require-corp => C can't load assert_equals: expected null but got Document node with 1 child
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-srcdoc.html b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-srcdoc.html
new file mode 100644 (file)
index 0000000..a832db1
--- /dev/null
@@ -0,0 +1,49 @@
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+
+promise_test(t => {
+  return new Promise(resolve => {
+    window.addEventListener("DOMContentLoaded", resolve);
+  });
+}, "Wait for the DOM to be built.");
+
+promise_test(async t => {
+  let iframe = document.createElement("iframe");
+  let iframe_loaded =  new Promise(resolve => iframe.onload = resolve);
+  iframe.srcdoc = "loaded document";
+  document.body.appendChild(iframe);
+
+  // The about:srcdoc document can load.
+  await iframe_loaded;
+  assert_not_equals(iframe.contentDocument, null);
+  assert_equals(iframe.contentDocument.body.innerText, "loaded document");
+
+  t.done();
+}, "about:srcdoc can always be embedded by a 'require-corp' document");
+
+promise_test(async t => {
+  let iframe_C = document.createElement("iframe");
+  let iframe_B = document.createElement("iframe");
+  iframe_B.srcdoc = "dummy content";
+  iframe_C.src = "/common/blank.html";
+  let iframe_B_loaded = new Promise(resolve => iframe_B.onload = resolve);
+  let iframe_C_loaded = new Promise(resolve => iframe_C.onload = resolve);
+  document.body.appendChild(iframe_B);
+
+  // The about:srcdoc frame must be able to load.
+  await iframe_B_loaded;
+  assert_not_equals(iframe_B.contentDocument, null);
+  assert_equals(iframe_B.contentDocument.body.innerText, "dummy content");
+  iframe_B.contentDocument.body.appendChild(iframe_C);
+
+  // The document nested under about:srcdoc must not load because it does not
+  // specify the Cross-Origin-Embedder-Policy: require-corp header.
+  // An error page must be displayed instead.
+  await iframe_C_loaded;
+  assert_equals(iframe_C.contentDocument, null);
+
+  t.done();
+}, "A(B(C)) A=require-corp, B=about:srcdoc, C=no-require-corp => C can't load");
+
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-srcdoc.html.headers b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-srcdoc.html.headers
new file mode 100644 (file)
index 0000000..8df9847
--- /dev/null
@@ -0,0 +1 @@
+cross-origin-embedder-policy: require-corp
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-load-from-cache-storage.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-load-from-cache-storage.https-expected.txt
new file mode 100644 (file)
index 0000000..448c0a5
--- /dev/null
@@ -0,0 +1,32 @@
+
+
+PASS setting up 
+PASS Fetch cross-origin cors   from service-worker and CacheStorage. 
+PASS Fetch cross-origin no-cors   from service-worker and CacheStorage. 
+PASS Fetch same-origin cors   from service-worker and CacheStorage. 
+PASS Fetch same-origin no-cors   from service-worker and CacheStorage. 
+PASS Fetch same-origin cors cors-disabled corp-cross-origin from network and CacheStorage. 
+PASS Fetch same-origin cors cors-disabled corp-same-origin from network and CacheStorage. 
+PASS Fetch same-origin cors cors-disabled corp-undefined from network and CacheStorage. 
+PASS Fetch same-origin cors cors-enabled corp-cross-origin from network and CacheStorage. 
+PASS Fetch same-origin cors cors-enabled corp-same-origin from network and CacheStorage. 
+PASS Fetch same-origin cors cors-enabled corp-undefined from network and CacheStorage. 
+PASS Fetch same-origin no-cors cors-disabled corp-cross-origin from network and CacheStorage. 
+PASS Fetch same-origin no-cors cors-disabled corp-same-origin from network and CacheStorage. 
+PASS Fetch same-origin no-cors cors-disabled corp-undefined from network and CacheStorage. 
+PASS Fetch same-origin no-cors cors-enabled corp-cross-origin from network and CacheStorage. 
+PASS Fetch same-origin no-cors cors-enabled corp-same-origin from network and CacheStorage. 
+PASS Fetch same-origin no-cors cors-enabled corp-undefined from network and CacheStorage. 
+PASS Fetch cross-origin cors cors-disabled corp-cross-origin from network and CacheStorage. 
+PASS Fetch cross-origin cors cors-disabled corp-same-origin from network and CacheStorage. 
+PASS Fetch cross-origin cors cors-disabled corp-undefined from network and CacheStorage. 
+PASS Fetch cross-origin cors cors-enabled corp-cross-origin from network and CacheStorage. 
+PASS Fetch cross-origin cors cors-enabled corp-same-origin from network and CacheStorage. 
+PASS Fetch cross-origin cors cors-enabled corp-undefined from network and CacheStorage. 
+PASS Fetch cross-origin no-cors cors-disabled corp-cross-origin from network and CacheStorage. 
+PASS Fetch cross-origin no-cors cors-disabled corp-same-origin from network and CacheStorage. 
+FAIL Fetch cross-origin no-cors cors-disabled corp-undefined from network and CacheStorage. assert_unreached: Should have rejected: undefined Reached unreachable code
+PASS Fetch cross-origin no-cors cors-enabled corp-cross-origin from network and CacheStorage. 
+PASS Fetch cross-origin no-cors cors-enabled corp-same-origin from network and CacheStorage. 
+FAIL Fetch cross-origin no-cors cors-enabled corp-undefined from network and CacheStorage. assert_unreached: Should have rejected: undefined Reached unreachable code
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-load-from-cache-storage.https.html b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-load-from-cache-storage.https.html
new file mode 100644 (file)
index 0000000..b10b2f0
--- /dev/null
@@ -0,0 +1,178 @@
+<!doctype html>
+<html>
+<title> Retrieve resources from CacheStorage with Cross-Origin-Embedder-Policy: require-corp</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
+<script>
+
+/*
+  This document has the header Cross-Origin-Embedder-Policy: require-corp.
+  Cross-Origin Embedder Policy Editor's draft: https://mikewest.github.io/corpp/
+
+  This test is retrieving same-origin and cross-origin resources from the
+  CacheStorage. The resources are generated from the ServiceWorker or from the
+  network with the header Cross-Origin-Resource-Policy being one of:
+    - 'same-origin'
+    - 'cross-origin'
+    - <undefined>
+*/
+
+promise_test(async (t) => {
+  const SCOPE = new URL(location.href).pathname;
+  const SCRIPT =
+    'resources/sw-store-to-cache-storage.js?' +
+    `pipe=header(service-worker-allowed,${SCOPE})`;
+
+  const reg = await service_worker_unregister_and_register(t, SCRIPT, SCOPE);
+  add_completion_callback(() => reg.unregister());
+  await new Promise(resolve => {
+    navigator.serviceWorker.addEventListener('controllerchange', resolve);
+  });
+}, 'setting up');
+
+function remote(path) {
+  const REMOTE_ORIGIN = get_host_info().HTTPS_REMOTE_ORIGIN;
+  return new URL(path, REMOTE_ORIGIN);
+}
+
+function local(path) {
+  return new URL(path, location.origin);
+}
+
+// Send a message to the currently active ServiceWorker and wait for its
+// response.
+function executeCommandInServiceWorker(command) {
+  return new Promise(resolve => {
+    navigator.serviceWorker.addEventListener('message', e => resolve(e.data));
+    navigator.serviceWorker.controller.postMessage(command);
+  });
+}
+
+// Try loading an image from a |response|. Return a Promise resolving or
+// rejecting depending on the image loading result.
+function readImageFromResponse(response) {
+  return new Promise((resolve, reject) => {
+    const img = document.createElement("img");
+    img.onload = resolve.bind(this, "");
+    img.onerror = reject.bind(this, {name: "Image.onerror"});
+    response.blob().then(blob => {
+      img.src = URL.createObjectURL(blob);
+      document.body.appendChild(img);
+    })
+  })
+}
+
+const image_path = "/images/blue.png?pipe=";
+
+const corp_header = {
+  "":"",
+  "corp-undefined": "",
+  "corp-same-origin": "|header(Cross-Origin-Resource-Policy,same-origin)",
+  "corp-cross-origin": "|header(Cross-Origin-Resource-Policy,cross-origin)",
+}
+
+const cors_header = {
+  "":"",
+  "cors-disabled": "",
+  "cors-enabled": "|header(Access-Control-Allow-Origin,*)",
+}
+
+function test(
+  // Test parameters:
+  request_source, request_origin, request_mode, response_cors, response_corp,
+  // Test expectations:
+  response_stored, response_type) {
+  promise_test(async (t) => {
+    // 0. Start from an empty CacheStorage.
+    await caches.delete("v1");
+
+    // 1. Store a cross-origin no-cors response generated from the SW into the
+    //    CacheStorage.
+    const path = image_path +
+      corp_header[response_corp] +
+      cors_header[response_cors];
+    const url = (request_origin === "same-origin" ? local : remote)(path);
+    const command = {
+      url: url.href,
+      mode: request_mode,
+      source: request_source,
+    };
+
+    assert_equals(await executeCommandInServiceWorker(command), response_stored);
+    if (response_stored === "not-stored") {
+      return;
+    }
+
+    // 2. Retrieve it from the CacheStorage.
+    const cache = await caches.open('v1');
+
+    if (response_type === 'error') {
+      await promise_rejects(t, new TypeError(), cache.match(url));
+      return;
+    }
+
+    const response = await cache.match(url);
+
+    assert_equals(response.type, response_type);
+
+    if (request_source === "service-worker") {
+      assert_equals("foo", await response.text());
+      return;
+    }
+
+    // Opaque response can't be read from the document.
+    if (response_type === "opaque") {
+      await promise_rejects(t, {name: "Image.onerror"}, readImageFromResponse(response));
+      return;
+    }
+
+    await readImageFromResponse(response);
+  }, `Fetch ${request_origin} ${request_mode} ${response_cors} ${response_corp} from ${request_source} and CacheStorage.`)
+}
+
+// Responses generated from the ServiceWorker.
+{
+  test("service-worker", "cross-origin", "cors", "", "", "stored", "default");
+  test("service-worker", "cross-origin", "no-cors", "", "", "stored", "default");
+  test("service-worker", "same-origin", "cors", "", "", "stored", "default");
+  test("service-worker", "same-origin", "no-cors", "", "", "stored", "default");
+}
+
+// Responses generated from a same-origin server.
+{
+  const t = test.bind(this, "network", "same-origin");
+  t("cors", "cors-disabled", "corp-cross-origin", "stored", "basic");
+  t("cors", "cors-disabled", "corp-same-origin", "stored", "basic");
+  t("cors", "cors-disabled", "corp-undefined", "stored", "basic");
+  t("cors", "cors-enabled", "corp-cross-origin", "stored", "basic");
+  t("cors", "cors-enabled", "corp-same-origin", "stored", "basic");
+  t("cors", "cors-enabled", "corp-undefined", "stored", "basic");
+  t("no-cors", "cors-disabled", "corp-cross-origin", "stored", "basic");
+  t("no-cors", "cors-disabled", "corp-same-origin", "stored", "basic");
+  t("no-cors", "cors-disabled", "corp-undefined", "stored", "basic");
+  t("no-cors", "cors-enabled", "corp-cross-origin", "stored", "basic");
+  t("no-cors", "cors-enabled", "corp-same-origin", "stored", "basic");
+  t("no-cors", "cors-enabled", "corp-undefined", "stored", "basic");
+}
+
+// Responses generated from a cross-origin server.
+{
+  const t = test.bind(this, "network", "cross-origin");
+  t("cors", "cors-disabled", "corp-cross-origin", "not-stored");
+  t("cors", "cors-disabled", "corp-same-origin", "not-stored");
+  t("cors", "cors-disabled", "corp-undefined", "not-stored");
+  t("cors", "cors-enabled", "corp-cross-origin", "stored", "cors");
+  t("cors", "cors-enabled", "corp-same-origin", "stored", "cors");
+  t("cors", "cors-enabled", "corp-undefined", "stored", "cors");
+  t("no-cors", "cors-disabled", "corp-cross-origin", "stored", "opaque");
+  t("no-cors", "cors-disabled", "corp-same-origin", "not-stored");
+  t("no-cors", "cors-disabled", "corp-undefined", "stored", "error");
+  t("no-cors", "cors-enabled", "corp-cross-origin", "stored", "opaque");
+  t("no-cors", "cors-enabled", "corp-same-origin", "not-stored");
+  t("no-cors", "cors-enabled", "corp-undefined", "stored", "error");
+}
+
+</script>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-load-from-cache-storage.https.html.headers b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-load-from-cache-storage.https.html.headers
new file mode 100644 (file)
index 0000000..8df9847
--- /dev/null
@@ -0,0 +1 @@
+cross-origin-embedder-policy: require-corp
index 0bd6aab..49b2eb1 100644 (file)
@@ -33,7 +33,7 @@ async_test(t => {
     t.step_timeout(() => {
       assert_equals(frame.contentDocument, null);
       t.done();
-    }, 500);
+    }, 2000);
   });
   frame.src = `resources/navigate-require-corp.sub.html?channelName=${bc.name}&to=/common/blank.html`;
   document.body.append(frame);
@@ -72,10 +72,6 @@ async_test(t => {
 
   const win = window.open(`resources/navigate-none.sub.html?channelName=${bc.name}&to=/common/blank.html`, "_blank");
   t.add_cleanup(() => win.close());
-  t.step_timeout(() => {
-    assert_equals(pageLoaded, true);
-    t.done();
-  }, 500);
 }, `"require-corp" top-level: creating a "none" popup should succeed.`);
 
 [
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/resources/sw-store-to-cache-storage.js b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/resources/sw-store-to-cache-storage.js
new file mode 100644 (file)
index 0000000..00b9e93
--- /dev/null
@@ -0,0 +1,31 @@
+self.addEventListener('activate', (e) => {
+  e.waitUntil(clients.claim());
+});
+
+self.addEventListener('message', (e) => {
+  e.waitUntil((async () => {
+
+    const url = new URL(e.data.url);
+    const request = new Request(url, {mode: e.data.mode});
+    const cache = await caches.open('v1');
+
+    let response;
+    switch(e.data.source) {
+      case "service-worker":
+        response = new Response('foo');
+        break;
+
+      case "network":
+        try {
+          response = await fetch(request);
+        } catch(error) {
+          e.source.postMessage('not-stored');
+          return;
+        }
+        break;
+    }
+
+    await cache.put(request, response);
+    e.source.postMessage('stored');
+  })());
+})
index 71c83fc..01402d5 100644 (file)
@@ -24,4 +24,5 @@ List of files:
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/resources/nothing-same-origin-corp.txt
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/resources/nothing-same-origin-corp.txt.headers
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/resources/script-factory.js
+/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/resources/sw-store-to-cache-storage.js
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/resources/sw.js
index 806e3f0..18bf6b5 100644 (file)
@@ -19,13 +19,21 @@ List of files:
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/blob.https.html.headers
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/data.https.html
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/data.https.html.headers
+/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/meta-http-equiv.https.html
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/non-initial-about-blank.https.html
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/non-initial-about-blank.https.html.headers
+/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/none-load-from-cache-storage.https.html
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/none-sw-from-none.https.html
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/none-sw-from-require-corp.https.html
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/none-sw-from-require-corp.https.html.headers
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/none.https.html
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/none.https.html.headers
+/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-blank.html
+/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-blank.html.headers
+/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-srcdoc.html
+/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-about-srcdoc.html.headers
+/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-load-from-cache-storage.https.html
+/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-load-from-cache-storage.https.html.headers
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-sw-from-none.https.html
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-sw-from-require-corp.https.html
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-sw-from-require-corp.https.html.headers
index 9fda86d..dfc3e7c 100644 (file)
@@ -7,4 +7,5 @@ FAIL Same-origin popup with coop unsafe-inherit without coep Can't find variable
 FAIL Same-site popup with coop unsafe-inherit without coep Can't find variable: BroadcastChannel
 FAIL Same-origin popup without coep Can't find variable: BroadcastChannel
 FAIL Same-site popup without coep Can't find variable: BroadcastChannel
+FAIL Bonus: window.crossOriginIsolated assert_true: expected true got undefined
 
index 1c04ed3..64994cd 100644 (file)
@@ -40,4 +40,8 @@
     coop_coep_test(t, SAME_SITE, variant.coop, variant.coep, `same-site-${variant.title.replace(/ /g,"-")}`, false);
   }, `Same-site ${variant.title}`);
 });
+
+test(() => {
+  assert_true(window.crossOriginIsolated);
+}, "Bonus: window.crossOriginIsolated");
 </script>
index da9efdc..014ba1f 100644 (file)
@@ -15,4 +15,8 @@ async_test(t => {
     t.done();
   }, 500);
 }, "Cross-Origin-Opener-Policy only works over secure contexts");
+
+test(() => {
+  assert_false(window.crossOriginIsolated);
+}, "Bonus: window.crossOriginIsolated");
 </script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https-expected.txt
new file mode 100644 (file)
index 0000000..f7aab20
--- /dev/null
@@ -0,0 +1,11 @@
+
+FAIL same-origin document opening popup redirect from https://localhost:9443 to https://127.0.0.1:9443 with redirectCache true and destCache false Can't find variable: BroadcastChannel
+FAIL same-origin document opening popup redirect from https://localhost:9443 to https://127.0.0.1:9443 with redirectCache false and destCache true Can't find variable: BroadcastChannel
+FAIL same-origin document opening popup redirect from https://localhost:9443 to https://127.0.0.1:9443 with redirectCache true and destCache true Can't find variable: BroadcastChannel
+FAIL same-origin document opening popup redirect from https://127.0.0.1:9443 to https://localhost:9443 with redirectCache true and destCache false Can't find variable: BroadcastChannel
+FAIL same-origin document opening popup redirect from https://127.0.0.1:9443 to https://localhost:9443 with redirectCache false and destCache true Can't find variable: BroadcastChannel
+FAIL same-origin document opening popup redirect from https://127.0.0.1:9443 to https://localhost:9443 with redirectCache true and destCache true Can't find variable: BroadcastChannel
+FAIL same-origin document opening popup redirect from https://127.0.0.1:9443 to https://127.0.0.1:9443 with redirectCache true and destCache false Can't find variable: BroadcastChannel
+FAIL same-origin document opening popup redirect from https://127.0.0.1:9443 to https://127.0.0.1:9443 with redirectCache false and destCache true Can't find variable: BroadcastChannel
+FAIL same-origin document opening popup redirect from https://127.0.0.1:9443 to https://127.0.0.1:9443 with redirectCache true and destCache true Can't find variable: BroadcastChannel
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https.html b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https.html
new file mode 100644 (file)
index 0000000..0524878
--- /dev/null
@@ -0,0 +1,74 @@
+<!doctype html>
+<meta charset=utf-8>
+<meta name="timeout" content="long">
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="resources/common.js"></script>
+
+<div id=log></div>
+<script>
+
+function url_test_cache(t, url, channelName, hasOpener) {
+  const bc = new BroadcastChannel(channelName);
+  bc.onmessage = t.step_func(event => {
+    const payload = event.data;
+    assert_equals(payload.name, hasOpener ? channelName : "");
+    assert_equals(payload.opener, hasOpener);
+    bc.close()
+
+    // test the same url for cache
+    url_test(t, url, channelName, hasOpener);
+  });
+
+  const w = window.open(url, channelName);
+
+  // w will be closed by its postback iframe. When out of process,
+  // window.close() does not work.
+  t.add_cleanup(() => w.close());
+}
+
+// Redirect from hostA to hostB with same coop and coep.
+// Cache the hostA page if redirectCache is true.
+// Cache the hostB page if destCache is true.
+function coop_redirect_cache_test(t, hostA, hostB, coop, coep, redirectCache, destCache, channelName, hasOpener) {
+  let redirectUrl = `${hostA.origin}/html/cross-origin-opener-policy/resources/coop-coep.py`;
+  let redirectCacheString = redirectCache ? "&cache=1" : "";
+  let destCacheString = destCache ? "&cache=1" : "";
+  let destUrl = `${hostB.origin}/html/cross-origin-opener-policy/resources/coop-coep.py?coop=${coop}&coep=${coep}${destCacheString}&channel=${channelName}`;
+  let url = `${redirectUrl}?coop=${coop}&coep=${coep}${redirectCacheString}&redirect=${encodeURIComponent(destUrl)}`;
+
+  url_test_cache(t, url, channelName, hasOpener);
+}
+
+function run_redirect_cache_tests(documentCOOPValueTitle, testArray) {
+  for (const test of tests) {
+    async_test(t => {
+      // Use a consistent channel name for deterministic failure output
+      let channelName = `${test[0].name}_${test[1].name}${test[2] ? "" : "_not"}_cache_redirect${test[3] ? "" : "_not"}_cache_destination`;
+      coop_redirect_cache_test(t, test[0], test[1], "same-origin", "require-corp", test[2], test[3], channelName, test[4]);
+    }, `${documentCOOPValueTitle} document opening popup redirect from ${test[0].origin} to ${test[1].origin} with redirectCache ${test[2]} and destCache ${test[3]}`);
+  }
+}
+
+let tests = [
+  // popup Origin, final Origin, isCacheRedirect, isCacheDestination, hasOpener
+  // Origin A->A->B
+  [SAME_ORIGIN, CROSS_ORIGIN, true, false, false],
+  [SAME_ORIGIN, CROSS_ORIGIN, false, true, false],
+  [SAME_ORIGIN, CROSS_ORIGIN, true, true, false],
+
+  // Origin A->B->B
+  [CROSS_ORIGIN, SAME_ORIGIN, true, false, false],
+  [CROSS_ORIGIN, SAME_ORIGIN, false, true, false],
+  [CROSS_ORIGIN, SAME_ORIGIN, true, true, false],
+
+  // Origin A->B->C
+  [SAME_SITE, CROSS_ORIGIN, true, false, false],
+  [SAME_SITE, CROSS_ORIGIN, false, true, false],
+  [SAME_SITE, CROSS_ORIGIN, true, true, false],
+];
+
+run_redirect_cache_tests("same-origin", tests);
+
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https.html.headers b/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https.html.headers
new file mode 100644 (file)
index 0000000..46ad58d
--- /dev/null
@@ -0,0 +1 @@
+Cross-Origin-Opener-Policy: same-origin
index c5d3c6c..53b80bb 100644 (file)
@@ -26,7 +26,7 @@ function coop_test(t, host, coop, channelName, hasOpener) {
 }
 
 function run_coop_tests(documentCOOPValueTitle, testArray) {
-  for (const test of tests) {
+  for (const test of testArray) {
     async_test(t => {
       coop_test(t, test[0], test[1],
                 `${documentCOOPValueTitle}_to_${test[0].name}_${test[1].replace(/ /g,"-")}`,
index 8b12341..8691e1b 100644 (file)
@@ -6,6 +6,8 @@ def main(request, response):
         response.headers.set("Cross-Origin-Opener-Policy", coop)
     if coep != "":
         response.headers.set("Cross-Origin-Embedder-Policy", coep)
+    if 'cache' in request.GET:
+        response.headers.set('Cache-Control', 'max-age=3600')
 
     if redirect != None:
         response.status = 302
index c3c88a2..ddd4863 100644 (file)
@@ -28,6 +28,8 @@ List of files:
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/no-https.html
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/no-https.html.headers
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-none.https.html
+/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https.html
+/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https.html.headers
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-non-initial-about-blank.https.html
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-non-initial-about-blank.https.html.headers
 /LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-unsafe-allow-outgoing.https.html
index 051bc20..448a72f 100644 (file)
@@ -27,7 +27,6 @@ var formElements = {
     accept: "string",
     alt: "string",
     autocomplete: {type: "string", customGetter: true},
-    autofocus: "boolean",
     defaultChecked: {type: "boolean", domAttrName: "checked"},
     dirName: "string",
     disabled: "boolean",
@@