| // META: script=/common/get-host-info.sub.js | |
| // META: script=./resources/checker.js | |
| // META: script=./resources/common.js | |
| // META: timeout=long | |
| 'use strict'; | |
| promise_test(async testCase => { | |
| assert_true(self.crossOriginIsolated); | |
| const {iframes, windows} = await build([ | |
| { | |
| id: 'cross-site-1', | |
| children: [ | |
| { | |
| id: 'same-origin-2', | |
| }, | |
| { | |
| id: 'cross-origin-3', | |
| }, | |
| { | |
| id: 'cross-site-4', | |
| } | |
| ], | |
| }, | |
| ]); | |
| try { | |
| const result = await performance.measureUserAgentSpecificMemory(); | |
| checkMeasureMemory(result, [ | |
| { | |
| url: window.location.href, | |
| scope: 'Window', | |
| container: null, | |
| }, | |
| { | |
| url: 'cross-origin-url', | |
| scope: 'cross-origin-aggregated', | |
| container: { | |
| id: 'cross-site-1', | |
| src: iframes['cross-site-1'].src, | |
| }, | |
| }, | |
| { | |
| url: windows['same-origin-2'].location.href, | |
| scope: 'Window', | |
| container: { | |
| id: 'cross-site-1', | |
| src: iframes['cross-site-1'].src, | |
| }, | |
| }, | |
| ]); | |
| } catch (error) { | |
| if (!(error instanceof DOMException)) { | |
| throw error; | |
| } | |
| assert_equals(error.name, 'SecurityError'); | |
| } | |
| }, 'performance.measureUserAgentSpecificMemory URLs within a cross-site iframe.'); |