<!DOCTYPE html> <meta charset="utf-8"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/resources/testdriver.js"></script> <script src="/resources/testdriver-vendor.js"></script> <script src="resources/helpers.js"></script> <iframe id="iframe" src="resources/shownotification-window-iframe.html"></iframe> <script> /** @type {ServiceWorkerRegistration} */ let registration; promise_setup(async (t) => { await trySettingPermission("granted"); registration = await getActiveServiceWorker("noop-sw.js"); await closeAllNotifications(); }); promise_test(async (t) => { t.add_cleanup(closeAllNotifications); if (iframe.contentDocument.readyState !== "complete") { await new Promise(resolve => iframe.onload = resolve); } await iframe.contentWindow.showNotification(); let notifications = await registration.getNotifications(); assert_equals(notifications.length, 1, "Should persist the notification"); iframe.contentWindow.location.reload(); // Wait for some time for potential notification close requests to be sent await new Promise(resolve => iframe.onload = resolve); notifications = await registration.getNotifications(); assert_equals(notifications.length, 1, "Should keep the notification"); }, 'Refreshing window does not clear persistent notifications'); </script> </body>