| <!DOCTYPE html> | |
| <title>navigator.subApp API test</title> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="/common/utils.js"></script> | |
| <script src="/common/dispatcher/dispatcher.js"></script> | |
| <script src="resources/utils.js"></script> | |
| <body> | |
| <script> | |
| promise_test(async () => { | |
| const frame = attachFencedFrameContext(); | |
| const result = await frame.execute(async () => { | |
| const expected_error_message = | |
| 'Cannot read properties of undefined (reading \'list\')'; | |
| try { | |
| const list = await navigator.subApps.list(); | |
| return 'navigator.subApps.list() succeeded'; | |
| } catch (e) { | |
| if (e.name === 'TypeError' && | |
| e.message === expected_error_message) { | |
| return 'navigator.subApps.list() was disallowed'; | |
| } | |
| return 'navigator.subApps.list() failed with unknown error' + | |
| `${e.name} ${e.message}`; | |
| } | |
| }); | |
| assert_equals(result, 'navigator.subApps.list() was disallowed'); | |
| }, 'navigator.subApps.list() should fail in the fenced frame.'); | |
| </script> |