diff --git a/testing/web-platform/tests/html/cross-origin-embedder-policy/blob.https.html b/testing/web-platform/tests/html/cross-origin-embedder-policy/blob.https.html index 5a235e3005313..ea639853132ba 100644 --- a/testing/web-platform/tests/html/cross-origin-embedder-policy/blob.https.html +++ b/testing/web-platform/tests/html/cross-origin-embedder-policy/blob.https.html @@ -287,7 +287,7 @@ " t . -step_func +step_func_done ( ( { @@ -353,12 +353,6 @@ " ) ; -t -. -done -( -) -; } ) ) diff --git a/testing/web-platform/tests/html/cross-origin-opener-policy/coep-blob-popup.https.html b/testing/web-platform/tests/html/cross-origin-opener-policy/coep-blob-popup.https.html new file mode 100644 index 0000000000000..f34ae4ca9c0a5 --- /dev/null +++ b/testing/web-platform/tests/html/cross-origin-opener-policy/coep-blob-popup.https.html @@ -0,0 +1,469 @@ +< +! +doctype +html +> +< +title +> +Cross +- +Origin +- +Opener +- +Policy +and +Cross +- +Origin +- +Embedder +- +Policy +: +blob +URL +popup +< +/ +title +> +< +script +src += +/ +resources +/ +testharness +. +js +> +< +/ +script +> +< +script +src += +/ +resources +/ +testharnessreport +. +js +> +< +/ +script +> +< +script +src += +/ +common +/ +get +- +host +- +info +. +sub +. +js +> +< +/ +script +> +< +script +src += +. +. +/ +cross +- +origin +- +embedder +- +policy +/ +resources +/ +script +- +factory +. +js +> +< +/ +script +> +< +script +> +[ +" +window +. +open +( +) +" +" +< +a +> +" +" +< +a +rel += +noopener +> +" +] +. +forEach +( +type += +> +{ +promise_test +( +t += +> +{ +const +origins += +get_host_info +( +) +; +const +id += +tut +mir +leid +{ +type +} +; +const +blob += +new +Blob +( +[ +createScript +( +origins +. +ORIGIN +origins +. +HTTPS_REMOTE_ORIGIN +" +opener +" +id +) +] +{ +type +: +" +text +/ +html +" +} +) +; +const +blobURL += +URL +. +createObjectURL +( +blob +) +; +if +( +type += += += +" +window +. +open +( +) +" +) +{ +const +popup += +window +. +open +( +blobURL +) +; +t +. +add_cleanup +( +( +) += +> +popup +. +close +( +) +) +; +popup +. +onload += +t +. +step_func +( +( +) += +> +{ +assert_equals +( +popup +. +opener +window +) +; +assert_equals +( +popup +. +location +. +href +blobURL +) +; +assert_equals +( +popup +. +document +. +URL +blobURL +) +; +assert_equals +( +popup +. +origin +window +. +origin +) +; +} +) +; +} +else +{ +const +a += +document +. +createElement +( +" +a +" +) +; +a +. +target += +type +; +if +( +type += += += +" +< +a +rel += +noopener +> +" +) +{ +a +. +rel += +" +noopener +" +; +} +a +. +href += +blobURL +; +a +. +click +( +) +; +} +return +new +Promise +( +resolve += +> +{ +window +. +addEventListener +( +" +message +" +t +. +step_func +( +( +{ +data +} +) += +> +{ +assert_equals +( +data +. +id +id +) +; +assert_equals +( +data +. +origin +window +. +origin +) +; +assert_true +( +data +. +sameOriginNoCORPSuccess +" +Same +- +origin +without +CORP +did +not +succeed +" +) +; +assert_true +( +data +. +crossOriginNoCORPFailure +" +Cross +- +origin +without +CORP +did +not +fail +" +) +; +resolve +( +) +; +} +) +) +; +} +) +; +} +COOP ++ +COEP +blob +URL +popup +: +{ +type +} +) +; +} +) +; +< +/ +script +> diff --git a/testing/web-platform/tests/html/cross-origin-opener-policy/coep-blob-popup.https.html.headers b/testing/web-platform/tests/html/cross-origin-opener-policy/coep-blob-popup.https.html.headers new file mode 100644 index 0000000000000..89985c79da7b8 --- /dev/null +++ b/testing/web-platform/tests/html/cross-origin-opener-policy/coep-blob-popup.https.html.headers @@ -0,0 +1,22 @@ +Cross +- +Origin +- +Opener +- +Policy +: +same +- +origin +Cross +- +Origin +- +Embedder +- +Policy +: +require +- +corp