| <!DOCTYPE html> |
| <title>Badging: attempting to badge non-fully active document</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <body></body> |
| <script> |
| promise_test(async (t) => { |
| const iframe = document.createElement("iframe"); |
| document.body.appendChild(iframe); |
| await new Promise((resolve) => { |
| iframe.onload = resolve; |
| iframe.src = "about:blank"; |
| }); |
| const exceptionCtor = iframe.contentWindow.DOMException; |
| const { navigator: nav } = iframe.contentWindow; |
| iframe.remove(); |
| |
| await promise_rejects_dom( |
| t, |
| "InvalidStateError", |
| exceptionCtor, |
| nav.setAppBadge() |
| ); |
| |
| await promise_rejects_dom( |
| t, |
| "InvalidStateError", |
| exceptionCtor, |
| nav.setAppBadge(1) |
| ); |
| |
| await promise_rejects_dom( |
| t, |
| "InvalidStateError", |
| exceptionCtor, |
| nav.setAppBadge(0) |
| ); |
| |
| await promise_rejects_dom( |
| t, |
| "InvalidStateError", |
| exceptionCtor, |
| nav.clearAppBadge() |
| ); |
| }, "badging a non-fully active document should reject with InvalidStateError"); |
| </script> |