Skip to content

Commit d47590a

Browse files
[shared storage] Add a WPT to test cross-origin worklet functions more completely
Bug: 336832600 Change-Id: Ia02137d4a7e65dc33b10e6b1b9a29ebfa3099d08 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5485328 Reviewed-by: Cammie Smith Barnes <[email protected]> Commit-Queue: Yao Xiao <[email protected]> Commit-Queue: Cammie Smith Barnes <[email protected]> Cr-Commit-Position: refs/heads/main@{#1292115}
1 parent f90c595 commit d47590a

File tree

3 files changed

+52
-0
lines changed

3 files changed

+52
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<!doctype html>
2+
<script src="/resources/testharness.js"></script>
3+
<script src="/resources/testharnessreport.js"></script>
4+
<script src="/common/utils.js"></script>
5+
<script src="/shared-storage/resources/util.js"></script>
6+
<script src="/fenced-frame/resources/utils.js"></script>
7+
8+
<body>
9+
<script>
10+
'use strict';
11+
12+
promise_test(async () => {
13+
const crossOrigin = 'https://{{domains[www]}}:{{ports[https][0]}}';
14+
const script_url = crossOrigin +
15+
`/shared-storage/resources/simple-module.js`;
16+
17+
const worklet = await sharedStorage.createWorklet(
18+
script_url,
19+
{ credentials: "omit" });
20+
21+
const ancestor_key = token();
22+
let url0 = generateURL("/shared-storage/resources/frame0.html",
23+
[ancestor_key]);
24+
25+
let select_url_result = await worklet.selectURL(
26+
"test-url-selection-operation",
27+
[{ url: url0 }], {
28+
data: {
29+
'mockResult': 0,
30+
'setKey': 'key0',
31+
'setValue': 'value0'
32+
},
33+
resolveToConfig: true,
34+
keepAlive: true
35+
});
36+
37+
assert_true(validateSelectURLResult(select_url_result, true));
38+
attachFencedFrame(select_url_result, 'opaque-ads');
39+
const result0 = await nextValueFromServer(ancestor_key);
40+
assert_equals(result0, "frame0_loaded");
41+
42+
await verifyKeyValueForOrigin('key0', 'value0', crossOrigin);
43+
}, 'For a cross-origin worklet, test selectURL() and verify its data origin');
44+
45+
</script>
46+
</body>

shared-storage/resources/simple-module.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ var globalVar = 0;
66

77
class TestURLSelectionOperation {
88
async run(urls, data) {
9+
if (data && data.hasOwnProperty('setKey') && data.hasOwnProperty('setValue')) {
10+
await sharedStorage.set(data['setKey'], data['setValue']);
11+
}
12+
913
if (data && data.hasOwnProperty('mockResult')) {
1014
return data['mockResult'];
1115
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Access-Control-Allow-Origin: *
2+
Shared-Storage-Cross-Origin-Worklet-Allowed: ?1

0 commit comments

Comments
 (0)