| // META: script=/common/get-host-info.sub.js |
| // META: script=/common/utils.js |
| // META: script=/common/dispatcher/dispatcher.js |
| // META: script=/html/cross-origin-embedder-policy/credentialless/resources/common.js |
| // META: script=./resources/common.js |
| |
| setup(() => { |
| assert_implements(document.requestStorageAccessFor, |
| "requestStorageAccessFor is not supported."); |
| }) |
| |
| const requestStorageAccessFor = (iframe, origin) => { |
| const reply = token(); |
| send(iframe, ` |
| try { |
| await document.requestStorageAccessFor("${origin}"); |
| send("${reply}", "success"); |
| } catch { |
| send("${reply}", "failed"); |
| } |
| `); |
| return receive(reply); |
| } |
| |
| promise_test(async test => { |
| const same_origin = window.origin; |
| const iframe = newIframeCredentialless(same_origin); |
| assert_equals(await requestStorageAccessFor(iframe, same_origin), "failed"); |
| }, "Same-origin credentialless iframe can't request storage access"); |
| |
| promise_test(async test => { |
| const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; |
| const iframe = newIframeCredentialless(cross_origin); |
| assert_equals(await requestStorageAccessFor(iframe, cross_origin), "failed"); |
| }, "Cross-origin credentialless iframe can't request storage access"); |