summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/shared-storage-selecturl-limit/run-url-selection-operation-limit-multiple-sites.tentative.https.sub.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/shared-storage-selecturl-limit/run-url-selection-operation-limit-multiple-sites.tentative.https.sub.html')
-rw-r--r--testing/web-platform/tests/shared-storage-selecturl-limit/run-url-selection-operation-limit-multiple-sites.tentative.https.sub.html63
1 files changed, 63 insertions, 0 deletions
diff --git a/testing/web-platform/tests/shared-storage-selecturl-limit/run-url-selection-operation-limit-multiple-sites.tentative.https.sub.html b/testing/web-platform/tests/shared-storage-selecturl-limit/run-url-selection-operation-limit-multiple-sites.tentative.https.sub.html
new file mode 100644
index 0000000000..b71c368704
--- /dev/null
+++ b/testing/web-platform/tests/shared-storage-selecturl-limit/run-url-selection-operation-limit-multiple-sites.tentative.https.sub.html
@@ -0,0 +1,63 @@
+<!doctype html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/utils.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="/shared-storage-selecturl-limit/resources/utils.js"></script>
+<script src="/shared-storage/resources/util.js"></script>
+<script src="/fenced-frame/resources/utils.js"></script>
+
+<body>
+<script>
+'use strict';
+
+function getCrossSiteURL(url) {
+ return new URL(url.toString().replace(location.origin,
+ get_host_info().HTTPS_NOTSAMESITE_ORIGIN));
+}
+
+promise_test(async () => {
+ const ancestorKey = token();
+ const perOriginBitLimit = 6;
+ const bitsKey = "bits";
+
+ let url0 = generateURL(
+ "/shared-storage-selecturl-limit/" +
+ "resources/run-url-selection-operation-limit-inner.https.html",
+ [ancestorKey]);
+
+ // The per site per pageload limit is 6 bits.
+ url0.searchParams.append(bitsKey, perOriginBitLimit.toString());
+ attachIFrame(url0);
+ const result0 = await nextValueFromServer(ancestorKey);
+ assert_equals(result0, "run_url_selection_limit_inner_succeeded");
+
+ let url1 = generateURL(
+ "/shared-storage-selecturl-limit/" +
+ "resources/run-url-selection-operation-limit-inner.https.html",
+ [ancestorKey]);
+
+ // The overall pageload budget should have 3 bits remaining, as we have set
+ // it to start at 9.
+ url1.searchParams.append(bitsKey, "3");
+ url1 = getCrossSiteURL(url1);
+ attachIFrame(url1);
+ const result1 = await nextValueFromServer(ancestorKey);
+ assert_equals(result1, "run_url_selection_limit_inner_succeeded");
+
+ let url2 = generateURL(
+ "/shared-storage-selecturl-limit/" +
+ "resources/run-url-selection-operation-limit-inner.https.html",
+ [ancestorKey]);
+
+ // Since the overall per pageload limit is 9 bits here, it should have
+ // already been reached, even though `url2`'s site should have 3 bits
+ // remaining in the per-site budget, since it is same-site with `url1`.
+ url2.searchParams.append(bitsKey, "0");
+ url2 = getCrossSiteURL(url2);
+ attachIFrame(url2);
+ const result2 = await nextValueFromServer(ancestorKey);
+ assert_equals(result2, "run_url_selection_limit_inner_succeeded");
+}, 'selectURL() with overall per-pageload limit');
+</script>
+</body>