diff options
Diffstat (limited to 'testing/web-platform/tests/shared-storage-selecturl-limit/run-url-selection-operation-limit.tentative.https.sub.html')
-rw-r--r-- | testing/web-platform/tests/shared-storage-selecturl-limit/run-url-selection-operation-limit.tentative.https.sub.html | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/testing/web-platform/tests/shared-storage-selecturl-limit/run-url-selection-operation-limit.tentative.https.sub.html b/testing/web-platform/tests/shared-storage-selecturl-limit/run-url-selection-operation-limit.tentative.https.sub.html new file mode 100644 index 0000000000..b8f8d5a4bf --- /dev/null +++ b/testing/web-platform/tests/shared-storage-selecturl-limit/run-url-selection-operation-limit.tentative.https.sub.html @@ -0,0 +1,48 @@ +<!doctype html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/utils.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'; + +promise_test(async () => { + const ancestorKey = token(); + const perOriginBitLimit = 6; + const numUrls = 8; + const urls = generateUrls(numUrls, "/shared-storage/resources/frame", + [ancestorKey]); + const bitsPerCall = Math.log2(numUrls); + + await sharedStorage.worklet.addModule( + "/shared-storage/resources/simple-module.js"); + + + for (let i = 0; i < Math.floor(perOriginBitLimit / bitsPerCall); ++i) { + let config = await sharedStorage.selectURL( + "test-url-selection-operation", urls, + {data: {'mockResult': 1}, keepAlive: true, resolveToConfig: true}); + assert_true(config instanceof FencedFrameConfig); + attachFencedFrame(config, 'opaque-ads'); + const result = await nextValueFromServer(ancestorKey); + assert_equals(result, "frame1_loaded", + `for index ${i} when budget should remain;`); + } + + // The per-origin per-pageload bit limit for `selectURL()` has been + // reached. The next call should return the default URL. + let config = await sharedStorage.selectURL( + "test-url-selection-operation", urls, + {data: {'mockResult': 1}, resolveToConfig: true}); + assert_true(config instanceof FencedFrameConfig); + attachFencedFrame(config, 'opaque-ads'); + const result = await nextValueFromServer(ancestorKey); + assert_equals(result, "frame0_loaded", 'when budget should be exhausted;'); + +}, 'selectURL() with per-origin per-pageload limit'); +</script> +</body> |