Changeset 280504 in webkit


Ignore:
Timestamp:
Jul 30, 2021 5:07:37 PM (12 months ago)
Author:
Chris Dumez
Message:

Add initial support for 'Cross-Origin-Opener-Policy' HTTP header
https://bugs.webkit.org/show_bug.cgi?id=192193
<rdar://problem/42013525>

Reviewed by Geoff Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that most tests are passing.

  • web-platform-tests/IndexedDB/serialize-sharedarraybuffer-throws.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/cross-origin-isolated-permission.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/blob-popup.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coep-blob-popup.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coep-redirect.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coep.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coop-coep-sandbox.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox-navigate.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coop-navigated-history-popup.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coop-navigated-popup.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coop-sandbox.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/header-parsing.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/javascript-url.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/navigate-to-aboutblank.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/no-https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-coop-by-sw-from-coop.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-coop-by-sw.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-redirect-same-origin-allow-popups.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-site.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-site.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-with-structured-header.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/resource-popup.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/resources/resource-popup.html:
  • web-platform-tests/html/dom/idlharness.worker-expected.txt:

Source/WebCore:

Add initial support for 'Cross-Origin-Opener-Policy' HTTP header:

Support is complete enough to pass most WPT tests with the exception of:

  • The ones involving blob. Support for Blob does not seem trivial so I will address separately (https://github.com/whatwg/html/issues/5198).
  • The ones that requires reporting COOP enforcement as this is not supported yet. This is a fairly large task so I'll handle separately.
  • The ones that involve Cross-Origin-Embedder-Policy (COEP) and this is not yet supported.

I tried to stay as close as possible to the HTML specification as possible in terms
of structuring and naming. I also have code comments to link to the relevant HTML
spec sections.

Note that as it stands, we do not currently swap process based on COOP header. We
merely do isolation of the new browsing context at JS level for now. At some point,
we'll want to actually process-swap, once we support COEP and we want to re-enable
some Web APIs such as SharedArrayBuffer.

No new tests, covered by web-plaform-tests/html/cross-origin-opener-policy.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/Document.cpp:

(WebCore::Document::initSecurityContext):
(WebCore::Document::shouldForceNoOpenerBasedOnCOOP const):
(WebCore::Document::crossOriginOpenerPolicy const):
(WebCore::Document::setCrossOriginOpenerPolicy):

  • dom/Document.h:

(WebCore::Document::isSameOriginAsTopDocument const):

  • dom/SecurityContext.cpp:

(WebCore::SecurityContext::enforceSandboxFlags):

  • dom/SecurityContext.h:

(WebCore::SecurityContext::creationSandboxFlags const):

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openURLExternally):

  • loader/CrossOriginEmbedderPolicy.cpp: Copied from Source/WebCore/page/AbstractFrame.cpp.

(WebCore::obtainCrossOriginEmbedderPolicy):

  • loader/CrossOriginEmbedderPolicy.h: Copied from Source/WebCore/page/AbstractFrame.cpp.
  • loader/CrossOriginOpenerPolicy.cpp: Added.

(WebCore::obtainCrossOriginOpenerPolicy):

  • loader/CrossOriginOpenerPolicy.h: Copied from Source/WebCore/page/AbstractFrame.h.
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):
(WebCore::checkIfCOOPValuesRequireBrowsingContextGroupSwitch):
(WebCore::computeResponseOriginAndCOOP):
(WebCore::DocumentLoader::doCrossOriginOpenerHandlingOfResponse):
(WebCore::DocumentLoader::enforceResponseCrossOriginOpenerPolicy):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::maybeLoadEmpty):

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::crossOriginOpenerPolicy const):

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::begin):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::didBeginDocument):
(WebCore::FrameLoader::setOpener):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::createWindow):
(WebCore::FrameLoader::switchBrowsingContextsGroup):

  • loader/FrameLoader.h:
  • loader/NavigationAction.cpp:
  • loader/NavigationAction.h:

(WebCore::NavigationAction::Requester::securityOrigin const):
(WebCore::NavigationAction::Requester::topOrigin const):
(WebCore::NavigationAction::Requester::crossOriginOpenerPolicy const):

  • page/AbstractFrame.cpp:

(WebCore::AbstractFrame::resetWindowProxy):

  • page/AbstractFrame.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::crossOriginIsolated const):
(WebCore::DOMWindow::createWindow):

  • page/DOMWindow.h:
  • page/Frame.cpp:

(WebCore::Frame::resetScript):

  • page/Frame.h:
  • page/Page.h:

(WebCore::Page::setOpenedByDOMWithOpener):

  • page/WindowOrWorkerGlobalScope.idl:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::applyPolicyToScriptExecutionContext):

  • platform/network/HTTPHeaderNames.in:
  • platform/network/HTTPParsers.cpp:

(WebCore::parseStructuredFieldValue):

  • platform/network/HTTPParsers.h:
  • platform/network/ResourceResponseBase.cpp:

(WebCore::isSafeRedirectionResponseHeader):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::crossOriginIsolated const):

  • workers/WorkerGlobalScope.h:

Source/WTF:

Add experimental feature flag for 'Cross-Origin-Opener-Policy' HTTP header
support.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

Update test expectations.

  • TestExpectations:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/TestExpectations:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac/TestExpectations:
Location:
trunk
Files:
1 added
96 edited
3 copied

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r280503 r280504  
     12021-07-30  Chris Dumez  <cdumez@apple.com>
     2
     3        Add initial support for 'Cross-Origin-Opener-Policy' HTTP header
     4        https://bugs.webkit.org/show_bug.cgi?id=192193
     5        <rdar://problem/42013525>
     6
     7        Reviewed by Geoff Garen.
     8
     9        Update test expectations.
     10
     11        * TestExpectations:
     12        * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
     13        * platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
     14        * platform/mac-wk2/TestExpectations:
     15        * platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
     16        * platform/mac/TestExpectations:
     17
    1182021-07-30  Ayumi Kojima  <ayumi_kojima@apple.com>
    219
  • trunk/LayoutTests/TestExpectations

    r280471 r280504  
    400400imported/w3c/web-platform-tests/html/cross-origin-opener-policy/navigate-to-aboutblank.https.html [ DumpJSConsoleLogInStdErr ]
    401401imported/w3c/web-platform-tests/html/cross-origin-opener-policy/navigate-top-to-aboutblank.https.html [ DumpJSConsoleLogInStdErr ]
    402 imported/w3c/web-platform-tests/html/cross-origin-opener-policy/resource-popup.https.html [ DumpJSConsoleLogInStdErr ]
    403402imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub.html [ DumpJSConsoleLogInStdErr ]
    404403imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/integrity.html [ DumpJSConsoleLogInStdErr ]
     
    716715imported/w3c/web-platform-tests/html/cross-origin-opener-policy/reporting [ Skip ]
    717716
    718 # This test is timing out because the location.href setter's relative URL resolution seems incorrect.
    719 imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-popup.https.html [ Skip ]
     717# This test is timing out locally but passing on wpt.live. The issue is that we run the WPT tests over localhost and they
     718# are thus marked as secure contexts even when served over HTTP. The test assumes the context is non-secure because the
     719# test is served over HTTP.
     720imported/w3c/web-platform-tests/html/cross-origin-opener-policy/no-https.html [ Skip ]
    720721
    721722# COOP tests that are failing and keep printing a different uuid in the error output.
    722723imported/w3c/web-platform-tests/html/cross-origin-opener-policy/blob-popup.https.html [ Failure Pass ]
    723724imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coep-blob-popup.https.html [ Failure Pass ]
    724 imported/w3c/web-platform-tests/html/cross-origin-opener-policy/javascript-url.https.html [ Failure Pass ]
    725725
    726726# Newly imported WPT tests that are crashing.
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r280502 r280504  
     12021-07-30  Chris Dumez  <cdumez@apple.com>
     2
     3        Add initial support for 'Cross-Origin-Opener-Policy' HTTP header
     4        https://bugs.webkit.org/show_bug.cgi?id=192193
     5        <rdar://problem/42013525>
     6
     7        Reviewed by Geoff Garen.
     8
     9        Rebaseline WPT tests now that most tests are passing.
     10
     11        * web-platform-tests/IndexedDB/serialize-sharedarraybuffer-throws.https-expected.txt:
     12        * web-platform-tests/html/cross-origin-embedder-policy/cross-origin-isolated-permission.https-expected.txt:
     13        * web-platform-tests/html/cross-origin-opener-policy/blob-popup.https-expected.txt:
     14        * web-platform-tests/html/cross-origin-opener-policy/coep-blob-popup.https-expected.txt:
     15        * web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https-expected.txt:
     16        * web-platform-tests/html/cross-origin-opener-policy/coep-redirect.https-expected.txt:
     17        * web-platform-tests/html/cross-origin-opener-policy/coep.https-expected.txt:
     18        * web-platform-tests/html/cross-origin-opener-policy/coop-coep-sandbox.https-expected.txt:
     19        * web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox-navigate.https-expected.txt:
     20        * web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox.https-expected.txt:
     21        * web-platform-tests/html/cross-origin-opener-policy/coop-navigated-history-popup.https-expected.txt:
     22        * web-platform-tests/html/cross-origin-opener-policy/coop-navigated-popup.https-expected.txt:
     23        * web-platform-tests/html/cross-origin-opener-policy/coop-sandbox.https-expected.txt:
     24        * web-platform-tests/html/cross-origin-opener-policy/header-parsing.https-expected.txt:
     25        * web-platform-tests/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https-expected.txt:
     26        * web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https-expected.txt:
     27        * web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https-expected.txt:
     28        * web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https-expected.txt:
     29        * web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https-expected.txt:
     30        * web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https-expected.txt:
     31        * web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https-expected.txt:
     32        * web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https-expected.txt:
     33        * web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https-expected.txt:
     34        * web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https-expected.txt:
     35        * web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https-expected.txt:
     36        * web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https-expected.txt:
     37        * web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https-expected.txt:
     38        * web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https-expected.txt:
     39        * web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https-expected.txt:
     40        * web-platform-tests/html/cross-origin-opener-policy/javascript-url.https-expected.txt:
     41        * web-platform-tests/html/cross-origin-opener-policy/navigate-to-aboutblank.https-expected.txt:
     42        * web-platform-tests/html/cross-origin-opener-policy/no-https-expected.txt:
     43        * web-platform-tests/html/cross-origin-opener-policy/popup-coop-by-sw-from-coop.https-expected.txt:
     44        * web-platform-tests/html/cross-origin-opener-policy/popup-coop-by-sw.https-expected.txt:
     45        * web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https-expected.txt:
     46        * web-platform-tests/html/cross-origin-opener-policy/popup-redirect-same-origin-allow-popups.https-expected.txt:
     47        * web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https-expected.txt:
     48        * web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https-expected.txt:
     49        * web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https-expected.txt:
     50        * web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https-expected.txt:
     51        * web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https-expected.txt:
     52        * web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-site.https-expected.txt:
     53        * web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https-expected.txt:
     54        * web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https-expected.txt:
     55        * web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https-expected.txt:
     56        * web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https-expected.txt:
     57        * web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https-expected.txt:
     58        * web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-site.https-expected.txt:
     59        * web-platform-tests/html/cross-origin-opener-policy/popup-with-structured-header.https-expected.txt:
     60        * web-platform-tests/html/cross-origin-opener-policy/resource-popup.https-expected.txt:
     61        * web-platform-tests/html/cross-origin-opener-policy/resources/resource-popup.html:
     62        * web-platform-tests/html/dom/idlharness.worker-expected.txt:
     63
    1642021-07-30  Chris Dumez  <cdumez@apple.com>
    265
  • trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/serialize-sharedarraybuffer-throws.https-expected.txt

    r279192 r280504  
    11
    2 FAIL IndexedDB: Attempting to serialize a SharedArrayBuffer should throw assert_true: The page is served with COOP and COEP, it should be cross-origin-isolated. expected true got undefined
     2FAIL IndexedDB: Attempting to serialize a SharedArrayBuffer should throw assert_true: The page is served with COOP and COEP, it should be cross-origin-isolated. expected true got false
    33
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/cross-origin-isolated-permission.https-expected.txt

    r279602 r280504  
    11
    2 FAIL frame: origin = https://localhost:9443, value = undefined assert_equals: expected (boolean) true but got (undefined) undefined
    3 FAIL frame: origin = https://localhost:9443, value = * assert_equals: expected (boolean) true but got (undefined) undefined
    4 FAIL frame: origin = https://localhost:9443, value = self assert_equals: expected (boolean) true but got (undefined) undefined
    5 FAIL frame: origin = https://localhost:9443, value = (\) assert_equals: expected (boolean) false but got (undefined) undefined
    6 FAIL frame: origin = https://127.0.0.1:9443, value = undefined assert_equals: expected (boolean) false but got (undefined) undefined
    7 FAIL frame: origin = https://127.0.0.1:9443, value = * assert_equals: expected (boolean) false but got (undefined) undefined
    8 FAIL frame: origin = https://127.0.0.1:9443, value = self assert_equals: expected (boolean) false but got (undefined) undefined
    9 FAIL frame: origin = https://127.0.0.1:9443, value = (\) assert_equals: expected (boolean) false but got (undefined) undefined
    10 FAIL dedicated worker: scheme = https, value = undefined assert_equals: expected (boolean) true but got (undefined) undefined
    11 FAIL dedicated worker: scheme = https, value = * assert_equals: expected (boolean) true but got (undefined) undefined
    12 FAIL dedicated worker: scheme = https, value = self assert_equals: expected (boolean) true but got (undefined) undefined
    13 FAIL dedicated worker: scheme = https, value = (\) assert_equals: expected (boolean) false but got (undefined) undefined
    14 FAIL dedicated worker: scheme = data, value = undefined assert_equals: expected (boolean) false but got (undefined) undefined
    15 FAIL dedicated worker: scheme = data, value = * assert_equals: expected (boolean) false but got (undefined) undefined
    16 FAIL dedicated worker: scheme = data, value = self assert_equals: expected (boolean) false but got (undefined) undefined
    17 FAIL dedicated worker: scheme = data, value = (\) assert_equals: expected (boolean) false but got (undefined) undefined
    18 FAIL dedicated worker: scheme = blob, value = undefined assert_equals: expected (boolean) true but got (undefined) undefined
    19 FAIL dedicated worker: scheme = blob, value = * assert_equals: expected (boolean) true but got (undefined) undefined
    20 FAIL dedicated worker: scheme = blob, value = self assert_equals: expected (boolean) true but got (undefined) undefined
    21 FAIL dedicated worker: scheme = blob, value = (\) assert_equals: expected (boolean) false but got (undefined) undefined
     2FAIL frame: origin = https://localhost:9443, value = undefined assert_equals: expected true but got false
     3FAIL frame: origin = https://localhost:9443, value = * assert_equals: expected true but got false
     4FAIL frame: origin = https://localhost:9443, value = self assert_equals: expected true but got false
     5PASS frame: origin = https://localhost:9443, value = (\)
     6PASS frame: origin = https://127.0.0.1:9443, value = undefined
     7PASS frame: origin = https://127.0.0.1:9443, value = *
     8PASS frame: origin = https://127.0.0.1:9443, value = self
     9PASS frame: origin = https://127.0.0.1:9443, value = (\)
     10FAIL dedicated worker: scheme = https, value = undefined assert_equals: expected true but got false
     11FAIL dedicated worker: scheme = https, value = * assert_equals: expected true but got false
     12FAIL dedicated worker: scheme = https, value = self assert_equals: expected true but got false
     13PASS dedicated worker: scheme = https, value = (\)
     14PASS dedicated worker: scheme = data, value = undefined
     15PASS dedicated worker: scheme = data, value = *
     16PASS dedicated worker: scheme = data, value = self
     17PASS dedicated worker: scheme = data, value = (\)
     18FAIL dedicated worker: scheme = blob, value = undefined assert_equals: expected true but got false
     19FAIL dedicated worker: scheme = blob, value = * assert_equals: expected true but got false
     20FAIL dedicated worker: scheme = blob, value = self assert_equals: expected true but got false
     21PASS dedicated worker: scheme = blob, value = (\)
    2222FAIL shared worker: withCoopCoep = false Can't find variable: SharedWorker
    2323FAIL shared worker: withCoopCoep = true Can't find variable: SharedWorker
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/blob-popup.https-expected.txt

    r280044 r280504  
     1CONSOLE MESSAGE: TypeError: null is not an object (evaluating 'window.opener.furtherPopup = w')
    12
    2 FAIL Cross-Origin-Opener-Policy and a blob URL popup assert_equals: expected "blob:https://localhost:9443/f3a32c4f-d84f-4bb0-be11-ef1d389533b3" but got "blob:https://localhost:9443/c25cf73f-1128-4431-a76d-a9a79ff038e2"
     3FAIL Cross-Origin-Opener-Policy and a blob URL popup assert_equals: expected 0 but got 36
    34
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coep-blob-popup.https-expected.txt

    r280044 r280504  
    11
    2 FAIL COOP+COEP blob URL popup: window.open() assert_equals: expected "blob:https://localhost:9443/8d894a2a-25d1-417c-accf-77e1048a7b07" but got "blob:https://localhost:9443/e036f361-8969-4214-a30c-f4df7aba4bf9"
     2FAIL COOP+COEP blob URL popup: window.open() assert_true: Cross-origin without CORP did not fail expected true got false
    33FAIL COOP+COEP blob URL popup: <a> assert_true: Cross-origin without CORP did not fail expected true got false
    44FAIL COOP+COEP blob URL popup: <a rel=noopener> assert_true: Cross-origin without CORP did not fail expected true got false
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https-expected.txt

    r280044 r280504  
    11
    22PASS Popup navigating to same-origin with coop/coep
    3 FAIL Popup navigating to same-site with coop/coep assert_equals: name expected "" but got "Popup-navigating-to-same-site-with-coop/coep"
    4 FAIL Popup navigating to same-origin with no coop/coep assert_equals: name expected "" but got "Popup-navigating-to-same-origin-with-no-coop/coep"
    5 FAIL Popup navigating to same-site with no coop/coep assert_equals: name expected "" but got "Popup-navigating-to-same-site-with-no-coop/coep"
    6 FAIL Popup navigating to same-origin with coop/no coep assert_equals: name expected "" but got "Popup-navigating-to-same-origin-with-coop/no-coep"
    7 FAIL Popup navigating to same-site with coop/no coep assert_equals: name expected "" but got "Popup-navigating-to-same-site-with-coop/no-coep"
    8 FAIL Popup navigating to same-origin with no coop/no coep assert_equals: name expected "" but got "Popup-navigating-to-same-origin-with-no-coop/no-coep"
    9 FAIL Popup navigating to same-site with no coop/no coep assert_equals: name expected "" but got "Popup-navigating-to-same-site-with-no-coop/no-coep"
    10 FAIL Popup navigating to same-origin with coop unsafe-none/coep assert_equals: name expected "" but got "Popup-navigating-to-same-origin-with-coop-unsafe-none/coep"
    11 FAIL Popup navigating to same-site with coop unsafe-none/coep assert_equals: name expected "" but got "Popup-navigating-to-same-site-with-coop-unsafe-none/coep"
    12 FAIL Popup navigating to same-origin with coop unsafe-none/no coep assert_equals: name expected "" but got "Popup-navigating-to-same-origin-with-coop-unsafe-none/no-coep"
    13 FAIL Popup navigating to same-site with coop unsafe-none/no coep assert_equals: name expected "" but got "Popup-navigating-to-same-site-with-coop-unsafe-none/no-coep"
     3PASS Popup navigating to same-site with coop/coep
     4PASS Popup navigating to same-origin with no coop/coep
     5PASS Popup navigating to same-site with no coop/coep
     6PASS Popup navigating to same-origin with coop/no coep
     7PASS Popup navigating to same-site with coop/no coep
     8PASS Popup navigating to same-origin with no coop/no coep
     9PASS Popup navigating to same-site with no coop/no coep
     10PASS Popup navigating to same-origin with coop unsafe-none/coep
     11PASS Popup navigating to same-site with coop unsafe-none/coep
     12PASS Popup navigating to same-origin with coop unsafe-none/no coep
     13PASS Popup navigating to same-site with coop unsafe-none/no coep
    1414
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coep-redirect.https-expected.txt

    r280044 r280504  
    11
    22PASS Redirect from coop/coep to coop/coep
    3 FAIL Redirect from coop/coep to no coop/coep assert_equals: name expected "" but got "Redirect-from-coop/coep-to-no-coop/coep"
    4 FAIL Redirect from no coop/no coep to coop/coep assert_equals: name expected "" but got "Redirect-from-no-coop/no-coep-to-coop/coep"
    5 FAIL Redirect from coop/no coep to coop/coep assert_equals: name expected "" but got "Redirect-from-coop/no-coep-to-coop/coep"
    6 FAIL Redirect from coop unsafe-none/coep to coop/coep assert_equals: name expected "" but got "Redirect-from-coop-unsafe-none/coep-to-coop/coep"
    7 FAIL Redirect from coop unsafe-none/coep to coop unsafe-inherit/coep assert_equals: name expected "" but got "Redirect-from-coop-unsafe-none/coep-to-coop-unsafe-inherit/coep"
     3PASS Redirect from coop/coep to no coop/coep
     4PASS Redirect from no coop/no coep to coop/coep
     5PASS Redirect from coop/no coep to coop/coep
     6PASS Redirect from coop unsafe-none/coep to coop/coep
     7PASS Redirect from coop unsafe-none/coep to coop unsafe-inherit/coep
    88
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coep.https-expected.txt

    r280044 r280504  
    11
    22PASS Same-origin popup with coop/coep
    3 FAIL historical: "same-site" popup with coop/coep assert_equals: name expected "" but got "same-site-popup-with-coop/coep"
    4 FAIL Same-origin popup with coop unsafe-none/coep assert_equals: name expected "" but got "popup-with-coop-unsafe-none/coep"
    5 FAIL historical: "same-site" popup with coop unsafe-none/coep assert_equals: name expected "" but got "same-site-popup-with-coop-unsafe-none/coep"
    6 FAIL Same-origin popup with coop unsafe-none without coep assert_equals: name expected "" but got "popup-with-coop-unsafe-none-without-coep"
    7 FAIL historical: "same-site" popup with coop unsafe-none without coep assert_equals: name expected "" but got "same-site-popup-with-coop-unsafe-none-without-coep"
    8 FAIL Same-origin popup without coep assert_equals: name expected "" but got "popup-without-coep"
    9 FAIL historical: "same-site" popup without coep assert_equals: name expected "" but got "same-site-popup-without-coep"
    10 FAIL Bonus: window.crossOriginIsolated assert_true: expected true got undefined
     3PASS historical: "same-site" popup with coop/coep
     4PASS Same-origin popup with coop unsafe-none/coep
     5PASS historical: "same-site" popup with coop unsafe-none/coep
     6PASS Same-origin popup with coop unsafe-none without coep
     7PASS historical: "same-site" popup with coop unsafe-none without coep
     8PASS Same-origin popup without coep
     9PASS historical: "same-site" popup without coep
     10FAIL Bonus: window.crossOriginIsolated assert_true: expected true got false
    1111
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-coep-sandbox.https-expected.txt

    r280044 r280504  
    11
    2 FAIL <iframe sandbox="allow-popups allow-scripts allow-same-origin"> Sandboxed Cross-Origin-Opener-Policy popup should result in a network error assert_unreached: A COOP popup was created from a sandboxed frame Reached unreachable code
     2PASS <iframe sandbox="allow-popups allow-scripts allow-same-origin"> Sandboxed Cross-Origin-Opener-Policy popup should result in a network error
    33PASS <iframe sandbox="allow-popups allow-scripts"> Sandboxed Cross-Origin-Opener-Policy popup should result in a network error
    44PASS <iframe sandbox="allow-popups allow-scripts allow-popups-to-escape-sandbox"> Sandboxed Cross-Origin-Opener-Policy popup should result in a network error
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox-navigate.https-expected.txt

    r280044 r280504  
    11
    2 FAIL CSP: sandbox allow-popups allow-scripts allow-same-origin; CSP sandbox popup navigate to Cross-Origin-Opener-Policy document should work assert_equals: e.data.name expected "" but got "allow-popups_allow-scripts_allow-same-origin"
    3 FAIL CSP: sandbox allow-popups allow-scripts; CSP sandbox popup navigate to Cross-Origin-Opener-Policy document should work assert_equals: e.data.name expected "" but got "allow-popups_allow-scripts"
     2PASS CSP: sandbox allow-popups allow-scripts allow-same-origin; CSP sandbox popup navigate to Cross-Origin-Opener-Policy document should work
     3PASS CSP: sandbox allow-popups allow-scripts; CSP sandbox popup navigate to Cross-Origin-Opener-Policy document should work
    44
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox.https-expected.txt

    r280044 r280504  
    11
    2 FAIL CSP: sandbox allow-popups allow-scripts allow-same-origin; CSP sandboxed Cross-Origin-Opener-Policy popup should result in a network error assert_unreached: A COOP popup was created from a CSP-sandboxed popup Reached unreachable code
     2PASS CSP: sandbox allow-popups allow-scripts allow-same-origin; CSP sandboxed Cross-Origin-Opener-Policy popup should result in a network error
    33PASS CSP: sandbox allow-popups allow-scripts; CSP sandboxed Cross-Origin-Opener-Policy popup should result in a network error
    44
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-history-popup.https-expected.txt

    r280044 r280504  
    11
    2 FAIL Popup navigating to other origin with COOP: same-origin and back in history assert_equals: name expected "" but got "Popup-navigating-to-other-origin-with-COOP:-same-origin-and-back-in-history"
     2PASS Popup navigating to other origin with COOP: same-origin and back in history
    33
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-popup.https-expected.txt

    r280044 r280504  
    11
    2 Harness Error (TIMEOUT), message = null
     2PASS Open a popup to a document without COOP, then navigate it to a document with
    33
    4 TIMEOUT Open a popup to a document without COOP, then navigate it to a document with Test timed out
    5 
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-sandbox.https-expected.txt

    r280044 r280504  
    11
    2 FAIL <iframe sandbox="allow-popups allow-scripts allow-same-origin"> Sandboxed Cross-Origin-Opener-Policy popup should result in a network error assert_unreached: A COOP popup was created from a sandboxed frame Reached unreachable code
     2PASS <iframe sandbox="allow-popups allow-scripts allow-same-origin"> Sandboxed Cross-Origin-Opener-Policy popup should result in a network error
    33PASS <iframe sandbox="allow-popups allow-scripts"> Sandboxed Cross-Origin-Opener-Policy popup should result in a network error
    44PASS <iframe sandbox="allow-popups allow-scripts allow-popups-to-escape-sandbox"> Sandboxed Cross-Origin-Opener-Policy popup should result in a network error
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/header-parsing.https-expected.txt

    r280044 r280504  
    1717PASS unspecified document opening popup to https://localhost:9443 with COOP: "same-origin,same-origin"
    1818PASS unspecified document opening popup to https://localhost:9443 with COOP: "*same-origin "
    19 FAIL unspecified document opening popup to https://localhost:9443 with COOP: " same-origin" assert_equals: name expected "" but got "unspecified_to_SAME_ORIGIN_-same-origin"
    20 FAIL unspecified document opening popup to https://localhost:9443 with COOP: "same-origin " assert_equals: name expected "" but got "unspecified_to_SAME_ORIGIN_same-origin-"
    21 FAIL unspecified document opening popup to https://localhost:9443 with COOP: "\tsame-origin" assert_equals: name expected "" but got "unspecified_to_SAME_ORIGIN_\tsame-origin"
    22 FAIL unspecified document opening popup to https://localhost:9443 with COOP: "same-origin\t" assert_equals: name expected "" but got "unspecified_to_SAME_ORIGIN_same-origin\t"
    23 FAIL unspecified document opening popup to https://localhost:9443 with COOP: "same-origin;same-origin" assert_equals: name expected "" but got "unspecified_to_SAME_ORIGIN_same-origin;same-origin"
    24 FAIL unspecified document opening popup to https://localhost:9443 with COOP: "same-origin; foo=bar" assert_equals: name expected "" but got "unspecified_to_SAME_ORIGIN_same-origin;-foo=bar"
     19PASS unspecified document opening popup to https://localhost:9443 with COOP: " same-origin"
     20PASS unspecified document opening popup to https://localhost:9443 with COOP: "same-origin "
     21PASS unspecified document opening popup to https://localhost:9443 with COOP: "\tsame-origin"
     22PASS unspecified document opening popup to https://localhost:9443 with COOP: "same-origin\t"
     23PASS unspecified document opening popup to https://localhost:9443 with COOP: "same-origin;same-origin"
     24PASS unspecified document opening popup to https://localhost:9443 with COOP: "same-origin; foo=bar"
    2525PASS unspecified document opening popup to https://localhost:9443 with repeated COOP header
    2626
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https-expected.txt

    r280044 r280504  
    11
    2 FAIL Popup navigating to same-origin with coop unsafe-inherit/coep assert_equals: name expected "" but got "Popup-navigating-to-same-origin-with-coop-unsafe-inherit/coep"
    3 FAIL Popup navigating to same-site with coop unsafe-inherit/coep assert_equals: name expected "" but got "Popup-navigating-to-same-site-with-coop-unsafe-inherit/coep"
    4 FAIL Popup navigating to same-origin with coop unsafe-inherit/no coep assert_equals: name expected "" but got "Popup-navigating-to-same-origin-with-coop-unsafe-inherit/no-coep"
    5 FAIL Popup navigating to same-site with coop unsafe-inherit/no coep assert_equals: name expected "" but got "Popup-navigating-to-same-site-with-coop-unsafe-inherit/no-coep"
     2PASS Popup navigating to same-origin with coop unsafe-inherit/coep
     3PASS Popup navigating to same-site with coop unsafe-inherit/coep
     4PASS Popup navigating to same-origin with coop unsafe-inherit/no coep
     5PASS Popup navigating to same-site with coop unsafe-inherit/no coep
    66
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https-expected.txt

    r280044 r280504  
    66PASS same-origin unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS same-origin unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL same-origin unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin" assert_equals: name expected "" but got "same-origin unsafe-allow-outgoing_to_CROSS_ORIGIN_same-origin"
    9 FAIL same-origin unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "same-origin unsafe-allow-outgoing_to_CROSS_ORIGIN_same-origin-allow-popups"
     8PASS same-origin unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin"
     9PASS same-origin unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https-expected.txt

    r280044 r280504  
    66PASS same-origin unsafe-allow-outgoing document opening popup to https://localhost:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS same-origin unsafe-allow-outgoing document opening popup to https://localhost:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL same-origin unsafe-allow-outgoing document opening popup to https://localhost:9443 with COOP: "same-origin" assert_equals: name expected "" but got "same-origin unsafe-allow-outgoing_to_SAME_ORIGIN_same-origin"
    9 FAIL same-origin unsafe-allow-outgoing document opening popup to https://localhost:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "same-origin unsafe-allow-outgoing_to_SAME_ORIGIN_same-origin-allow-popups"
     8PASS same-origin unsafe-allow-outgoing document opening popup to https://localhost:9443 with COOP: "same-origin"
     9PASS same-origin unsafe-allow-outgoing document opening popup to https://localhost:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https-expected.txt

    r280044 r280504  
    66PASS same-origin unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS same-origin unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL same-origin unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin" assert_equals: name expected "" but got "same-origin unsafe-allow-outgoing_to_SAME_SITE_same-origin"
    9 FAIL same-origin unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "same-origin unsafe-allow-outgoing_to_SAME_SITE_same-origin-allow-popups"
     8PASS same-origin unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin"
     9PASS same-origin unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https-expected.txt

    r280044 r280504  
    66PASS same-site unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS same-site unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL same-site unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin" assert_equals: name expected "" but got "same-site unsafe-allow-outgoing_to_CROSS_ORIGIN_same-origin"
    9 FAIL same-site unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "same-site unsafe-allow-outgoing_to_CROSS_ORIGIN_same-origin-allow-popups"
     8PASS same-site unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin"
     9PASS same-site unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https-expected.txt

    r280044 r280504  
    66PASS same-site unsafe-allow-outgoing document opening popup to https://localhost:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS same-site unsafe-allow-outgoing document opening popup to https://localhost:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL same-site unsafe-allow-outgoing document opening popup to https://localhost:9443 with COOP: "same-origin" assert_equals: name expected "" but got "same-site unsafe-allow-outgoing_to_SAME_ORIGIN_same-origin"
    9 FAIL same-site unsafe-allow-outgoing document opening popup to https://localhost:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "same-site unsafe-allow-outgoing_to_SAME_ORIGIN_same-origin-allow-popups"
     8PASS same-site unsafe-allow-outgoing document opening popup to https://localhost:9443 with COOP: "same-origin"
     9PASS same-site unsafe-allow-outgoing document opening popup to https://localhost:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https-expected.txt

    r280044 r280504  
    66PASS same-site unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS same-site unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL same-site unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin" assert_equals: name expected "" but got "same-site unsafe-allow-outgoing_to_SAME_SITE_same-origin"
    9 FAIL same-site unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "same-site unsafe-allow-outgoing_to_SAME_SITE_same-origin-allow-popups"
     8PASS same-site unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin"
     9PASS same-site unsafe-allow-outgoing document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https-expected.txt

    r280044 r280504  
    66PASS same-site document opening popup to https://127.0.0.1:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS same-site document opening popup to https://127.0.0.1:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL same-site document opening popup to https://127.0.0.1:9443 with COOP: "same-origin" assert_equals: name expected "" but got "same-site_to_CROSS_ORIGIN_same-origin"
    9 FAIL same-site document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "same-site_to_CROSS_ORIGIN_same-origin-allow-popups"
     8PASS same-site document opening popup to https://127.0.0.1:9443 with COOP: "same-origin"
     9PASS same-site document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https-expected.txt

    r280044 r280504  
    66PASS same-site document opening popup to https://localhost:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS same-site document opening popup to https://localhost:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL same-site document opening popup to https://localhost:9443 with COOP: "same-origin" assert_equals: name expected "" but got "same-site_to_SAME_ORIGIN_same-origin"
    9 FAIL same-site document opening popup to https://localhost:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "same-site_to_SAME_ORIGIN_same-origin-allow-popups"
     8PASS same-site document opening popup to https://localhost:9443 with COOP: "same-origin"
     9PASS same-site document opening popup to https://localhost:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https-expected.txt

    r280044 r280504  
    66PASS same-site document opening popup to https://127.0.0.1:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS same-site document opening popup to https://127.0.0.1:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL same-site document opening popup to https://127.0.0.1:9443 with COOP: "same-origin" assert_equals: name expected "" but got "same-site_to_SAME_SITE_same-origin"
    9 FAIL same-site document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "same-site_to_SAME_SITE_same-origin-allow-popups"
     8PASS same-site document opening popup to https://127.0.0.1:9443 with COOP: "same-origin"
     9PASS same-site document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https-expected.txt

    r280044 r280504  
    44PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin-allow-popups"
    55PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin-allow-popups"
    6 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    7 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    8 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    9 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    10 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    11 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    12 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    13 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    14 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    15 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    16 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    17 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    18 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via window_open a SAME_SITE with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    19 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via anchor a SAME_SITE with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    20 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    21 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    22 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    23 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    24 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    25 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    26 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    27 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    28 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    29 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    30 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    31 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    32 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    33 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    34 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    35 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    36 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
    37 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin-allow-popups" assert_equals: opener expected false but got true
     6PASS same-origin-allow-popups with SAME_SITE iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin-allow-popups"
     7PASS same-origin-allow-popups with SAME_SITE iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin-allow-popups"
     8PASS same-origin-allow-popups with SAME_SITE iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin-allow-popups"
     9PASS same-origin-allow-popups with SAME_SITE iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin-allow-popups"
     10PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin-allow-popups"
     11PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin-allow-popups"
     12PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin-allow-popups"
     13PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin-allow-popups"
     14PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "same-origin-allow-popups"
     15PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "same-origin-allow-popups"
     16PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin-allow-popups"
     17PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin-allow-popups"
     18PASS same-origin-allow-popups with SAME_SITE iframe opening popup via window_open a SAME_SITE with COOP: "same-origin-allow-popups"
     19PASS same-origin-allow-popups with SAME_SITE iframe opening popup via anchor a SAME_SITE with COOP: "same-origin-allow-popups"
     20PASS same-origin-allow-popups with SAME_SITE iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin-allow-popups"
     21PASS same-origin-allow-popups with SAME_SITE iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin-allow-popups"
     22PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "same-origin-allow-popups"
     23PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "same-origin-allow-popups"
     24PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin-allow-popups"
     25PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin-allow-popups"
     26PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin-allow-popups"
     27PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin-allow-popups"
     28PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin-allow-popups"
     29PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin-allow-popups"
     30PASS same-origin-allow-popups with SAME_SITE iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin-allow-popups"
     31PASS same-origin-allow-popups with SAME_SITE iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin-allow-popups"
     32PASS same-origin-allow-popups with SAME_SITE iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin-allow-popups"
     33PASS same-origin-allow-popups with SAME_SITE iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin-allow-popups"
     34PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin-allow-popups"
     35PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin-allow-popups"
     36PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin-allow-popups"
     37PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin-allow-popups"
    3838
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https-expected.txt

    r280044 r280504  
    11
    2 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    3 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    4 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    5 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    6 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    7 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    8 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    9 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    10 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    11 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    12 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    13 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    14 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    15 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    16 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    17 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    18 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via window_open a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    19 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via anchor a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    20 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    21 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    22 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    23 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    24 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    25 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    26 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    27 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    28 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    29 FAIL same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    30 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    31 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    32 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    33 FAIL same-origin-allow-popups with SAME_SITE iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    34 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    35 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    36 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    37 FAIL same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
     2PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin"
     3PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin"
     4PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin"
     5PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin"
     6PASS same-origin-allow-popups with SAME_SITE iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin"
     7PASS same-origin-allow-popups with SAME_SITE iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin"
     8PASS same-origin-allow-popups with SAME_SITE iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin"
     9PASS same-origin-allow-popups with SAME_SITE iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin"
     10PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin"
     11PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin"
     12PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin"
     13PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin"
     14PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "same-origin"
     15PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "same-origin"
     16PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin"
     17PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin"
     18PASS same-origin-allow-popups with SAME_SITE iframe opening popup via window_open a SAME_SITE with COOP: "same-origin"
     19PASS same-origin-allow-popups with SAME_SITE iframe opening popup via anchor a SAME_SITE with COOP: "same-origin"
     20PASS same-origin-allow-popups with SAME_SITE iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin"
     21PASS same-origin-allow-popups with SAME_SITE iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin"
     22PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "same-origin"
     23PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "same-origin"
     24PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin"
     25PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin"
     26PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin"
     27PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin"
     28PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin"
     29PASS same-origin-allow-popups with SAME_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin"
     30PASS same-origin-allow-popups with SAME_SITE iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin"
     31PASS same-origin-allow-popups with SAME_SITE iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin"
     32PASS same-origin-allow-popups with SAME_SITE iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin"
     33PASS same-origin-allow-popups with SAME_SITE iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin"
     34PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin"
     35PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin"
     36PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin"
     37PASS same-origin-allow-popups with CROSS_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin"
    3838
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https-expected.txt

    r280044 r280504  
    44PASS same-origin with SAME_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin"
    55PASS same-origin with SAME_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin"
    6 FAIL same-origin with SAME_SITE iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    7 FAIL same-origin with SAME_SITE iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    8 FAIL same-origin with SAME_SITE iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    9 FAIL same-origin with SAME_SITE iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    10 FAIL same-origin with CROSS_ORIGIN iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    11 FAIL same-origin with CROSS_ORIGIN iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    12 FAIL same-origin with CROSS_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    13 FAIL same-origin with CROSS_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    14 FAIL same-origin with SAME_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    15 FAIL same-origin with SAME_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    16 FAIL same-origin with SAME_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    17 FAIL same-origin with SAME_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    18 FAIL same-origin with SAME_SITE iframe opening popup via window_open a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    19 FAIL same-origin with SAME_SITE iframe opening popup via anchor a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    20 FAIL same-origin with SAME_SITE iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    21 FAIL same-origin with SAME_SITE iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    22 FAIL same-origin with CROSS_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    23 FAIL same-origin with CROSS_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    24 FAIL same-origin with CROSS_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    25 FAIL same-origin with CROSS_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    26 FAIL same-origin with SAME_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    27 FAIL same-origin with SAME_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    28 FAIL same-origin with SAME_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    29 FAIL same-origin with SAME_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    30 FAIL same-origin with SAME_SITE iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    31 FAIL same-origin with SAME_SITE iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    32 FAIL same-origin with SAME_SITE iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    33 FAIL same-origin with SAME_SITE iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    34 FAIL same-origin with CROSS_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    35 FAIL same-origin with CROSS_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    36 FAIL same-origin with CROSS_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    37 FAIL same-origin with CROSS_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
     6PASS same-origin with SAME_SITE iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin"
     7PASS same-origin with SAME_SITE iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin"
     8PASS same-origin with SAME_SITE iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin"
     9PASS same-origin with SAME_SITE iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin"
     10PASS same-origin with CROSS_ORIGIN iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin"
     11PASS same-origin with CROSS_ORIGIN iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin"
     12PASS same-origin with CROSS_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin"
     13PASS same-origin with CROSS_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin"
     14PASS same-origin with SAME_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "same-origin"
     15PASS same-origin with SAME_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "same-origin"
     16PASS same-origin with SAME_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin"
     17PASS same-origin with SAME_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin"
     18PASS same-origin with SAME_SITE iframe opening popup via window_open a SAME_SITE with COOP: "same-origin"
     19PASS same-origin with SAME_SITE iframe opening popup via anchor a SAME_SITE with COOP: "same-origin"
     20PASS same-origin with SAME_SITE iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin"
     21PASS same-origin with SAME_SITE iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin"
     22PASS same-origin with CROSS_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "same-origin"
     23PASS same-origin with CROSS_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "same-origin"
     24PASS same-origin with CROSS_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin"
     25PASS same-origin with CROSS_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin"
     26PASS same-origin with SAME_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin"
     27PASS same-origin with SAME_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin"
     28PASS same-origin with SAME_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin"
     29PASS same-origin with SAME_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin"
     30PASS same-origin with SAME_SITE iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin"
     31PASS same-origin with SAME_SITE iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin"
     32PASS same-origin with SAME_SITE iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin"
     33PASS same-origin with SAME_SITE iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin"
     34PASS same-origin with CROSS_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin"
     35PASS same-origin with CROSS_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin"
     36PASS same-origin with CROSS_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin"
     37PASS same-origin with CROSS_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin"
    3838
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https-expected.txt

    r280044 r280504  
    11
    2 FAIL same-origin with SAME_ORIGIN iframe opening popup via window_open a SAME_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    3 FAIL same-origin with SAME_ORIGIN iframe opening popup via anchor a SAME_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    4 FAIL same-origin with SAME_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    5 FAIL same-origin with SAME_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    6 FAIL same-origin with SAME_SITE iframe opening popup via window_open a SAME_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    7 FAIL same-origin with SAME_SITE iframe opening popup via anchor a SAME_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    8 FAIL same-origin with SAME_SITE iframe opening popup via form_GET a SAME_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    9 FAIL same-origin with SAME_SITE iframe opening popup via form_POST a SAME_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    10 FAIL same-origin with CROSS_ORIGIN iframe opening popup via window_open a SAME_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    11 FAIL same-origin with CROSS_ORIGIN iframe opening popup via anchor a SAME_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    12 FAIL same-origin with CROSS_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    13 FAIL same-origin with CROSS_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    14 FAIL same-origin with SAME_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "" assert_equals: opener expected false but got true
    15 FAIL same-origin with SAME_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "" assert_equals: opener expected false but got true
    16 FAIL same-origin with SAME_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "" assert_equals: opener expected false but got true
    17 FAIL same-origin with SAME_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "" assert_equals: opener expected false but got true
    18 FAIL same-origin with SAME_SITE iframe opening popup via window_open a SAME_SITE with COOP: "" assert_equals: opener expected false but got true
    19 FAIL same-origin with SAME_SITE iframe opening popup via anchor a SAME_SITE with COOP: "" assert_equals: opener expected false but got true
    20 FAIL same-origin with SAME_SITE iframe opening popup via form_GET a SAME_SITE with COOP: "" assert_equals: opener expected false but got true
    21 FAIL same-origin with SAME_SITE iframe opening popup via form_POST a SAME_SITE with COOP: "" assert_equals: opener expected false but got true
    22 FAIL same-origin with CROSS_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "" assert_equals: opener expected false but got true
    23 FAIL same-origin with CROSS_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "" assert_equals: opener expected false but got true
    24 FAIL same-origin with CROSS_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "" assert_equals: opener expected false but got true
    25 FAIL same-origin with CROSS_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "" assert_equals: opener expected false but got true
    26 FAIL same-origin with SAME_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    27 FAIL same-origin with SAME_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    28 FAIL same-origin with SAME_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    29 FAIL same-origin with SAME_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    30 FAIL same-origin with SAME_SITE iframe opening popup via window_open a CROSS_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    31 FAIL same-origin with SAME_SITE iframe opening popup via anchor a CROSS_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    32 FAIL same-origin with SAME_SITE iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    33 FAIL same-origin with SAME_SITE iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    34 FAIL same-origin with CROSS_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    35 FAIL same-origin with CROSS_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    36 FAIL same-origin with CROSS_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "" assert_equals: opener expected false but got true
    37 FAIL same-origin with CROSS_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "" assert_equals: opener expected false but got true
     2PASS same-origin with SAME_ORIGIN iframe opening popup via window_open a SAME_ORIGIN with COOP: ""
     3PASS same-origin with SAME_ORIGIN iframe opening popup via anchor a SAME_ORIGIN with COOP: ""
     4PASS same-origin with SAME_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: ""
     5PASS same-origin with SAME_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: ""
     6PASS same-origin with SAME_SITE iframe opening popup via window_open a SAME_ORIGIN with COOP: ""
     7PASS same-origin with SAME_SITE iframe opening popup via anchor a SAME_ORIGIN with COOP: ""
     8PASS same-origin with SAME_SITE iframe opening popup via form_GET a SAME_ORIGIN with COOP: ""
     9PASS same-origin with SAME_SITE iframe opening popup via form_POST a SAME_ORIGIN with COOP: ""
     10PASS same-origin with CROSS_ORIGIN iframe opening popup via window_open a SAME_ORIGIN with COOP: ""
     11PASS same-origin with CROSS_ORIGIN iframe opening popup via anchor a SAME_ORIGIN with COOP: ""
     12PASS same-origin with CROSS_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: ""
     13PASS same-origin with CROSS_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: ""
     14PASS same-origin with SAME_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: ""
     15PASS same-origin with SAME_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: ""
     16PASS same-origin with SAME_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: ""
     17PASS same-origin with SAME_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: ""
     18PASS same-origin with SAME_SITE iframe opening popup via window_open a SAME_SITE with COOP: ""
     19PASS same-origin with SAME_SITE iframe opening popup via anchor a SAME_SITE with COOP: ""
     20PASS same-origin with SAME_SITE iframe opening popup via form_GET a SAME_SITE with COOP: ""
     21PASS same-origin with SAME_SITE iframe opening popup via form_POST a SAME_SITE with COOP: ""
     22PASS same-origin with CROSS_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: ""
     23PASS same-origin with CROSS_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: ""
     24PASS same-origin with CROSS_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: ""
     25PASS same-origin with CROSS_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: ""
     26PASS same-origin with SAME_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: ""
     27PASS same-origin with SAME_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: ""
     28PASS same-origin with SAME_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: ""
     29PASS same-origin with SAME_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: ""
     30PASS same-origin with SAME_SITE iframe opening popup via window_open a CROSS_ORIGIN with COOP: ""
     31PASS same-origin with SAME_SITE iframe opening popup via anchor a CROSS_ORIGIN with COOP: ""
     32PASS same-origin with SAME_SITE iframe opening popup via form_GET a CROSS_ORIGIN with COOP: ""
     33PASS same-origin with SAME_SITE iframe opening popup via form_POST a CROSS_ORIGIN with COOP: ""
     34PASS same-origin with CROSS_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: ""
     35PASS same-origin with CROSS_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: ""
     36PASS same-origin with CROSS_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: ""
     37PASS same-origin with CROSS_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: ""
    3838
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https-expected.txt

    r280044 r280504  
    11
    2 FAIL unsafe-none with SAME_ORIGIN iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    3 FAIL unsafe-none with SAME_ORIGIN iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    4 FAIL unsafe-none with SAME_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    5 FAIL unsafe-none with SAME_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    6 FAIL unsafe-none with SAME_SITE iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    7 FAIL unsafe-none with SAME_SITE iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    8 FAIL unsafe-none with SAME_SITE iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    9 FAIL unsafe-none with SAME_SITE iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    10 FAIL unsafe-none with CROSS_ORIGIN iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    11 FAIL unsafe-none with CROSS_ORIGIN iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    12 FAIL unsafe-none with CROSS_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    13 FAIL unsafe-none with CROSS_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    14 FAIL unsafe-none with SAME_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    15 FAIL unsafe-none with SAME_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    16 FAIL unsafe-none with SAME_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    17 FAIL unsafe-none with SAME_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    18 FAIL unsafe-none with SAME_SITE iframe opening popup via window_open a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    19 FAIL unsafe-none with SAME_SITE iframe opening popup via anchor a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    20 FAIL unsafe-none with SAME_SITE iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    21 FAIL unsafe-none with SAME_SITE iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    22 FAIL unsafe-none with CROSS_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    23 FAIL unsafe-none with CROSS_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    24 FAIL unsafe-none with CROSS_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    25 FAIL unsafe-none with CROSS_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin" assert_equals: opener expected false but got true
    26 FAIL unsafe-none with SAME_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    27 FAIL unsafe-none with SAME_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    28 FAIL unsafe-none with SAME_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    29 FAIL unsafe-none with SAME_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    30 FAIL unsafe-none with SAME_SITE iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    31 FAIL unsafe-none with SAME_SITE iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    32 FAIL unsafe-none with SAME_SITE iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    33 FAIL unsafe-none with SAME_SITE iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    34 FAIL unsafe-none with CROSS_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    35 FAIL unsafe-none with CROSS_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    36 FAIL unsafe-none with CROSS_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
    37 FAIL unsafe-none with CROSS_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin" assert_equals: opener expected false but got true
     2PASS unsafe-none with SAME_ORIGIN iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin"
     3PASS unsafe-none with SAME_ORIGIN iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin"
     4PASS unsafe-none with SAME_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin"
     5PASS unsafe-none with SAME_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin"
     6PASS unsafe-none with SAME_SITE iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin"
     7PASS unsafe-none with SAME_SITE iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin"
     8PASS unsafe-none with SAME_SITE iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin"
     9PASS unsafe-none with SAME_SITE iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin"
     10PASS unsafe-none with CROSS_ORIGIN iframe opening popup via window_open a SAME_ORIGIN with COOP: "same-origin"
     11PASS unsafe-none with CROSS_ORIGIN iframe opening popup via anchor a SAME_ORIGIN with COOP: "same-origin"
     12PASS unsafe-none with CROSS_ORIGIN iframe opening popup via form_GET a SAME_ORIGIN with COOP: "same-origin"
     13PASS unsafe-none with CROSS_ORIGIN iframe opening popup via form_POST a SAME_ORIGIN with COOP: "same-origin"
     14PASS unsafe-none with SAME_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "same-origin"
     15PASS unsafe-none with SAME_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "same-origin"
     16PASS unsafe-none with SAME_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin"
     17PASS unsafe-none with SAME_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin"
     18PASS unsafe-none with SAME_SITE iframe opening popup via window_open a SAME_SITE with COOP: "same-origin"
     19PASS unsafe-none with SAME_SITE iframe opening popup via anchor a SAME_SITE with COOP: "same-origin"
     20PASS unsafe-none with SAME_SITE iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin"
     21PASS unsafe-none with SAME_SITE iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin"
     22PASS unsafe-none with CROSS_ORIGIN iframe opening popup via window_open a SAME_SITE with COOP: "same-origin"
     23PASS unsafe-none with CROSS_ORIGIN iframe opening popup via anchor a SAME_SITE with COOP: "same-origin"
     24PASS unsafe-none with CROSS_ORIGIN iframe opening popup via form_GET a SAME_SITE with COOP: "same-origin"
     25PASS unsafe-none with CROSS_ORIGIN iframe opening popup via form_POST a SAME_SITE with COOP: "same-origin"
     26PASS unsafe-none with SAME_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin"
     27PASS unsafe-none with SAME_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin"
     28PASS unsafe-none with SAME_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin"
     29PASS unsafe-none with SAME_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin"
     30PASS unsafe-none with SAME_SITE iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin"
     31PASS unsafe-none with SAME_SITE iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin"
     32PASS unsafe-none with SAME_SITE iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin"
     33PASS unsafe-none with SAME_SITE iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin"
     34PASS unsafe-none with CROSS_ORIGIN iframe opening popup via window_open a CROSS_ORIGIN with COOP: "same-origin"
     35PASS unsafe-none with CROSS_ORIGIN iframe opening popup via anchor a CROSS_ORIGIN with COOP: "same-origin"
     36PASS unsafe-none with CROSS_ORIGIN iframe opening popup via form_GET a CROSS_ORIGIN with COOP: "same-origin"
     37PASS unsafe-none with CROSS_ORIGIN iframe opening popup via form_POST a CROSS_ORIGIN with COOP: "same-origin"
    3838
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/javascript-url.https-expected.txt

    r280044 r280504  
    2424PASS navigation: SAME_ORIGIN; parentCOOP: unsafe-none; childCOOP: unsafe-none
    2525PASS navigation: SAME_SITE; parentCOOP: unsafe-none; childCOOP: unsafe-none
    26 FAIL navigation: SAME_ORIGIN; parentCOOP: unsafe-none; childCOOP: same-origin-allow-popups assert_equals: child name expected "" but got "c6f92487-c13b-4149-8679-d2178f102ecc"
    27 FAIL navigation: SAME_SITE; parentCOOP: unsafe-none; childCOOP: same-origin-allow-popups assert_equals: child name expected "" but got "e4b81964-b0c3-4caf-9784-c494afa2f457"
    28 FAIL navigation: SAME_ORIGIN; parentCOOP: unsafe-none; childCOOP: same-origin assert_equals: child name expected "" but got "e5543127-3c36-460f-bb0c-8ecba7fea07b"
    29 FAIL navigation: SAME_SITE; parentCOOP: unsafe-none; childCOOP: same-origin assert_equals: child name expected "" but got "22981940-75cb-4db6-9669-f9de8efb2005"
     26PASS navigation: SAME_ORIGIN; parentCOOP: unsafe-none; childCOOP: same-origin-allow-popups
     27PASS navigation: SAME_SITE; parentCOOP: unsafe-none; childCOOP: same-origin-allow-popups
     28PASS navigation: SAME_ORIGIN; parentCOOP: unsafe-none; childCOOP: same-origin
     29PASS navigation: SAME_SITE; parentCOOP: unsafe-none; childCOOP: same-origin
    3030PASS navigation: SAME_ORIGIN; parentCOOP: same-origin-allow-popups; childCOOP: unsafe-none
    3131PASS navigation: SAME_SITE; parentCOOP: same-origin-allow-popups; childCOOP: unsafe-none
    3232PASS navigation: SAME_ORIGIN; parentCOOP: same-origin-allow-popups; childCOOP: same-origin-allow-popups
    33 FAIL navigation: SAME_SITE; parentCOOP: same-origin-allow-popups; childCOOP: same-origin-allow-popups assert_equals: child name expected "" but got "18f71203-8538-447c-9376-2bbe9b8d38df"
    34 FAIL navigation: SAME_ORIGIN; parentCOOP: same-origin-allow-popups; childCOOP: same-origin assert_equals: child name expected "" but got "cc026a5c-5298-44be-a3a2-1040025ca0cc"
    35 FAIL navigation: SAME_SITE; parentCOOP: same-origin-allow-popups; childCOOP: same-origin assert_equals: child name expected "" but got "0f4770cd-34a2-45a1-9124-d0e3092fb728"
    36 FAIL navigation: SAME_ORIGIN; parentCOOP: same-origin; childCOOP: unsafe-none assert_equals: child name expected "" but got "3e14edda-2d7e-4896-b54f-b50a115aca4d"
    37 FAIL navigation: SAME_SITE; parentCOOP: same-origin; childCOOP: unsafe-none assert_equals: child name expected "" but got "6eaffae0-f3fb-4ddb-961f-620d1eba5b0d"
    38 FAIL navigation: SAME_ORIGIN; parentCOOP: same-origin; childCOOP: same-origin-allow-popups assert_equals: child name expected "" but got "e4d53ab9-257f-4251-8f0b-6aff251d7ed2"
    39 FAIL navigation: SAME_SITE; parentCOOP: same-origin; childCOOP: same-origin-allow-popups assert_equals: child name expected "" but got "5ded3478-cf50-4468-961c-7b8805cec198"
     33PASS navigation: SAME_SITE; parentCOOP: same-origin-allow-popups; childCOOP: same-origin-allow-popups
     34PASS navigation: SAME_ORIGIN; parentCOOP: same-origin-allow-popups; childCOOP: same-origin
     35PASS navigation: SAME_SITE; parentCOOP: same-origin-allow-popups; childCOOP: same-origin
     36PASS navigation: SAME_ORIGIN; parentCOOP: same-origin; childCOOP: unsafe-none
     37PASS navigation: SAME_SITE; parentCOOP: same-origin; childCOOP: unsafe-none
     38PASS navigation: SAME_ORIGIN; parentCOOP: same-origin; childCOOP: same-origin-allow-popups
     39PASS navigation: SAME_SITE; parentCOOP: same-origin; childCOOP: same-origin-allow-popups
    4040PASS navigation: SAME_ORIGIN; parentCOOP: same-origin; childCOOP: same-origin
    41 FAIL navigation: SAME_SITE; parentCOOP: same-origin; childCOOP: same-origin assert_equals: child name expected "" but got "7daf1201-32b9-43ec-afde-513edd584ffd"
     41PASS navigation: SAME_SITE; parentCOOP: same-origin; childCOOP: same-origin
    4242
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/navigate-to-aboutblank.https-expected.txt

    r280044 r280504  
    99PASS Navigate to about:blank from iframe with opener.top COOP: |header(Cross-Origin-Opener-Policy,same-origin)|header(Cross-Origin-Embedder-Policy,require-corp), iframe origin: https://localhost:9443, openee COOP: |header(Cross-Origin-Opener-Policy,same-origin)|header(Cross-Origin-Embedder-Policy,require-corp), openee origin: https://localhost:9443.
    1010PASS Navigate to about:blank from iframe with opener.top COOP: |header(Cross-Origin-Opener-Policy,same-origin-allow-popups), iframe origin: https://localhost:9443, openee COOP: |header(Cross-Origin-Opener-Policy,same-origin-allow-popups), openee origin: https://localhost:9443.
    11 FAIL Navigate to about:blank from iframe with opener.top COOP: |header(Cross-Origin-Opener-Policy,same-origin-allow-popups), iframe origin: https://localhost:9443, openee COOP: |header(Cross-Origin-Opener-Policy,unsafe-none), openee origin: https://127.0.0.1:9443. assert_equals: expected "true" but got "false"
     11PASS Navigate to about:blank from iframe with opener.top COOP: |header(Cross-Origin-Opener-Policy,same-origin-allow-popups), iframe origin: https://localhost:9443, openee COOP: |header(Cross-Origin-Opener-Policy,unsafe-none), openee origin: https://127.0.0.1:9443.
    1212PASS Navigate to about:blank from iframe with opener.top COOP: |header(Cross-Origin-Opener-Policy,same-origin-allow-popups), iframe origin: https://127.0.0.1:9443, openee COOP: |header(Cross-Origin-Opener-Policy,unsafe-none), openee origin: https://127.0.0.1:9443.
    1313
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/no-https-expected.txt

    r267646 r280504  
     1CONSOLE MESSAGE: TypeError: null is not an object (evaluating 'window.opener.functionCalledByOpenee')
    12
    2 PASS Cross-Origin-Opener-Policy only works over secure contexts
    3 FAIL Bonus: window.crossOriginIsolated assert_false: expected false got undefined
     3Harness Error (TIMEOUT), message = null
    44
     5TIMEOUT Cross-Origin-Opener-Policy only works over secure contexts Test timed out
     6PASS Bonus: window.crossOriginIsolated
     7
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-coop-by-sw-from-coop.https-expected.txt

    r280044 r280504  
    11
    2 FAIL sw_normal, popup_normal assert_equals: expected "No opener is set" but got "An opener is set"
     2PASS sw_normal, popup_normal
    33PASS sw_normal, popup_coop
    4 FAIL sw_coop, popup_normal assert_equals: expected "No opener is set" but got "An opener is set"
     4PASS sw_coop, popup_normal
    55PASS sw_coop, popup_coop
    66
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-coop-by-sw.https-expected.txt

    r280044 r280504  
    11
    22PASS sw_normal, popup_normal
    3 FAIL sw_normal, popup_coop assert_equals: expected "No opener is set" but got "An opener is set"
     3PASS sw_normal, popup_coop
    44PASS sw_coop, popup_normal
    5 FAIL sw_coop, popup_coop assert_equals: expected "No opener is set" but got "An opener is set"
     5PASS sw_coop, popup_coop
    66
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https-expected.txt

    r280044 r280504  
    11
    2 FAIL same-origin document opening popup redirect from https://localhost:9443 to https://127.0.0.1:9443 with redirectCache true and destCache false assert_equals: name expected "" but got "SAME_ORIGIN_CROSS_ORIGIN_cache_redirect_not_cache_destination"
    3 FAIL same-origin document opening popup redirect from https://localhost:9443 to https://127.0.0.1:9443 with redirectCache false and destCache true assert_equals: name expected "" but got "SAME_ORIGIN_CROSS_ORIGIN_not_cache_redirect_cache_destination"
    4 FAIL same-origin document opening popup redirect from https://localhost:9443 to https://127.0.0.1:9443 with redirectCache true and destCache true assert_equals: name expected "" but got "SAME_ORIGIN_CROSS_ORIGIN_cache_redirect_cache_destination"
    5 FAIL same-origin document opening popup redirect from https://127.0.0.1:9443 to https://localhost:9443 with redirectCache true and destCache false assert_equals: name expected "" but got "CROSS_ORIGIN_SAME_ORIGIN_cache_redirect_not_cache_destination"
    6 FAIL same-origin document opening popup redirect from https://127.0.0.1:9443 to https://localhost:9443 with redirectCache false and destCache true assert_equals: name expected "" but got "CROSS_ORIGIN_SAME_ORIGIN_not_cache_redirect_cache_destination"
    7 FAIL same-origin document opening popup redirect from https://127.0.0.1:9443 to https://localhost:9443 with redirectCache true and destCache true assert_equals: name expected "" but got "CROSS_ORIGIN_SAME_ORIGIN_cache_redirect_cache_destination"
    8 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 assert_equals: name expected "" but got "SAME_SITE_CROSS_ORIGIN_cache_redirect_not_cache_destination"
    9 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 assert_equals: name expected "" but got "SAME_SITE_CROSS_ORIGIN_not_cache_redirect_cache_destination"
    10 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 assert_equals: name expected "" but got "SAME_SITE_CROSS_ORIGIN_cache_redirect_cache_destination"
     2PASS same-origin document opening popup redirect from https://localhost:9443 to https://127.0.0.1:9443 with redirectCache true and destCache false
     3PASS same-origin document opening popup redirect from https://localhost:9443 to https://127.0.0.1:9443 with redirectCache false and destCache true
     4PASS same-origin document opening popup redirect from https://localhost:9443 to https://127.0.0.1:9443 with redirectCache true and destCache true
     5PASS same-origin document opening popup redirect from https://127.0.0.1:9443 to https://localhost:9443 with redirectCache true and destCache false
     6PASS same-origin document opening popup redirect from https://127.0.0.1:9443 to https://localhost:9443 with redirectCache false and destCache true
     7PASS same-origin document opening popup redirect from https://127.0.0.1:9443 to https://localhost:9443 with redirectCache true and destCache true
     8PASS 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
     9PASS 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
     10PASS 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
    1111
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-redirect-same-origin-allow-popups.https-expected.txt

    r280044 r280504  
    11
    2 FAIL Same origin popup redirects to same-origin with same-origin-allow-popups assert_equals: opener expected "false" but got "true"
    3 FAIL Cross origin popup redirects to same-origin with same-origin-allow-popups assert_equals: opener expected "false" but got "true"
     2PASS Same origin popup redirects to same-origin with same-origin-allow-popups
     3PASS Cross origin popup redirects to same-origin with same-origin-allow-popups
    44
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https-expected.txt

    r280044 r280504  
    66PASS same-origin-allow-popups document opening popup to https://127.0.0.1:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS same-origin-allow-popups document opening popup to https://127.0.0.1:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL same-origin-allow-popups document opening popup to https://127.0.0.1:9443 with COOP: "same-origin" assert_equals: name expected "" but got "same-origin-allow-popups_to_CROSS_ORIGIN_same-origin"
    9 FAIL same-origin-allow-popups document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "same-origin-allow-popups_to_CROSS_ORIGIN_same-origin-allow-popups"
     8PASS same-origin-allow-popups document opening popup to https://127.0.0.1:9443 with COOP: "same-origin"
     9PASS same-origin-allow-popups document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https-expected.txt

    r280044 r280504  
    66PASS same-origin-allow-popups document opening popup to https://localhost:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS same-origin-allow-popups document opening popup to https://localhost:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL same-origin-allow-popups document opening popup to https://localhost:9443 with COOP: "same-origin" assert_equals: name expected "" but got "same-origin-allow-popups_to_SAME_ORIGIN_same-origin"
     8PASS same-origin-allow-popups document opening popup to https://localhost:9443 with COOP: "same-origin"
    99PASS same-origin-allow-popups document opening popup to https://localhost:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https-expected.txt

    r280044 r280504  
    66PASS same-origin-allow-popups document opening popup to https://127.0.0.1:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS same-origin-allow-popups document opening popup to https://127.0.0.1:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL same-origin-allow-popups document opening popup to https://127.0.0.1:9443 with COOP: "same-origin" assert_equals: name expected "" but got "same-origin-allow-popups_to_SAME_SITE_same-origin"
    9 FAIL same-origin-allow-popups document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "same-origin-allow-popups_to_SAME_SITE_same-origin-allow-popups"
     8PASS same-origin-allow-popups document opening popup to https://127.0.0.1:9443 with COOP: "same-origin"
     9PASS same-origin-allow-popups document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https-expected.txt

    r280044 r280504  
    11
    2 FAIL same-origin document opening popup to https://127.0.0.1:9443 with COOP: "" assert_equals: name expected "" but got "same-origin_to_CROSS_ORIGIN_"
    3 FAIL same-origin document opening popup to https://127.0.0.1:9443 with COOP: "unsafe-none" assert_equals: name expected "" but got "same-origin_to_CROSS_ORIGIN_unsafe-none"
    4 FAIL same-origin document opening popup to https://127.0.0.1:9443 with COOP: "jibberish" assert_equals: name expected "" but got "same-origin_to_CROSS_ORIGIN_jibberish"
    5 FAIL same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-site" assert_equals: name expected "" but got "same-origin_to_CROSS_ORIGIN_same-site"
    6 FAIL same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-site unsafe-allow-outgoing" assert_equals: name expected "" but got "same-origin_to_CROSS_ORIGIN_same-site-unsafe-allow-outgoing"
    7 FAIL same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-origin unsafe-allow-outgoing" assert_equals: name expected "" but got "same-origin_to_CROSS_ORIGIN_same-origin-unsafe-allow-outgoing"
    8 FAIL same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-origin" assert_equals: name expected "" but got "same-origin_to_CROSS_ORIGIN_same-origin"
    9 FAIL same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "same-origin_to_CROSS_ORIGIN_same-origin-allow-popups"
     2PASS same-origin document opening popup to https://127.0.0.1:9443 with COOP: ""
     3PASS same-origin document opening popup to https://127.0.0.1:9443 with COOP: "unsafe-none"
     4PASS same-origin document opening popup to https://127.0.0.1:9443 with COOP: "jibberish"
     5PASS same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-site"
     6PASS same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-site unsafe-allow-outgoing"
     7PASS same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-origin unsafe-allow-outgoing"
     8PASS same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-origin"
     9PASS same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https-expected.txt

    r280044 r280504  
    11
    2 FAIL same-origin document opening popup to https://localhost:9443 with COOP: "" assert_equals: name expected "" but got "same-origin_to_SAME_ORIGIN_"
    3 FAIL same-origin document opening popup to https://localhost:9443 with COOP: "unsafe-none" assert_equals: name expected "" but got "same-origin_to_SAME_ORIGIN_unsafe-none"
    4 FAIL same-origin document opening popup to https://localhost:9443 with COOP: "jibberish" assert_equals: name expected "" but got "same-origin_to_SAME_ORIGIN_jibberish"
    5 FAIL same-origin document opening popup to https://localhost:9443 with COOP: "same-site" assert_equals: name expected "" but got "same-origin_to_SAME_ORIGIN_same-site"
    6 FAIL same-origin document opening popup to https://localhost:9443 with COOP: "same-site unsafe-allow-outgoing" assert_equals: name expected "" but got "same-origin_to_SAME_ORIGIN_same-site-unsafe-allow-outgoing"
    7 FAIL same-origin document opening popup to https://localhost:9443 with COOP: "same-origin unsafe-allow-outgoing" assert_equals: name expected "" but got "same-origin_to_SAME_ORIGIN_same-origin-unsafe-allow-outgoing"
     2PASS same-origin document opening popup to https://localhost:9443 with COOP: ""
     3PASS same-origin document opening popup to https://localhost:9443 with COOP: "unsafe-none"
     4PASS same-origin document opening popup to https://localhost:9443 with COOP: "jibberish"
     5PASS same-origin document opening popup to https://localhost:9443 with COOP: "same-site"
     6PASS same-origin document opening popup to https://localhost:9443 with COOP: "same-site unsafe-allow-outgoing"
     7PASS same-origin document opening popup to https://localhost:9443 with COOP: "same-origin unsafe-allow-outgoing"
    88PASS same-origin document opening popup to https://localhost:9443 with COOP: "same-origin"
    9 FAIL same-origin document opening popup to https://localhost:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "same-origin_to_SAME_ORIGIN_same-origin-allow-popups"
     9PASS same-origin document opening popup to https://localhost:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-site.https-expected.txt

    r280044 r280504  
    11
    2 FAIL same-origin document opening popup to https://127.0.0.1:9443 with COOP: "" assert_equals: name expected "" but got "same-origin_to_SAME_SITE_"
    3 FAIL same-origin document opening popup to https://127.0.0.1:9443 with COOP: "unsafe-none" assert_equals: name expected "" but got "same-origin_to_SAME_SITE_unsafe-none"
    4 FAIL same-origin document opening popup to https://127.0.0.1:9443 with COOP: "jibberish" assert_equals: name expected "" but got "same-origin_to_SAME_SITE_jibberish"
    5 FAIL same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-site" assert_equals: name expected "" but got "same-origin_to_SAME_SITE_same-site"
    6 FAIL same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-site unsafe-allow-outgoing" assert_equals: name expected "" but got "same-origin_to_SAME_SITE_same-site-unsafe-allow-outgoing"
    7 FAIL same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-origin unsafe-allow-outgoing" assert_equals: name expected "" but got "same-origin_to_SAME_SITE_same-origin-unsafe-allow-outgoing"
    8 FAIL same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-origin" assert_equals: name expected "" but got "same-origin_to_SAME_SITE_same-origin"
    9 FAIL same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "same-origin_to_SAME_SITE_same-origin-allow-popups"
     2PASS same-origin document opening popup to https://127.0.0.1:9443 with COOP: ""
     3PASS same-origin document opening popup to https://127.0.0.1:9443 with COOP: "unsafe-none"
     4PASS same-origin document opening popup to https://127.0.0.1:9443 with COOP: "jibberish"
     5PASS same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-site"
     6PASS same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-site unsafe-allow-outgoing"
     7PASS same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-origin unsafe-allow-outgoing"
     8PASS same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-origin"
     9PASS same-origin document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https-expected.txt

    r280044 r280504  
    66PASS unsafe-none document opening popup to https://127.0.0.1:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS unsafe-none document opening popup to https://127.0.0.1:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL unsafe-none document opening popup to https://127.0.0.1:9443 with COOP: "same-origin" assert_equals: name expected "" but got "unsafe-none_to_CROSS_ORIGIN_same-origin"
    9 FAIL unsafe-none document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "unsafe-none_to_CROSS_ORIGIN_same-origin-allow-popups"
     8PASS unsafe-none document opening popup to https://127.0.0.1:9443 with COOP: "same-origin"
     9PASS unsafe-none document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https-expected.txt

    r280044 r280504  
    66PASS unsafe-none document opening popup to https://localhost:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS unsafe-none document opening popup to https://localhost:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL unsafe-none document opening popup to https://localhost:9443 with COOP: "same-origin" assert_equals: name expected "" but got "unsafe-none_to_SAME_ORIGIN_same-origin"
    9 FAIL unsafe-none document opening popup to https://localhost:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "unsafe-none_to_SAME_ORIGIN_same-origin-allow-popups"
     8PASS unsafe-none document opening popup to https://localhost:9443 with COOP: "same-origin"
     9PASS unsafe-none document opening popup to https://localhost:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https-expected.txt

    r280044 r280504  
    66PASS unsafe-none document opening popup to https://127.0.0.1:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS unsafe-none document opening popup to https://127.0.0.1:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL unsafe-none document opening popup to https://127.0.0.1:9443 with COOP: "same-origin" assert_equals: name expected "" but got "unsafe-none_to_SAME_SITE_same-origin"
    9 FAIL unsafe-none document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "unsafe-none_to_SAME_SITE_same-origin-allow-popups"
     8PASS unsafe-none document opening popup to https://127.0.0.1:9443 with COOP: "same-origin"
     9PASS unsafe-none document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https-expected.txt

    r280044 r280504  
    66PASS unspecified document opening popup to https://127.0.0.1:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS unspecified document opening popup to https://127.0.0.1:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL unspecified document opening popup to https://127.0.0.1:9443 with COOP: "same-origin" assert_equals: name expected "" but got "unspecified_to_CROSS_ORIGIN_same-origin"
    9 FAIL unspecified document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "unspecified_to_CROSS_ORIGIN_same-origin-allow-popups"
     8PASS unspecified document opening popup to https://127.0.0.1:9443 with COOP: "same-origin"
     9PASS unspecified document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https-expected.txt

    r280044 r280504  
    66PASS unspecified document opening popup to https://localhost:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS unspecified document opening popup to https://localhost:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL unspecified document opening popup to https://localhost:9443 with COOP: "same-origin" assert_equals: name expected "" but got "unspecified_to_SAME_ORIGIN_same-origin"
    9 FAIL unspecified document opening popup to https://localhost:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "unspecified_to_SAME_ORIGIN_same-origin-allow-popups"
     8PASS unspecified document opening popup to https://localhost:9443 with COOP: "same-origin"
     9PASS unspecified document opening popup to https://localhost:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-site.https-expected.txt

    r280044 r280504  
    66PASS unspecified document opening popup to https://127.0.0.1:9443 with COOP: "same-site unsafe-allow-outgoing"
    77PASS unspecified document opening popup to https://127.0.0.1:9443 with COOP: "same-origin unsafe-allow-outgoing"
    8 FAIL unspecified document opening popup to https://127.0.0.1:9443 with COOP: "same-origin" assert_equals: name expected "" but got "unspecified_to_SAME_SITE_same-origin"
    9 FAIL unspecified document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups" assert_equals: name expected "" but got "unspecified_to_SAME_SITE_same-origin-allow-popups"
     8PASS unspecified document opening popup to https://127.0.0.1:9443 with COOP: "same-origin"
     9PASS unspecified document opening popup to https://127.0.0.1:9443 with COOP: "same-origin-allow-popups"
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/popup-with-structured-header.https-expected.txt

    r280044 r280504  
    11
    2 FAIL same-origin with structured headers document opening popup to https://localhost:9443 with COOP: "unsafe-none; report-to=endpoint" assert_equals: name expected "" but got "same-origin with structured headers_to_SAME_ORIGIN_unsafe-none;-report-to=endpoint"
     2PASS same-origin with structured headers document opening popup to https://localhost:9443 with COOP: "unsafe-none; report-to=endpoint"
    33PASS same-origin with structured headers document opening popup to https://localhost:9443 with COOP: "same-origin; report-to=endpoint"
    4 FAIL same-origin with structured headers document opening popup to https://localhost:9443 with COOP: "same-origin-allow-popups; report-to=endpoint" assert_equals: name expected "" but got "same-origin with structured headers_to_SAME_ORIGIN_same-origin-allow-popups;-report-to=endpoint"
     4PASS same-origin with structured headers document opening popup to https://localhost:9443 with COOP: "same-origin-allow-popups; report-to=endpoint"
    55
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/resource-popup.https-expected.txt

    r280044 r280504  
    44
    55
    6 FAIL /common/dummy.xml - parent COOP: ""; child COOP: "same-origin" assert_equals: expected (object) null but got (string) "FAIL"
    7 FAIL /common/dummy.xml - parent COOP: "same-origin"; child COOP: "" assert_equals: expected (object) null but got (string) "FAIL"
    8 FAIL /common/dummy.xml - parent COOP: "same-origin"; child COOP: "same-origin" assert_equals: expected "foobar" but got "FAIL"
    9 FAIL /images/red.png - parent COOP: ""; child COOP: "same-origin" assert_equals: expected (object) null but got (string) "foobar"
    10 FAIL /images/red.png - parent COOP: "same-origin"; child COOP: "" assert_equals: expected (object) null but got (string) "foobar"
     6PASS /common/dummy.xml - parent COOP: ""; child COOP: "same-origin"
     7PASS /common/dummy.xml - parent COOP: "same-origin"; child COOP: ""
     8PASS /common/dummy.xml - parent COOP: "same-origin"; child COOP: "same-origin"
     9PASS /images/red.png - parent COOP: ""; child COOP: "same-origin"
     10PASS /images/red.png - parent COOP: "same-origin"; child COOP: ""
    1111PASS /images/red.png - parent COOP: "same-origin"; child COOP: "same-origin"
    12 FAIL /common/text-plain.txt - parent COOP: ""; child COOP: "same-origin" assert_equals: expected (object) null but got (string) "foobar"
    13 FAIL /common/text-plain.txt - parent COOP: "same-origin"; child COOP: "" assert_equals: expected (object) null but got (string) "foobar"
     12PASS /common/text-plain.txt - parent COOP: ""; child COOP: "same-origin"
     13PASS /common/text-plain.txt - parent COOP: "same-origin"; child COOP: ""
    1414PASS /common/text-plain.txt - parent COOP: "same-origin"; child COOP: "same-origin"
    15 FAIL /media/2x2-green.mp4 - parent COOP: ""; child COOP: "same-origin" assert_equals: expected (object) null but got (string) "foobar"
    16 FAIL /media/2x2-green.mp4 - parent COOP: "same-origin"; child COOP: "" assert_equals: expected (object) null but got (string) "foobar"
     15PASS /media/2x2-green.mp4 - parent COOP: ""; child COOP: "same-origin"
     16PASS /media/2x2-green.mp4 - parent COOP: "same-origin"; child COOP: ""
    1717PASS /media/2x2-green.mp4 - parent COOP: "same-origin"; child COOP: "same-origin"
    1818
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-opener-policy/resources/resource-popup.html

    r279427 r280504  
    1414};
    1515const id = setInterval(() => {
    16   if (win.location.href !== 'about:blank') {
     16  if (win.closed || win.location.href !== 'about:blank') {
    1717    clearInterval(id);
    1818    bc.postMessage({name: win.name || null, closed: win.closed});
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt

    r279971 r280504  
    631631PASS WorkerGlobalScope interface: attribute origin
    632632PASS WorkerGlobalScope interface: attribute isSecureContext
    633 FAIL WorkerGlobalScope interface: attribute crossOriginIsolated assert_true: The prototype object must have a property "crossOriginIsolated" expected true got false
     633PASS WorkerGlobalScope interface: attribute crossOriginIsolated
    634634PASS WorkerGlobalScope interface: operation btoa(DOMString)
    635635PASS WorkerGlobalScope interface: operation atob(DOMString)
     
    694694PASS WorkerGlobalScope interface: self must inherit property "origin" with the proper type
    695695PASS WorkerGlobalScope interface: self must inherit property "isSecureContext" with the proper type
    696 FAIL WorkerGlobalScope interface: self must inherit property "crossOriginIsolated" with the proper type assert_inherits: property "crossOriginIsolated" not found in prototype chain
     696PASS WorkerGlobalScope interface: self must inherit property "crossOriginIsolated" with the proper type
    697697PASS WorkerGlobalScope interface: self must inherit property "btoa(DOMString)" with the proper type
    698698PASS WorkerGlobalScope interface: calling btoa(DOMString) on self with too few arguments must throw TypeError
  • trunk/LayoutTests/platform/ios-wk2/TestExpectations

    r280503 r280504  
    19931993webkit.org/b/228114 imported/w3c/web-platform-tests/fetch/content-type/script.window.html [ Pass Failure ]
    19941994
    1995 webkit.org/b/228127 imported/w3c/web-platform-tests/html/cross-origin-opener-policy/resource-popup.https.html [ Pass Failure ]
    1996 
    19971995webkit.org/b/228168 imported/w3c/web-platform-tests/webmessaging/broadcastchannel/blobs.html [ Pass Failure ]
    19981996
  • trunk/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt

    r280310 r280504  
    44754475PASS Window interface: attribute origin
    44764476PASS Window interface: attribute isSecureContext
    4477 FAIL Window interface: attribute crossOriginIsolated assert_own_property: The global object must have a property "crossOriginIsolated" expected property "crossOriginIsolated" missing
     4477PASS Window interface: attribute crossOriginIsolated
    44784478PASS Window interface: operation btoa(DOMString)
    44794479PASS Window interface: operation atob(DOMString)
     
    46254625PASS Window interface: window must inherit property "origin" with the proper type
    46264626PASS Window interface: window must inherit property "isSecureContext" with the proper type
    4627 FAIL Window interface: window must inherit property "crossOriginIsolated" with the proper type assert_own_property: expected property "crossOriginIsolated" missing
     4627PASS Window interface: window must inherit property "crossOriginIsolated" with the proper type
    46284628PASS Window interface: window must inherit property "btoa(DOMString)" with the proper type
    46294629PASS Window interface: calling btoa(DOMString) on window with too few arguments must throw TypeError
  • trunk/LayoutTests/platform/mac-wk1/TestExpectations

    r280467 r280504  
    13741374webkit.org/b/228561 http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html [ Pass Timeout ]
    13751375
    1376 webkit.org/b/228626 imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox.https.html [ Pass Failure ]
    1377 
    13781376# webkit.org/b/228200 Adjusting test expectations for Monterey on Open Source <rdar://80345048>:
    13791377[ Monterey ] webrtc/h264-high.html [ Failure ]
  • trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt

    r280310 r280504  
    44854485PASS Window interface: attribute origin
    44864486PASS Window interface: attribute isSecureContext
    4487 FAIL Window interface: attribute crossOriginIsolated assert_own_property: The global object must have a property "crossOriginIsolated" expected property "crossOriginIsolated" missing
     4487PASS Window interface: attribute crossOriginIsolated
    44884488PASS Window interface: operation btoa(DOMString)
    44894489PASS Window interface: operation atob(DOMString)
     
    46354635PASS Window interface: window must inherit property "origin" with the proper type
    46364636PASS Window interface: window must inherit property "isSecureContext" with the proper type
    4637 FAIL Window interface: window must inherit property "crossOriginIsolated" with the proper type assert_own_property: expected property "crossOriginIsolated" missing
     4637PASS Window interface: window must inherit property "crossOriginIsolated" with the proper type
    46384638PASS Window interface: window must inherit property "btoa(DOMString)" with the proper type
    46394639PASS Window interface: calling btoa(DOMString) on window with too few arguments must throw TypeError
  • trunk/LayoutTests/platform/mac-wk2/TestExpectations

    r280500 r280504  
    15351535webkit.org/b/228591 fast/scrolling/mac/programmatic-scroll-overrides-rubberband.html [ Pass Failure ]
    15361536
    1537 webkit.org/b/228644 [ BigSur Release arm64 ] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html [ Pass Failure ]
    1538 
    15391537# webkit.org/b/228200 Adjusting test expectations for Monterey on Open Source <rdar://80640850>:
    15401538[ Monterey ] imported/w3c/web-platform-tests/content-security-policy/inside-worker/serviceworker-report-only.https.sub.html [ Failure ]
  • trunk/LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt

    r280310 r280504  
    44854485PASS Window interface: attribute origin
    44864486PASS Window interface: attribute isSecureContext
    4487 FAIL Window interface: attribute crossOriginIsolated assert_own_property: The global object must have a property "crossOriginIsolated" expected property "crossOriginIsolated" missing
     4487PASS Window interface: attribute crossOriginIsolated
    44884488PASS Window interface: operation btoa(DOMString)
    44894489PASS Window interface: operation atob(DOMString)
     
    46354635PASS Window interface: window must inherit property "origin" with the proper type
    46364636PASS Window interface: window must inherit property "isSecureContext" with the proper type
    4637 FAIL Window interface: window must inherit property "crossOriginIsolated" with the proper type assert_own_property: expected property "crossOriginIsolated" missing
     4637PASS Window interface: window must inherit property "crossOriginIsolated" with the proper type
    46384638PASS Window interface: window must inherit property "btoa(DOMString)" with the proper type
    46394639PASS Window interface: calling btoa(DOMString) on window with too few arguments must throw TypeError
  • trunk/LayoutTests/platform/mac/TestExpectations

    r280480 r280504  
    22972297webkit.org/b/214574 svg/animations/smil-leak-list-property-instances.svg [ Pass Failure ]
    22982298
    2299 webkit.org/b/228127 imported/w3c/web-platform-tests/html/cross-origin-opener-policy/resource-popup.https.html [ Pass Failure ]
    2300 
    23012299webkit.org/b/228168 imported/w3c/web-platform-tests/webmessaging/broadcastchannel/blobs.html [ Pass Failure ]
    23022300
     
    23192317webkit.org/b/228640 [ Debug ] imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/dedicated-worker.tentative.https.html [ Pass Failure ]
    23202318
    2321 webkit.org/b/228642 imported/w3c/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html [ Pass Failure ]
    2322 
    2323 webkit.org/b/228197 [ BigSur+ ] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/header-parsing.https.html [ Pass Failure ]
    2324 
    23252319webkit.org/b/228396 fast/speechsynthesis/speech-synthesis-speak-empty-string.html [ Pass Failure ]
    23262320
  • trunk/Source/WTF/ChangeLog

    r280467 r280504  
     12021-07-30  Chris Dumez  <cdumez@apple.com>
     2
     3        Add initial support for 'Cross-Origin-Opener-Policy' HTTP header
     4        https://bugs.webkit.org/show_bug.cgi?id=192193
     5        <rdar://problem/42013525>
     6
     7        Reviewed by Geoff Garen.
     8
     9        Add experimental feature flag for 'Cross-Origin-Opener-Policy' HTTP header
     10        support.
     11
     12        * Scripts/Preferences/WebPreferencesExperimental.yaml:
     13
    1142021-07-29  Myles C. Maxfield  <mmaxfield@apple.com>
    215
  • trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml

    r280467 r280504  
    322322      default: false
    323323
     324CrossOriginOpenerPolicyEnabled:
     325  type: bool
     326  humanReadableName: "Cross-Origin-Opener-Policy (COOP) header"
     327  humanReadableDescription: "Support for Cross-Origin-Opener-Policy (COOP) header"
     328  defaultValue:
     329    WebKitLegacy:
     330      default: false
     331    WebKit:
     332      default: false
     333    WebCore:
     334      default: false
     335
    324336DialogElementEnabled:
    325337  type: bool
  • trunk/Source/WebCore/ChangeLog

    r280502 r280504  
     12021-07-30  Chris Dumez  <cdumez@apple.com>
     2
     3        Add initial support for 'Cross-Origin-Opener-Policy' HTTP header
     4        https://bugs.webkit.org/show_bug.cgi?id=192193
     5        <rdar://problem/42013525>
     6
     7        Reviewed by Geoff Garen.
     8
     9        Add initial support for 'Cross-Origin-Opener-Policy' HTTP header:
     10        - https://html.spec.whatwg.org/multipage/origin.html#cross-origin-opener-policy-value
     11
     12        Support is complete enough to pass most WPT tests with the exception of:
     13        - The ones involving blob. Support for Blob does not seem trivial so I will address
     14          separately (https://github.com/whatwg/html/issues/5198).
     15        - The ones that requires reporting COOP enforcement as this is not supported yet.
     16          This is a fairly large task so I'll handle separately.
     17        - The ones that involve Cross-Origin-Embedder-Policy (COEP) and this is not yet
     18          supported.
     19
     20        I tried to stay as close as possible to the HTML specification as possible in terms
     21        of structuring and naming. I also have code comments to link to the relevant HTML
     22        spec sections.
     23
     24        Note that as it stands, we do not currently swap process based on COOP header. We
     25        merely do isolation of the new browsing context at JS level for now. At some point,
     26        we'll want to actually process-swap, once we support COEP and we want to re-enable
     27        some Web APIs such as SharedArrayBuffer.
     28
     29        No new tests, covered by web-plaform-tests/html/cross-origin-opener-policy.
     30
     31        * Headers.cmake:
     32        * Sources.txt:
     33        * WebCore.xcodeproj/project.pbxproj:
     34        * bindings/js/WebCoreBuiltinNames.h:
     35        * dom/Document.cpp:
     36        (WebCore::Document::initSecurityContext):
     37        (WebCore::Document::shouldForceNoOpenerBasedOnCOOP const):
     38        (WebCore::Document::crossOriginOpenerPolicy const):
     39        (WebCore::Document::setCrossOriginOpenerPolicy):
     40        * dom/Document.h:
     41        (WebCore::Document::isSameOriginAsTopDocument const):
     42        * dom/SecurityContext.cpp:
     43        (WebCore::SecurityContext::enforceSandboxFlags):
     44        * dom/SecurityContext.h:
     45        (WebCore::SecurityContext::creationSandboxFlags const):
     46        * inspector/InspectorFrontendClientLocal.cpp:
     47        (WebCore::InspectorFrontendClientLocal::openURLExternally):
     48        * loader/CrossOriginEmbedderPolicy.cpp: Copied from Source/WebCore/page/AbstractFrame.cpp.
     49        (WebCore::obtainCrossOriginEmbedderPolicy):
     50        * loader/CrossOriginEmbedderPolicy.h: Copied from Source/WebCore/page/AbstractFrame.cpp.
     51        * loader/CrossOriginOpenerPolicy.cpp: Added.
     52        (WebCore::obtainCrossOriginOpenerPolicy):
     53        * loader/CrossOriginOpenerPolicy.h: Copied from Source/WebCore/page/AbstractFrame.h.
     54        * loader/DocumentLoader.cpp:
     55        (WebCore::DocumentLoader::willSendRequest):
     56        (WebCore::checkIfCOOPValuesRequireBrowsingContextGroupSwitch):
     57        (WebCore::computeResponseOriginAndCOOP):
     58        (WebCore::DocumentLoader::doCrossOriginOpenerHandlingOfResponse):
     59        (WebCore::DocumentLoader::enforceResponseCrossOriginOpenerPolicy):
     60        (WebCore::DocumentLoader::responseReceived):
     61        (WebCore::DocumentLoader::maybeLoadEmpty):
     62        * loader/DocumentLoader.h:
     63        (WebCore::DocumentLoader::crossOriginOpenerPolicy const):
     64        * loader/DocumentWriter.cpp:
     65        (WebCore::DocumentWriter::begin):
     66        * loader/FrameLoader.cpp:
     67        (WebCore::FrameLoader::didBeginDocument):
     68        (WebCore::FrameLoader::setOpener):
     69        (WebCore::FrameLoader::loadURL):
     70        (WebCore::FrameLoader::loadPostRequest):
     71        (WebCore::createWindow):
     72        (WebCore::FrameLoader::switchBrowsingContextsGroup):
     73        * loader/FrameLoader.h:
     74        * loader/NavigationAction.cpp:
     75        * loader/NavigationAction.h:
     76        (WebCore::NavigationAction::Requester::securityOrigin const):
     77        (WebCore::NavigationAction::Requester::topOrigin const):
     78        (WebCore::NavigationAction::Requester::crossOriginOpenerPolicy const):
     79        * page/AbstractFrame.cpp:
     80        (WebCore::AbstractFrame::resetWindowProxy):
     81        * page/AbstractFrame.h:
     82        * page/DOMWindow.cpp:
     83        (WebCore::DOMWindow::crossOriginIsolated const):
     84        (WebCore::DOMWindow::createWindow):
     85        * page/DOMWindow.h:
     86        * page/Frame.cpp:
     87        (WebCore::Frame::resetScript):
     88        * page/Frame.h:
     89        * page/Page.h:
     90        (WebCore::Page::setOpenedByDOMWithOpener):
     91        * page/WindowOrWorkerGlobalScope.idl:
     92        * page/csp/ContentSecurityPolicy.cpp:
     93        (WebCore::ContentSecurityPolicy::applyPolicyToScriptExecutionContext):
     94        * platform/network/HTTPHeaderNames.in:
     95        * platform/network/HTTPParsers.cpp:
     96        (WebCore::parseStructuredFieldValue):
     97        * platform/network/HTTPParsers.h:
     98        * platform/network/ResourceResponseBase.cpp:
     99        (WebCore::isSafeRedirectionResponseHeader):
     100        * workers/WorkerGlobalScope.cpp:
     101        (WebCore::WorkerGlobalScope::crossOriginIsolated const):
     102        * workers/WorkerGlobalScope.h:
     103
    11042021-07-30  Chris Dumez  <cdumez@apple.com>
    2105
  • trunk/Source/WebCore/Headers.cmake

    r280416 r280504  
    777777    loader/CookieJar.h
    778778    loader/CrossOriginAccessControl.h
     779    loader/CrossOriginEmbedderPolicy.h
     780    loader/CrossOriginOpenerPolicy.h
    779781    loader/CrossOriginPreflightResultCache.h
    780782    loader/CustomHeaderFields.h
  • trunk/Source/WebCore/Sources.txt

    r280492 r280504  
    14901490loader/CookieJar.cpp
    14911491loader/CrossOriginAccessControl.cpp
     1492loader/CrossOriginEmbedderPolicy.cpp
     1493loader/CrossOriginOpenerPolicy.cpp
    14921494loader/CrossOriginPreflightChecker.cpp
    14931495loader/CrossOriginPreflightResultCache.cpp
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r280492 r280504  
    12821282                466ED8D31EDE0144005E43F6 /* JSDOMRectList.h in Headers */ = {isa = PBXBuildFile; fileRef = 466ED8D21EDE0135005E43F6 /* JSDOMRectList.h */; };
    12831283                4671E0661D67A59600C6B497 /* CanvasPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 4671E0641D67A57B00C6B497 /* CanvasPath.h */; };
     1284                4672AA9826B0943300E6EC38 /* CrossOriginEmbedderPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 4672AA9626B0942100E6EC38 /* CrossOriginEmbedderPolicy.h */; settings = {ATTRIBUTES = (Private, ); }; };
     1285                4672AA9926B0943F00E6EC38 /* CrossOriginOpenerPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 4672AA9726B0942100E6EC38 /* CrossOriginOpenerPolicy.h */; settings = {ATTRIBUTES = (Private, ); }; };
    12841286                467302021C4EFE7800BCB357 /* IgnoreOpensDuringUnloadCountIncrementer.h in Headers */ = {isa = PBXBuildFile; fileRef = 467302011C4EFE6600BCB357 /* IgnoreOpensDuringUnloadCountIncrementer.h */; };
    12851287                4682D2001F79783000C863DB /* StoredCredentialsPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 4682D1FF1F79782300C863DB /* StoredCredentialsPolicy.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    82808282                4672413A1FA24B140088BD6D /* SWContextManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SWContextManager.cpp; sourceTree = "<group>"; };
    82818283                4672413B1FA24B140088BD6D /* SWContextManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SWContextManager.h; sourceTree = "<group>"; };
     8284                4672AA9426B0942000E6EC38 /* CrossOriginOpenerPolicy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CrossOriginOpenerPolicy.cpp; sourceTree = "<group>"; };
     8285                4672AA9526B0942000E6EC38 /* CrossOriginEmbedderPolicy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CrossOriginEmbedderPolicy.cpp; sourceTree = "<group>"; };
     8286                4672AA9626B0942100E6EC38 /* CrossOriginEmbedderPolicy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CrossOriginEmbedderPolicy.h; sourceTree = "<group>"; };
     8287                4672AA9726B0942100E6EC38 /* CrossOriginOpenerPolicy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CrossOriginOpenerPolicy.h; sourceTree = "<group>"; };
    82828288                467302011C4EFE6600BCB357 /* IgnoreOpensDuringUnloadCountIncrementer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IgnoreOpensDuringUnloadCountIncrementer.h; sourceTree = "<group>"; };
    82838289                4682D1FF1F79782300C863DB /* StoredCredentialsPolicy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StoredCredentialsPolicy.h; sourceTree = "<group>"; };
     
    2727127277                                E1C416160F6563180092D2FB /* CrossOriginAccessControl.cpp */,
    2727227278                                E1C416110F6562FD0092D2FB /* CrossOriginAccessControl.h */,
     27279                                4672AA9526B0942000E6EC38 /* CrossOriginEmbedderPolicy.cpp */,
     27280                                4672AA9626B0942100E6EC38 /* CrossOriginEmbedderPolicy.h */,
     27281                                4672AA9426B0942000E6EC38 /* CrossOriginOpenerPolicy.cpp */,
     27282                                4672AA9726B0942100E6EC38 /* CrossOriginOpenerPolicy.h */,
    2727327283                                41ABE6791D0580D5006D862D /* CrossOriginPreflightChecker.cpp */,
    2727427284                                41ABE67A1D0580D5006D862D /* CrossOriginPreflightChecker.h */,
     
    3136831378                                2D481F02146B5C5500AA7834 /* CrossfadeGeneratedImage.h in Headers */,
    3136931379                                E1C416120F6562FD0092D2FB /* CrossOriginAccessControl.h in Headers */,
     31380                                4672AA9826B0943300E6EC38 /* CrossOriginEmbedderPolicy.h in Headers */,
     31381                                4672AA9926B0943F00E6EC38 /* CrossOriginOpenerPolicy.h in Headers */,
    3137031382                                41ABE67B1D0580DB006D862D /* CrossOriginPreflightChecker.h in Headers */,
    3137131383                                E1C415DA0F655D6F0092D2FB /* CrossOriginPreflightResultCache.h in Headers */,
  • trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h

    r280467 r280504  
    319319    macro(createImageBitmap) \
    320320    macro(createReadableStream) \
     321    macro(crossOriginIsolated) \
    321322    macro(customElements) \
    322323    macro(decode) \
  • trunk/Source/WebCore/dom/Document.cpp

    r280498 r280504  
    62576257    contentSecurityPolicy()->updateSourceSelf(ownerFrame->document()->securityOrigin());
    62586258
     6259    // https://html.spec.whatwg.org/multipage/browsers.html#creating-a-new-browsing-context (Step 12)
     6260    // If creator is non-null and creator's origin is same origin with creator's relevant settings object's top-level origin, then set coop
     6261    // to creator's browsing context's top-level browsing context's active document's cross-origin opener policy.
     6262    if (m_frame->isMainFrame() && openerFrame && openerFrame->document() && openerFrame->document()->isSameOriginAsTopDocument())
     6263        setCrossOriginOpenerPolicy(openerFrame->document()->crossOriginOpenerPolicy());
     6264
    62596265    // Per <http://www.w3.org/TR/upgrade-insecure-requests/>, new browsing contexts must inherit from an
    62606266    // ongoing set of upgraded requests. When opening a new browsing context, we need to capture its
     
    63016307    else
    63026308        contentSecurityPolicy()->copyStateFrom(parentFrame->document()->contentSecurityPolicy());
     6309}
     6310
     6311// https://html.spec.whatwg.org/#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name (Step 8.2)
     6312bool Document::shouldForceNoOpenerBasedOnCOOP() const
     6313{
     6314    if (!settings().crossOriginOpenerPolicyEnabled())
     6315        return false;
     6316
     6317    auto COOPValue = topDocument().crossOriginOpenerPolicy().value;
     6318    return (COOPValue == CrossOriginOpenerPolicyValue::SameOrigin || COOPValue == CrossOriginOpenerPolicyValue::SameOriginPlusCOEP) && !isSameOriginAsTopDocument();
    63036319}
    63046320
     
    88408856}
    88418857
     8858const CrossOriginOpenerPolicy& Document::crossOriginOpenerPolicy() const
     8859{
     8860    if (this != &topDocument())
     8861        return topDocument().crossOriginOpenerPolicy();
     8862    return m_crossOriginOpenerPolicy;
     8863}
     8864
     8865void Document::setCrossOriginOpenerPolicy(const CrossOriginOpenerPolicy& policy)
     8866{
     8867    m_crossOriginOpenerPolicy = policy;
     8868}
     8869
    88428870void Document::prepareCanvasesForDisplayIfNeeded()
    88438871{
  • trunk/Source/WebCore/dom/Document.h

    r280467 r280504  
    3232#include "Color.h"
    3333#include "ContainerNode.h"
     34#include "CrossOriginOpenerPolicy.h"
    3435#include "DisabledAdaptations.h"
    3536#include "DocumentEventTiming.h"
     
    13501351    SecurityOrigin& topOrigin() const final { return topDocument().securityOrigin(); }
    13511352
     1353    bool isSameOriginAsTopDocument() const { return securityOrigin().isSameOriginAs(topOrigin()); }
     1354    bool shouldForceNoOpenerBasedOnCOOP() const;
     1355
     1356    const CrossOriginOpenerPolicy& crossOriginOpenerPolicy() const;
     1357    void setCrossOriginOpenerPolicy(const CrossOriginOpenerPolicy&);
     1358
    13521359    void willLoadScriptElement(const URL&);
    13531360    void willLoadFrameElement(const URL&);
     
    20482055    std::optional<ReferrerPolicy> m_referrerPolicy;
    20492056    ReadyState m_readyState { Complete };
     2057    CrossOriginOpenerPolicy m_crossOriginOpenerPolicy;
    20502058
    20512059    MutationObserverOptions m_mutationObserverTypes { 0 };
  • trunk/Source/WebCore/dom/SecurityContext.cpp

    r277967 r280504  
    7070}
    7171
    72 void SecurityContext::enforceSandboxFlags(SandboxFlags mask)
     72void SecurityContext::enforceSandboxFlags(SandboxFlags mask, SandboxFlagsSource source)
    7373{
     74    if (source != SandboxFlagsSource::CSP)
     75        m_creationSandboxFlags |= mask;
    7476    m_sandboxFlags |= mask;
    7577
  • trunk/Source/WebCore/dom/SecurityContext.h

    r271642 r280504  
    6363class SecurityContext {
    6464public:
     65    // https://html.spec.whatwg.org/multipage/origin.html#determining-the-creation-sandboxing-flags
     66    SandboxFlags creationSandboxFlags() const { return m_creationSandboxFlags; }
     67
    6568    SandboxFlags sandboxFlags() const { return m_sandboxFlags; }
    6669    ContentSecurityPolicy* contentSecurityPolicy() { return m_contentSecurityPolicy.get(); }
     
    6871    bool isSecureTransitionTo(const URL&) const;
    6972
    70     void enforceSandboxFlags(SandboxFlags mask);
     73    enum class SandboxFlagsSource : bool { CSP, Other };
     74    void enforceSandboxFlags(SandboxFlags, SandboxFlagsSource = SandboxFlagsSource::Other);
     75
    7176    bool isSandboxed(SandboxFlags mask) const { return m_sandboxFlags & mask; }
    7277
     
    122127
    123128private:
     129    void addSandboxFlags(SandboxFlags);
     130
    124131    RefPtr<SecurityOriginPolicy> m_securityOriginPolicy;
    125132    std::unique_ptr<ContentSecurityPolicy> m_contentSecurityPolicy;
     133    SandboxFlags m_creationSandboxFlags { SandboxNone };
    126134    SandboxFlags m_sandboxFlags { SandboxNone };
    127135    OptionSet<MixedContentType> m_mixedContentTypes;
  • trunk/Source/WebCore/inspector/InspectorFrontendClientLocal.cpp

    r278253 r280504  
    271271
    272272    bool created;
    273     auto frame = WebCore::createWindow(mainFrame, mainFrame, WTFMove(frameLoadRequest), { }, created);
     273    WindowFeatures features;
     274    auto frame = WebCore::createWindow(mainFrame, mainFrame, WTFMove(frameLoadRequest), features, created);
    274275    if (!frame)
    275276        return;
  • trunk/Source/WebCore/loader/CrossOriginEmbedderPolicy.cpp

    r280503 r280504  
    11/*
    2  * Copyright (C) 2018 Apple Inc. All rights reserved.
     2 * Copyright (C) 2021 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2525
    2626#include "config.h"
    27 #include "AbstractFrame.h"
     27#include "CrossOriginEmbedderPolicy.h"
    2828
    29 #include "WindowProxy.h"
     29#include "HTTPHeaderNames.h"
     30#include "HTTPParsers.h"
     31#include "ScriptExecutionContext.h"
    3032
    3133namespace WebCore {
    3234
    33 AbstractFrame::AbstractFrame()
    34     : m_windowProxy(WindowProxy::create(*this))
     35// https://html.spec.whatwg.org/multipage/origin.html#obtain-an-embedder-policy
     36CrossOriginEmbedderPolicy obtainCrossOriginEmbedderPolicy(const ResourceResponse& response, const ScriptExecutionContext& context)
    3537{
    36 }
     38    auto parseCOEPHeader = [&response](HTTPHeaderName headerName, auto& value, auto& reportingEndpoint) {
     39        auto coepParsingResult = parseStructuredFieldValue(response.httpHeaderField(headerName));
     40        if (coepParsingResult && coepParsingResult->first == "require-corp") {
     41            value = CrossOriginEmbedderPolicyValue::RequireCORP;
     42            reportingEndpoint = coepParsingResult->second.get("report-to"_s);
     43        }
     44    };
    3745
    38 AbstractFrame::~AbstractFrame()
    39 {
    40     m_windowProxy->detachFromFrame();
     46    CrossOriginEmbedderPolicy policy;
     47    // FIXME: about:blank should be marked as secure as per https://w3c.github.io/webappsec-secure-contexts/#potentially-trustworthy-url.
     48    if (!context.isSecureContext() && context.url() != aboutBlankURL())
     49        return policy;
     50
     51    parseCOEPHeader(HTTPHeaderName::CrossOriginEmbedderPolicy, policy.value, policy.reportingEndpoint);
     52    parseCOEPHeader(HTTPHeaderName::CrossOriginEmbedderPolicyReportOnly, policy.reportOnlyValue, policy.reportOnlyReportingEndpoint);
     53    return policy;
    4154}
    4255
  • trunk/Source/WebCore/loader/CrossOriginEmbedderPolicy.h

    r280503 r280504  
    11/*
    2  * Copyright (C) 2018 Apple Inc. All rights reserved.
     2 * Copyright (C) 2021 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
    26 #include "config.h"
    27 #include "AbstractFrame.h"
     26#pragma once
    2827
    29 #include "WindowProxy.h"
     28#include <wtf/text/WTFString.h>
    3029
    3130namespace WebCore {
    3231
    33 AbstractFrame::AbstractFrame()
    34     : m_windowProxy(WindowProxy::create(*this))
    35 {
    36 }
     32class ResourceResponse;
     33class ScriptExecutionContext;
    3734
    38 AbstractFrame::~AbstractFrame()
    39 {
    40     m_windowProxy->detachFromFrame();
    41 }
     35// https://html.spec.whatwg.org/multipage/origin.html#embedder-policy-value
     36enum class CrossOriginEmbedderPolicyValue : bool {
     37    UnsafeNone,
     38    RequireCORP
     39};
     40
     41// https://html.spec.whatwg.org/multipage/origin.html#embedder-policy
     42struct CrossOriginEmbedderPolicy {
     43    CrossOriginEmbedderPolicyValue value { CrossOriginEmbedderPolicyValue::UnsafeNone };
     44    String reportingEndpoint;
     45    CrossOriginEmbedderPolicyValue reportOnlyValue { CrossOriginEmbedderPolicyValue::UnsafeNone };
     46    String reportOnlyReportingEndpoint;
     47};
     48
     49CrossOriginEmbedderPolicy obtainCrossOriginEmbedderPolicy(const ResourceResponse&, const ScriptExecutionContext&);
    4250
    4351} // namespace WebCore
  • trunk/Source/WebCore/loader/CrossOriginOpenerPolicy.h

    r280503 r280504  
    11/*
    2  * Copyright (C) 2018 Apple Inc. All rights reserved.
     2 * Copyright (C) 2021 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2626#pragma once
    2727
    28 #include <wtf/Ref.h>
    29 #include <wtf/ThreadSafeRefCounted.h>
    30 #include <wtf/WeakPtr.h>
     28#include "SecurityOrigin.h"
     29#include <wtf/URL.h>
     30#include <wtf/text/WTFString.h>
    3131
    3232namespace WebCore {
    3333
    34 class AbstractDOMWindow;
    35 class WindowProxy;
     34class ResourceResponse;
     35class ScriptExecutionContext;
    3636
    37 // FIXME: Rename Frame to LocalFrame and AbstractFrame to Frame.
    38 class AbstractFrame : public ThreadSafeRefCounted<AbstractFrame, WTF::DestructionThread::Main>, public CanMakeWeakPtr<AbstractFrame> {
    39 public:
    40     virtual ~AbstractFrame();
    41 
    42     virtual bool isLocalFrame() const = 0;
    43     virtual bool isRemoteFrame() const = 0;
    44 
    45     WindowProxy& windowProxy() { return m_windowProxy; }
    46     const WindowProxy& windowProxy() const { return m_windowProxy; }
    47 
    48     AbstractDOMWindow* window() const { return virtualWindow(); }
    49 
    50 protected:
    51     AbstractFrame();
    52 
    53 private:
    54     virtual AbstractDOMWindow* virtualWindow() const = 0;
    55 
    56     Ref<WindowProxy> m_windowProxy;
     37// https://html.spec.whatwg.org/multipage/origin.html#cross-origin-opener-policy-value
     38enum class CrossOriginOpenerPolicyValue : uint8_t {
     39    UnsafeNone,
     40    SameOrigin,
     41    SameOriginPlusCOEP,
     42    SameOriginAllowPopups
    5743};
    5844
     45// https://html.spec.whatwg.org/multipage/origin.html#cross-origin-opener-policy
     46struct CrossOriginOpenerPolicy {
     47    CrossOriginOpenerPolicyValue value { CrossOriginOpenerPolicyValue::UnsafeNone };
     48    String reportingEndpoint;
     49    CrossOriginOpenerPolicyValue reportOnlyValue { CrossOriginOpenerPolicyValue::UnsafeNone };
     50    String reportOnlyReportingEndpoint;
     51};
     52
     53// https://html.spec.whatwg.org/multipage/origin.html#coop-enforcement-result
     54struct CrossOriginOpenerPolicyEnforcementResult {
     55    bool needsBrowsingContextGroupSwitch { false };
     56    bool needsBrowsingContextGroupSwitchDueToReportOnly { false };
     57    URL url;
     58    Ref<SecurityOrigin> currentOrigin;
     59    CrossOriginOpenerPolicy crossOriginOpenerPolicy;
     60    bool isCurrentContextNavigationSource { true };
     61};
     62
     63CrossOriginOpenerPolicy obtainCrossOriginOpenerPolicy(const ResourceResponse&, const ScriptExecutionContext&);
     64
    5965} // namespace WebCore
  • trunk/Source/WebCore/loader/DocumentLoader.cpp

    r278779 r280504  
    4040#include "ContentRuleListResults.h"
    4141#include "ContentSecurityPolicy.h"
     42#include "CrossOriginOpenerPolicy.h"
    4243#include "CustomHeaderFields.h"
    4344#include "DOMWindow.h"
     
    695696    }
    696697
     698    if (didReceiveRedirectResponse && !doCrossOriginOpenerHandlingOfResponse(redirectResponse))
     699        return;
     700
    697701    if (!newRequest.url().host().isEmpty() && SecurityOrigin::shouldIgnoreHost(newRequest.url())) {
    698702        auto url = newRequest.url();
     
    732736    RELEASE_ASSERT(!isBackForwardLoadType(policyChecker.loadType()) || frameLoader()->history().provisionalItem());
    733737    policyChecker.checkNavigationPolicy(WTFMove(newRequest), redirectResponse, WTFMove(navigationPolicyCompletionHandler));
     738}
     739
     740// https://html.spec.whatwg.org/multipage/origin.html#check-browsing-context-group-switch-coop-value
     741static bool checkIfCOOPValuesRequireBrowsingContextGroupSwitch(bool isInitialAboutBlank, CrossOriginOpenerPolicyValue activeDocumentCOOPValue, const SecurityOrigin& activeDocumentNavigationOrigin, CrossOriginOpenerPolicyValue responseCOOPValue, const SecurityOrigin& responseOrigin)
     742{
     743    // If the result of matching activeDocumentCOOPValue, activeDocumentNavigationOrigin, responseCOOPValue, and responseOrigin is true, return false.
     744    // https://html.spec.whatwg.org/multipage/origin.html#matching-coop
     745    if (activeDocumentCOOPValue == CrossOriginOpenerPolicyValue::UnsafeNone && responseCOOPValue == CrossOriginOpenerPolicyValue::UnsafeNone)
     746        return false;
     747    if (activeDocumentCOOPValue == responseCOOPValue && activeDocumentNavigationOrigin.isSameOriginAs(responseOrigin))
     748        return false;
     749
     750    // If all of the following are true:
     751    // - isInitialAboutBlank,
     752    // - activeDocumentCOOPValue's value is "same-origin-allow-popups".
     753    // - responseCOOPValue is "unsafe-none",
     754    // then return false.
     755    if (isInitialAboutBlank && activeDocumentCOOPValue == CrossOriginOpenerPolicyValue::SameOriginAllowPopups && responseCOOPValue == CrossOriginOpenerPolicyValue::UnsafeNone)
     756        return false;
     757
     758    return true;
     759}
     760
     761static std::tuple<Ref<SecurityOrigin>, CrossOriginOpenerPolicy> computeResponseOriginAndCOOP(const ResourceResponse& response, const Document& document, const std::optional<NavigationAction::Requester>& requester)
     762{
     763    // Non-initial empty documents (about:blank) should inherit their cross-origin-opener-policy from the navigation's initiator top level document,
     764    // if the initiator and its top level document are same-origin, or default (unsafe-none) otherwise.
     765    // https://github.com/whatwg/html/issues/6913
     766    if (SecurityPolicy::shouldInheritSecurityOriginFromOwner(response.url()) && requester)
     767        return std::make_tuple(makeRef(requester->securityOrigin()), requester->securityOrigin().isSameOriginAs(requester->topOrigin()) ? requester->crossOriginOpenerPolicy() : CrossOriginOpenerPolicy { });
     768
     769    return std::make_tuple(SecurityOrigin::create(response.url()), obtainCrossOriginOpenerPolicy(response, document));
     770}
     771
     772// https://html.spec.whatwg.org/multipage/browsing-the-web.html#process-a-navigate-fetch (Step 12.5.6)
     773bool DocumentLoader::doCrossOriginOpenerHandlingOfResponse(const ResourceResponse& response)
     774{
     775    // COOP only applies to top-level browsing contexts.
     776    if (!m_frame->isMainFrame())
     777        return true;
     778
     779    if (!m_frame->document() || !m_frame->document()->settings().crossOriginOpenerPolicyEnabled())
     780        return true;
     781
     782    auto [responseOrigin, responseCOOP] = computeResponseOriginAndCOOP(response, *m_frame->document(), m_triggeringAction.requester());
     783
     784    // https://html.spec.whatwg.org/multipage/browsing-the-web.html#process-a-navigate-fetch (Step 12.5.6.2)
     785    // If sandboxFlags is not empty and responseCOOP's value is not "unsafe-none", then set response to an appropriate network error and break.
     786    if (responseCOOP.value != CrossOriginOpenerPolicyValue::UnsafeNone && m_frame->document()->creationSandboxFlags() != SandboxNone) {
     787        cancelMainResourceLoad(frameLoader()->cancelledError(m_request));
     788        return false;
     789    }
     790
     791    m_currentCoopEnforcementResult = enforceResponseCrossOriginOpenerPolicy(response.url(), responseOrigin, responseCOOP);
     792    if (m_currentCoopEnforcementResult->needsBrowsingContextGroupSwitch)
     793        frameLoader()->switchBrowsingContextsGroup();
     794
     795    return true;
     796}
     797
     798// https://html.spec.whatwg.org/multipage/origin.html#coop-enforce
     799CrossOriginOpenerPolicyEnforcementResult DocumentLoader::enforceResponseCrossOriginOpenerPolicy(const URL& responseURL, SecurityOrigin& responseOrigin, const CrossOriginOpenerPolicy& responseCOOP)
     800{
     801    ASSERT(m_frame->isMainFrame());
     802    ASSERT(m_frame->document());
     803    ASSERT(m_frame->document()->settings().crossOriginOpenerPolicyEnabled());
     804
     805    if (!m_currentCoopEnforcementResult) {
     806        auto requester = m_triggeringAction.requester();
     807        bool currentContextIsSource = requester && m_frame->document()->securityOrigin().isSameOriginAs(requester->securityOrigin());
     808        m_currentCoopEnforcementResult = CrossOriginOpenerPolicyEnforcementResult {
     809            false,
     810            false,
     811            m_frame->document()->url(),
     812            m_frame->document()->securityOrigin(),
     813            m_frame->document()->crossOriginOpenerPolicy(),
     814            currentContextIsSource,
     815        };
     816    }
     817
     818    CrossOriginOpenerPolicyEnforcementResult newCOOPEnforcementResult = {
     819        m_currentCoopEnforcementResult->needsBrowsingContextGroupSwitch,
     820        m_currentCoopEnforcementResult->needsBrowsingContextGroupSwitchDueToReportOnly,
     821        responseURL,
     822        responseOrigin,
     823        responseCOOP,
     824        true
     825    };
     826
     827    if (checkIfCOOPValuesRequireBrowsingContextGroupSwitch(frameLoader()->stateMachine().isDisplayingInitialEmptyDocument(), m_currentCoopEnforcementResult->crossOriginOpenerPolicy.value, m_currentCoopEnforcementResult->currentOrigin, responseCOOP.value, responseOrigin))
     828        newCOOPEnforcementResult.needsBrowsingContextGroupSwitch = true;
     829
     830    return newCOOPEnforcementResult;
    734831}
    735832
     
    901998        }
    902999    }
     1000
     1001    if (!doCrossOriginOpenerHandlingOfResponse(response))
     1002        return;
    9031003
    9041004    // There is a bug in CFNetwork where callbacks can be dispatched even when loads are deferred.
     
    19082008    String mimeType = shouldLoadEmpty ? "text/html" : frameLoader()->client().generatedMIMETypeForURLScheme(m_request.url().protocol().toStringWithoutCopying());
    19092009    m_response = ResourceResponse(m_request.url(), mimeType, 0, "UTF-8"_s);
     2010
     2011    if (frameLoader()->stateMachine().committedFirstRealDocumentLoad())
     2012        doCrossOriginOpenerHandlingOfResponse(m_response);
     2013
    19102014    finishedLoading();
    19112015    return true;
  • trunk/Source/WebCore/loader/DocumentLoader.h

    r279750 r280504  
    3434#include "ContentFilterClient.h"
    3535#include "ContentSecurityPolicyClient.h"
     36#include "CrossOriginOpenerPolicy.h"
    3637#include "DeviceOrientationOrMotionPermissionState.h"
    3738#include "DocumentIdentifier.h"
     
    423424    void setLastNavigationWasAppInitiated(bool lastNavigationWasAppInitiated) { m_lastNavigationWasAppInitiated = lastNavigationWasAppInitiated; }
    424425
     426    CrossOriginOpenerPolicy crossOriginOpenerPolicy() const { return m_currentCoopEnforcementResult ? m_currentCoopEnforcementResult->crossOriginOpenerPolicy : CrossOriginOpenerPolicy { }; }
     427
    425428protected:
    426429    WEBCORE_EXPORT DocumentLoader(const ResourceRequest&, const SubstituteData&);
     
    442445#endif
    443446    void unregisterTemporaryServiceWorkerClient();
     447
     448    bool doCrossOriginOpenerHandlingOfResponse(const ResourceResponse&);
     449    CrossOriginOpenerPolicyEnforcementResult enforceResponseCrossOriginOpenerPolicy(const URL& responseURL, SecurityOrigin& responseOrigin, const CrossOriginOpenerPolicy& responseCOOP);
    444450
    445451    void loadMainResource(ResourceRequest&&);
     
    578584    Vector<ResourceResponse> m_responses;
    579585    bool m_stopRecordingResponses { false };
     586
     587    std::optional<CrossOriginOpenerPolicyEnforcementResult> m_currentCoopEnforcementResult;
    580588   
    581589    typedef HashMap<RefPtr<ResourceLoader>, RefPtr<SubstituteResource>> SubstituteResourceMap;
  • trunk/Source/WebCore/loader/DocumentWriter.cpp

    r278532 r280504  
    141141    bool shouldReuseDefaultView = m_frame->loader().stateMachine().isDisplayingInitialEmptyDocument()
    142142        && m_frame->document()->isSecureTransitionTo(url)
    143         && (!m_frame->window() || !m_frame->window()->wasWrappedWithoutInitializedSecurityOrigin());
     143        && (m_frame->window() && !m_frame->window()->wasWrappedWithoutInitializedSecurityOrigin() && m_frame->window()->mayReuseForNavigation());
    144144
    145145    // Temporarily extend the lifetime of the existing document so that FrameLoader::clear() doesn't destroy it as
  • trunk/Source/WebCore/loader/FrameLoader.cpp

    r280081 r280504  
    5050#include "ContentRuleListResults.h"
    5151#include "ContentSecurityPolicy.h"
     52#include "CrossOriginAccessControl.h"
    5253#include "DOMWindow.h"
    5354#include "DatabaseManager.h"
     
    762763                m_frame.document()->setContentLanguage(headerContentLanguage);
    763764        }
     765
     766        // https://html.spec.whatwg.org/multipage/browsing-the-web.html#initialise-the-document-object (Step 7)
     767        if (m_frame.isMainFrame())
     768            m_frame.document()->setCrossOriginOpenerPolicy(m_documentLoader->crossOriginOpenerPolicy());
    764769    }
    765770
     
    10431048        opener->loader().m_openedFrames.add(&m_frame);
    10441049        if (auto* page = m_frame.page())
    1045             page->setOpenedByDOMWithOpener();
     1050            page->setOpenedByDOMWithOpener(true);
    10461051    }
    10471052    m_opener = makeWeakPtr(opener);
     
    13591364    if (!targetFrame && !effectiveFrameName.isEmpty()) {
    13601365        action = action.copyWithShouldOpenExternalURLsPolicy(shouldOpenExternalURLsPolicyToApply(m_frame, frameLoadRequest));
     1366
     1367        // https://html.spec.whatwg.org/#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name (Step 8.2)
     1368        if (frameLoadRequest.requester().shouldForceNoOpenerBasedOnCOOP()) {
     1369            effectiveFrameName = "_blank"_s;
     1370            openerPolicy = NewFrameOpenerPolicy::Suppress;
     1371        }
     1372
    13611373        policyChecker().checkNewWindowPolicy(WTFMove(action), WTFMove(request), WTFMove(formState), effectiveFrameName, [this, allowNavigationToInvalidURL, openerPolicy, completionHandler = completionHandlerCaller.release()] (const ResourceRequest& request, WeakPtr<FormState>&& formState, const String& frameName, const NavigationAction& action, ShouldContinuePolicyCheck shouldContinue) mutable {
    13621374            continueLoadAfterNewWindowPolicy(request, formState.get(), frameName, action, shouldContinue, allowNavigationToInvalidURL, openerPolicy);
     
    30573069        }
    30583070
     3071        // https://html.spec.whatwg.org/#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name (Step 8.2)
     3072        if (request.requester().shouldForceNoOpenerBasedOnCOOP()) {
     3073            frameName = "_blank"_s;
     3074            openerPolicy = NewFrameOpenerPolicy::Suppress;
     3075        }
     3076
    30593077        policyChecker().checkNewWindowPolicy(WTFMove(action), WTFMove(workingResourceRequest), WTFMove(formState), frameName, [this, allowNavigationToInvalidURL, openerPolicy, completionHandler = WTFMove(completionHandler)] (const ResourceRequest& request, WeakPtr<FormState>&& formState, const String& frameName, const NavigationAction& action, ShouldContinuePolicyCheck shouldContinue) mutable {
    30603078            continueLoadAfterNewWindowPolicy(request, formState.get(), frameName, action, shouldContinue, allowNavigationToInvalidURL, openerPolicy);
     
    40644082}
    40654083
    4066 RefPtr<Frame> createWindow(Frame& openerFrame, Frame& lookupFrame, FrameLoadRequest&& request, const WindowFeatures& features, bool& created)
     4084RefPtr<Frame> createWindow(Frame& openerFrame, Frame& lookupFrame, FrameLoadRequest&& request, WindowFeatures& features, bool& created)
    40674085{
    40684086    ASSERT(!features.dialog || request.frameName().isEmpty());
     
    40834101            return frame;
    40844102        }
     4103    }
     4104
     4105    // https://html.spec.whatwg.org/#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name (Step 8.2)
     4106    if (openerFrame.document()->shouldForceNoOpenerBasedOnCOOP()) {
     4107        request.setFrameName("_blank"_s);
     4108        features.noopener = true;
    40854109    }
    40864110
     
    41864210}
    41874211
     4212// At the moment, we do not actually create a new browsing context / frame. We merely make it so that existing windowProxy for the
     4213// current browsing context lose their browsing context. We also clear properties of the frame (opener, openees, name), so that it
     4214// appears the same as a new browsing context.
     4215void FrameLoader::switchBrowsingContextsGroup()
     4216{
     4217    // Disown opener.
     4218    setOpener(nullptr);
     4219    if (auto* page = m_frame.page())
     4220        page->setOpenedByDOMWithOpener(false);
     4221
     4222    detachFromAllOpenedFrames();
     4223
     4224    m_frame.tree().clearName();
     4225
     4226    // Make sure we use fresh Window proxies. The old window proxies will keep pointing to the old window which will be frameless when
     4227    // a new window is created for this frame.
     4228    m_frame.resetScript();
     4229
     4230    // On same-origin navigation from the initial empty document, we normally reuse the window for the new document. We need to prevent
     4231    // this when we want to isolate so old window proxies will indeed start pointing to a frameless window and appear closed.
     4232    if (auto* window = m_frame.window())
     4233        window->setMayReuseForNavigation(false);
     4234}
     4235
    41884236bool FrameLoader::shouldSuppressTextInputFromEditing() const
    41894237{
  • trunk/Source/WebCore/loader/FrameLoader.h

    r279750 r280504  
    322322    void scheduleRefreshIfNeeded(Document&, const String& content);
    323323
     324    void switchBrowsingContextsGroup();
     325
    324326private:
    325327    enum FormSubmissionCacheLoadPolicy {
     
    510512// FIXME: Consider making this function part of an appropriate class (not FrameLoader)
    511513// and moving it to a more appropriate location.
    512 RefPtr<Frame> createWindow(Frame& openerFrame, Frame& lookupFrame, FrameLoadRequest&&, const WindowFeatures&, bool& created);
     514RefPtr<Frame> createWindow(Frame& openerFrame, Frame& lookupFrame, FrameLoadRequest&&, WindowFeatures&, bool& created);
    513515
    514516} // namespace WebCore
  • trunk/Source/WebCore/loader/NavigationAction.cpp

    r278253 r280504  
    4747NavigationAction::Requester::Requester(const Document& document)
    4848    : m_url { URL { document.url() } }
    49     , m_origin { makeRefPtr(document.securityOrigin()) }
     49    , m_origin { &document.securityOrigin() }
     50    , m_topOrigin { &document.topOrigin() }
     51    , m_crossOriginOpenerPolicy { document.crossOriginOpenerPolicy() }
    5052    , m_globalFrameIdentifier(createGlobalFrameIdentifier(document))
    5153{
  • trunk/Source/WebCore/loader/NavigationAction.h

    r278340 r280504  
    3030
    3131#include "BackForwardItemIdentifier.h"
     32#include "CrossOriginOpenerPolicy.h"
    3233#include "FrameLoaderTypes.h"
    3334#include "GlobalFrameIdentifier.h"
     
    6970
    7071        const URL& url() const { return m_url; }
    71         const SecurityOrigin& securityOrigin() const { return *m_origin; }
     72        SecurityOrigin& securityOrigin() const { return *m_origin; }
     73        SecurityOrigin& topOrigin() const { return *m_topOrigin; }
     74        CrossOriginOpenerPolicy crossOriginOpenerPolicy() const { return m_crossOriginOpenerPolicy; }
    7275        const GlobalFrameIdentifier& globalFrameIdentifier() const { return m_globalFrameIdentifier; }
    7376    private:
    7477        URL m_url;
    7578        RefPtr<SecurityOrigin> m_origin;
     79        RefPtr<SecurityOrigin> m_topOrigin;
     80        CrossOriginOpenerPolicy m_crossOriginOpenerPolicy;
    7681        GlobalFrameIdentifier m_globalFrameIdentifier;
    7782    };
  • trunk/Source/WebCore/page/AbstractFrame.cpp

    r231963 r280504  
    4141}
    4242
     43void AbstractFrame::resetWindowProxy()
     44{
     45    m_windowProxy->detachFromFrame();
     46    m_windowProxy = WindowProxy::create(*this);
     47}
     48
    4349} // namespace WebCore
  • trunk/Source/WebCore/page/AbstractFrame.h

    r275475 r280504  
    5151    AbstractFrame();
    5252
     53    void resetWindowProxy();
     54
    5355private:
    5456    virtual AbstractDOMWindow* virtualWindow() const = 0;
  • trunk/Source/WebCore/page/DOMWindow.cpp

    r279832 r280504  
    3939#include "ContentExtensionRule.h"
    4040#include "ContentRuleListResults.h"
     41#include "CrossOriginOpenerPolicy.h"
    4142#include "Crypto.h"
    4243#include "CustomElementRegistry.h"
     
    19201921}
    19211922
     1923bool DOMWindow::crossOriginIsolated() const
     1924{
     1925    // FIXME: Implemented this. This should return true if COOP/COEP are used and the page is allowed to use APIs
     1926    // that require cross-origin isolation (e.g. SharedArrayBuffer).
     1927    return false;
     1928}
     1929
    19221930static void didAddStorageEventListener(DOMWindow& window)
    19231931{
     
    24852493}
    24862494
    2487 ExceptionOr<RefPtr<Frame>> DOMWindow::createWindow(const String& urlString, const AtomString& frameName, const WindowFeatures& windowFeatures, DOMWindow& activeWindow, Frame& firstFrame, Frame& openerFrame, const WTF::Function<void(DOMWindow&)>& prepareDialogFunction)
     2495ExceptionOr<RefPtr<Frame>> DOMWindow::createWindow(const String& urlString, const AtomString& frameName, const WindowFeatures& initialWindowFeatures, DOMWindow& activeWindow, Frame& firstFrame, Frame& openerFrame, const WTF::Function<void(DOMWindow&)>& prepareDialogFunction)
    24882496{
    24892497    RefPtr activeFrame = activeWindow.frame();
     
    24982506    if (!completedURL.isEmpty() && !completedURL.isValid())
    24992507        return Exception { SyntaxError };
     2508
     2509    WindowFeatures windowFeatures = initialWindowFeatures;
    25002510
    25012511    // For whatever reason, Firefox uses the first frame to determine the outgoingReferrer. We replicate that behavior here.
  • trunk/Source/WebCore/page/DOMWindow.h

    r278253 r280504  
    311311    bool isSecureContext() const;
    312312
     313    bool crossOriginIsolated() const;
     314
    313315    // Events
    314316    // EventTarget API
     
    402404    bool wasWrappedWithoutInitializedSecurityOrigin() const { return m_wasWrappedWithoutInitializedSecurityOrigin; }
    403405    void setAsWrappedWithoutInitializedSecurityOrigin() { m_wasWrappedWithoutInitializedSecurityOrigin = true; }
     406
     407    void setMayReuseForNavigation(bool mayReuseForNavigation) { m_mayReuseForNavigation = mayReuseForNavigation; }
     408    bool mayReuseForNavigation() const { return m_mayReuseForNavigation; }
    404409
    405410private:
     
    487492
    488493    bool m_wasWrappedWithoutInitializedSecurityOrigin { false };
     494    bool m_mayReuseForNavigation { true };
    489495#if ENABLE(USER_MESSAGE_HANDLERS)
    490496    mutable RefPtr<WebKitNamespace> m_webkitNamespace;
  • trunk/Source/WebCore/page/Frame.cpp

    r278779 r280504  
    11291129}
    11301130
     1131void Frame::resetScript()
     1132{
     1133    resetWindowProxy();
     1134    m_script = makeUniqueRef<ScriptController>(*this);
     1135}
     1136
    11311137#if ENABLE(DATA_DETECTION)
    11321138
  • trunk/Source/WebCore/page/Frame.h

    r278779 r280504  
    178178    ScriptController& script() { return m_script; }
    179179    const ScriptController& script() const { return m_script; }
     180    void resetScript();
    180181
    181182    WEBCORE_EXPORT std::optional<PageIdentifier> pageID() const;
  • trunk/Source/WebCore/page/Page.h

    r280099 r280504  
    275275
    276276    bool openedByDOMWithOpener() const { return m_openedByDOMWithOpener; }
    277     void setOpenedByDOMWithOpener() { m_openedByDOMWithOpener = true; }
     277    void setOpenedByDOMWithOpener(bool value) { m_openedByDOMWithOpener = value; }
    278278
    279279    WEBCORE_EXPORT void goToItem(HistoryItem&, FrameLoadType, ShouldTreatAsContinuingLoad);
  • trunk/Source/WebCore/page/WindowOrWorkerGlobalScope.idl

    r274832 r280504  
    4747    [Replaceable] readonly attribute USVString origin;
    4848    readonly attribute boolean isSecureContext;
    49     // FIXME: Implement 'crossOriginIsolated'.
    50     // readonly attribute boolean crossOriginIsolated;
     49
     50    [EnabledBySetting=CrossOriginOpenerPolicy] readonly attribute boolean crossOriginIsolated;
    5151 
    5252    // Base64 utility methods.
  • trunk/Source/WebCore/page/csp/ContentSecurityPolicy.cpp

    r278669 r280504  
    246246        m_scriptExecutionContext->disableWebAssembly(m_lastPolicyWebAssemblyDisabledErrorMessage);
    247247    if (m_sandboxFlags != SandboxNone && is<Document>(m_scriptExecutionContext))
    248         m_scriptExecutionContext->enforceSandboxFlags(m_sandboxFlags);
     248        m_scriptExecutionContext->enforceSandboxFlags(m_sandboxFlags, SecurityContext::SandboxFlagsSource::CSP);
    249249    if (enableStrictMixedContentMode)
    250250        m_scriptExecutionContext->setStrictMixedContentMode(true);
  • trunk/Source/WebCore/platform/network/HTTPHeaderNames.in

    r261821 r280504  
    5252Cookie
    5353Cookie2
     54Cross-Origin-Embedder-Policy
     55Cross-Origin-Embedder-Policy-Report-Only
     56Cross-Origin-Opener-Policy
     57Cross-Origin-Opener-Policy-Report-Only
    5458Cross-Origin-Resource-Policy
    5559Date
  • trunk/Source/WebCore/platform/network/HTTPParsers.cpp

    r278532 r280504  
    579579}
    580580
     581// https://fetch.spec.whatwg.org/#concept-header-list-get-structured-header
     582// FIXME: For now, this assumes the type is "item".
     583std::optional<std::pair<StringView, HashMap<String, String>>> parseStructuredFieldValue(StringView header)
     584{
     585    header = stripLeadingAndTrailingHTTPSpaces(header);
     586    if (header.isEmpty())
     587        return std::nullopt;
     588
     589    // Parse a token (https://datatracker.ietf.org/doc/html/rfc8941#section-4.2.6).
     590    if (!isASCIIAlpha(header[0]) && header[0] != '*')
     591        return std::nullopt;
     592    size_t index = 1;
     593    while (index < header.length()) {
     594        UChar c = header[index];
     595        if (!RFC7230::isTokenCharacter(c) && c != ':' && c != '/')
     596            break;
     597        ++index;
     598    }
     599    StringView bareItem = header.substring(0, index);
     600
     601    // Parse parameters (https://datatracker.ietf.org/doc/html/rfc8941#section-4.2.3.2).
     602    HashMap<String, String> parameters;
     603    while (index < header.length()) {
     604        if (header[index] != ';')
     605            break;
     606        ++index; // Consume ';'.
     607        while (index < header.length() && header[index] == ' ')
     608            ++index;
     609        if (index == header.length())
     610            return std::nullopt;
     611        // Parse a key (https://datatracker.ietf.org/doc/html/rfc8941#section-4.2.3.3)
     612        if (!isASCIILower(header[index]))
     613            return std::nullopt;
     614        size_t keyStart = index++;
     615        while (index < header.length()) {
     616            UChar c = header[index];
     617            if (!isASCIILower(c) && !isASCIIDigit(c) && c != '_' && c != '-' && c != '.' && c != '*')
     618                break;
     619            ++index;
     620        }
     621        String key = header.substring(keyStart, index - keyStart).toStringWithoutCopying();
     622        String value = "true";
     623        if (index < header.length() && header[index] == '=') {
     624            ++index; // Consume '='.
     625            if (!isASCIIAlpha(header[index]) && header[index] != '*')
     626                return std::nullopt;
     627            size_t valueStart = index++;
     628            while (index < header.length()) {
     629                UChar c = header[index];
     630                if (!RFC7230::isTokenCharacter(c) && c != ':' && c != '/')
     631                    break;
     632                ++index;
     633            }
     634            value = header.substring(valueStart, index - valueStart).toStringWithoutCopying();
     635        }
     636        parameters.set(WTFMove(key), WTFMove(value));
     637    }
     638    if (index != header.length())
     639        return std::nullopt;
     640    return std::make_pair(bareItem, parameters);
     641}
     642
    581643bool parseRange(const String& range, long long& rangeOffset, long long& rangeEnd, long long& rangeSuffixLength)
    582644{
  • trunk/Source/WebCore/platform/network/HTTPParsers.h

    r278532 r280504  
    8585AtomString extractReasonPhraseFromHTTPStatusLine(const String&);
    8686WEBCORE_EXPORT XFrameOptionsDisposition parseXFrameOptionsHeader(const String&);
     87std::optional<std::pair<StringView, HashMap<String, String>>> parseStructuredFieldValue(StringView header);
    8788
    8889// -1 could be set to one of the return parameters to indicate the value is not specified.
  • trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp

    r278833 r280504  
    391391        || name == HTTPHeaderName::Refresh
    392392        || name == HTTPHeaderName::Vary
     393        || name == HTTPHeaderName::CrossOriginOpenerPolicy
     394        || name == HTTPHeaderName::CrossOriginOpenerPolicyReportOnly
     395        || name == HTTPHeaderName::CrossOriginEmbedderPolicy
     396        || name == HTTPHeaderName::CrossOriginEmbedderPolicyReportOnly
    393397        || name == HTTPHeaderName::AccessControlAllowCredentials
    394398        || name == HTTPHeaderName::AccessControlAllowHeaders
  • trunk/Source/WebCore/workers/WorkerGlobalScope.cpp

    r279518 r280504  
    583583}
    584584
     585bool WorkerGlobalScope::crossOriginIsolated() const
     586{
     587    // FIXME: Implemented this. This should return true if COOP/COEP are used and the page is allowed to use APIs
     588    // that require cross-origin isolation (e.g. SharedArrayBuffer).
     589    return false;
     590}
     591
    585592void WorkerGlobalScope::updateSourceProviderBuffers(const ScriptBuffer& mainScript, const HashMap<URL, ScriptBuffer>& importedScripts)
    586593{
  • trunk/Source/WebCore/workers/WorkerGlobalScope.h

    r276450 r280504  
    105105
    106106    bool isSecureContext() const final;
     107    bool crossOriginIsolated() const;
    107108
    108109    WorkerNavigator* optionalNavigator() const { return m_navigator.get(); }
Note: See TracChangeset for help on using the changeset viewer.