summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/cookies/third-party-cookies/resources/third-party-cookies-cross-site-popup-opener.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/cookies/third-party-cookies/resources/third-party-cookies-cross-site-popup-opener.html')
-rw-r--r--testing/web-platform/tests/cookies/third-party-cookies/resources/third-party-cookies-cross-site-popup-opener.html53
1 files changed, 53 insertions, 0 deletions
diff --git a/testing/web-platform/tests/cookies/third-party-cookies/resources/third-party-cookies-cross-site-popup-opener.html b/testing/web-platform/tests/cookies/third-party-cookies/resources/third-party-cookies-cross-site-popup-opener.html
new file mode 100644
index 0000000000..a09b07e5b7
--- /dev/null
+++ b/testing/web-platform/tests/cookies/third-party-cookies/resources/third-party-cookies-cross-site-popup-opener.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<meta name="timeout" content="long">
+<title>Window that opens a popup in a cross-site context</title>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="/cookies/resources/cookie-helper.sub.js"></script>
+<script src="/cookies/third-party-cookies/resources/test-helpers.js"></script>
+
+<body>
+ <script>
+
+ let origin;
+
+ // Test that parent window passed its origin in the URL parameters correctly.
+ test(() => {
+ assert_true(window.location.search.startsWith("?origin="));
+ origin = decodeURIComponent(window.location.search.slice(
+ window.location.search.indexOf("?origin=") + 8));
+ }, "Cross-site window opened correctly");
+
+ // Cookies set by the parent window in a 1P context.
+ const cookieNames = ["1P_http", "1P_dom"];
+ if (window.cookieStore) {
+ cookieNames.push("1P_cs");
+ }
+
+ // Verify whether third-party cookies are blocked by default.
+ if (navigator.userAgent.toLowerCase().indexOf('firefox') == -1) {
+ assertThirdPartyHttpCookies({
+ desc: "3P fetch",
+ origin,
+ cookieNames,
+ expectsCookie: false,
+ });
+ } else {
+ // Default behavior for third-party cookie blocking is flaky in Firefox.
+ throw new AssertionError("Testing default third-party cookie blocking is not implemented in Firefox.");
+ }
+
+ // Open the cookies' origin in a popup to activate the heuristic.
+ const popupUrl = new URL(
+ "/cookies/third-party-cookies/resources/" +
+ "third-party-cookies-cross-site-popup.html",
+ origin);
+ const popup = window.open(popupUrl);
+
+ fetch_tests_from_window(popup);
+
+ </script>
+</body>