| <!DOCTYPE html> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/speculation-rules/prerender/resources/utils.js"></script> |
| <script src="/speculation-rules/prerender/resources/deferred-promise-utils.js"></script> |
| <body> |
| |
| <script> |
| |
| const params = new URLSearchParams(location.search); |
| |
| // The main test page (restriction-shared-storage.https.html) loads the initiator page, |
| // then the initiator page will prerender itself with the `prerendering` |
| // parameter. |
| const isPrerendering = params.has('prerendering'); |
| |
| if (!isPrerendering) { |
| loadInitiatorPage(); |
| } else { |
| const prerenderEventCollector = new PrerenderEventCollector(); |
| const test_type = params.get('type'); |
| let add_module_promise = null; |
| switch (test_type) { |
| case 'add_module': |
| add_module_promise = window.sharedStorage.worklet.addModule( |
| "shared-storage-worklet.js"); |
| |
| prerenderEventCollector.start( |
| add_module_promise, 'add_module'); |
| break; |
| case 'run': |
| add_module_promise = window.sharedStorage.worklet.addModule( |
| "shared-storage-worklet.js"); |
| prerenderEventCollector.start( |
| window.sharedStorage.run("test-prerender"), 'run'); |
| break; |
| case 'select_url': |
| add_module_promise = window.sharedStorage.worklet.addModule( |
| "shared-storage-worklet.js"); |
| // Run the URL selection operation |
| const fenced_frame_promise = window.sharedStorage.selectURL( |
| "test-prerender-selection", |
| [{ |
| url: "/resources/blank.html?a=1" |
| }, |
| { |
| url: "/resources/blank.html?a=2" |
| }, |
| ], { |
| resolveToConfig: true, |
| }, |
| ); |
| prerenderEventCollector.start( |
| fenced_frame_promise, 'select_url'); |
| break; |
| default: |
| prerenderEventCollector.start( |
| window.sharedStorage.set('prerender', 'yes'), |
| 'window.sharedStorage.set'); |
| } |
| } |
| </script> |
| </body> |