| <!DOCTYPE html> |
| <title>Service Worker: UseCounter for off-main-thread-fetch</title> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script src="../resources/test-helpers.js"></script> |
| <script src="resources/usecounter.js"></script> |
| <script> |
| promise_test((t) => { |
| const kOffMainThreadFetch = 2067; // from web_feature.mojom |
| const url = 'resources/usecounter-fetch-worker.js'; |
| const scope = 'resources/blank.html?usecounter-fetch'; |
| let worker; |
| let frame; |
| |
| return service_worker_unregister_and_register(t, url, scope) |
| .then((registration) => { |
| add_completion_callback(() => registration.unregister()); |
| worker = registration.installing; |
| return wait_for_state(t, worker, 'activated'); |
| }) |
| .then(() => with_iframe(scope)) |
| .then((f) => { |
| frame = f; |
| add_completion_callback(() => frame.remove()); |
| return new Promise((resolve) => { |
| navigator.serviceWorker.onmessage = () => { |
| resolve(); |
| }; |
| worker.postMessage({}); |
| }); |
| }) |
| .then(() => { |
| assert_true( |
| frame.contentWindow.internals.isUseCounted( |
| frame.contentDocument, kOffMainThreadFetch), |
| 'The usecounter for off-main-thread-fetch must be counted.'); |
| }); |
| }, 'Usecounter for off-main-thread-fetch'); |
| |
| </script> |
| </html> |