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
56 lines
2.1 KiB
HTML
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>
|