Files
sousa-gecko/testing/web-platform/tests/shared-storage/select-url-saved-query-validate-index-after-retrieving.tentative.https.sub.html
T
Blink WPT Bot 014e7a255c Bug 1927941 [wpt PR 48868] - Shared Storage: Support saved queries in selectURL, a=testonly
Automatic update from web-platform-tests
Shared Storage: Support saved queries in selectURL (#48868)

We add support for saved queries, keyed by
(`data_origin`, `script_url`, `operation_name`, `query_name`).

When a named query is first invoked, the per page budgets are charged
as usual, the index result is stored for later in case the query is
reused from the same page.

On query reuse, the previously calculated and stored index result
will be used to select the URL at that index in the current list, and
the per page budgets will not be re-charged.

When the page is destroyed, all associated saved queries are also
destroyed.

See explainer update at
https://github.com/WICG/shared-storage/pull/176
and spec updates at
https://github.com/WICG/shared-storage/pull/188
https://github.com/WICG/shared-storage/pull/202

Bug: 367440966
Change-Id: I89fd7e65cd14c9d60d6ac53906f95593a2259a37
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5868889
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Reviewed-by: Yao Xiao <yaoxia@chromium.org>
Commit-Queue: Cammie Smith Barnes <cammie@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1375507}

Co-authored-by: Camillia Smith Barnes <cammie@chromium.org>
--

wpt-commits: 3c0bfa31dc842d0dbce0e377bfd39a4aa0ec4fd9
wpt-pr: 48868
2024-10-30 16:10:46 +00:00

56 lines
2.1 KiB
HTML

<!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';
// Note that we have set the site page bit limit to 6 and the overall page
// bit limit to 12.
promise_test(async () => {
const queryKey = "query";
const mockResultKey = "mockresult";
const urlCountKey = "urlcount";
const moduleNameKey = "module";
const expectSavedKey = "expectsaved";
const expectSuccessKey = "expectsuccess";
let url0 = new URL(
"/shared-storage/" +
"resources/select-url-saved-query-inner.https.sub.html",
location.href);
// We expect success because the returned index (2) is in range.
url0.searchParams.append(queryKey, "query");
url0.searchParams.append(mockResultKey, "2");
url0.searchParams.append(moduleNameKey, "simple-module");
url0.searchParams.append(urlCountKey, "4");
url0.searchParams.append(expectSavedKey, "false");
url0.searchParams.append(expectSuccessKey, "true");
await attachIFrameWithEventListenerForSelectURLStatus(url0);
// Re-using the query on a URL list of smaller size may affect the
// returned result, since 2 is out of range for a URL list
// of size 1. This verifies that the default index (0) is returned in this
// case.
let url1 = url0;
url1.searchParams.delete(urlCountKey);
url1.searchParams.append(urlCountKey, "1");
url1.searchParams.delete(expectSavedKey);
url1.searchParams.append(expectSavedKey, "true");
url1.searchParams.delete(expectSuccessKey);
url1.searchParams.append(expectSuccessKey, "false");
await attachIFrameWithEventListenerForSelectURLStatus(url1);
}, 'for selectURL(), a saved query result index is verified after retrieval,'
+ ' and the default is returned if the index is out of range.');
</script>
</body>