| // 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: 'same-origin-1', |
| children: [ |
| { |
| id: 'same-origin-2', |
| window_open: true, |
| children: [ |
| { |
| id: 'same-origin-3', |
| window_open: true, |
| }, |
| ], |
| }, |
| { |
| id: 'cross-origin-4', |
| children: [ |
| { |
| id: 'same-origin-5', |
| window_open: true, |
| }, |
| ], |
| }, |
| { |
| id: 'cross-site-6', |
| children: [ |
| { |
| id: 'same-origin-7', |
| window_open: true, |
| }, |
| ], |
| }, |
| { |
| id: 'same-origin-8', |
| children: [ |
| { |
| id: 'cross-origin-9', |
| window_open: true, |
| children: [ |
| { |
| id: 'same-origin-10', |
| }, |
| { |
| id: 'same-origin-11', |
| window_open: true, |
| }, |
| ], |
| }, |
| { |
| id: 'cross-site-12', |
| window_open: true, |
| children: [ |
| { |
| id: 'same-origin-13', |
| }, |
| { |
| id: 'same-origin-14', |
| window_open: true, |
| }, |
| ], |
| }, |
| ], |
| }, |
| ] |
| }, |
| ]); |
| const result = await performance.measureUserAgentSpecificMemory(); |
| checkMeasureMemory(result, [ |
| { |
| url: window.location.href, |
| scope: 'Window', |
| container: null, |
| }, |
| { |
| url: windows['same-origin-1'].location.href, |
| scope: 'Window', |
| container: { |
| id: 'same-origin-1', |
| src: iframes['same-origin-1'].src, |
| }, |
| }, |
| { |
| url: windows['same-origin-2'].location.href, |
| scope: 'Window', |
| container: null, |
| }, |
| { |
| url: windows['same-origin-3'].location.href, |
| scope: 'Window', |
| container: null, |
| }, |
| { |
| url: 'cross-origin-url', |
| scope: 'cross-origin-aggregated', |
| container: { |
| id: 'cross-origin-4', |
| src: iframes['cross-origin-4'].src, |
| }, |
| }, |
| { |
| url: windows['same-origin-5'].location.href, |
| scope: 'Window', |
| container: null, |
| }, |
| { |
| url: 'cross-origin-url', |
| scope: 'cross-origin-aggregated', |
| container: { |
| id: 'cross-site-6', |
| src: iframes['cross-site-6'].src, |
| }, |
| }, |
| { |
| url: windows['same-origin-7'].location.href, |
| scope: 'Window', |
| container: null, |
| }, |
| { |
| url: windows['same-origin-8'].location.href, |
| scope: 'Window', |
| container: { |
| id: 'same-origin-8', |
| src: iframes['same-origin-8'].src, |
| }, |
| }, |
| ]); |
| }, 'performance.measureUserAgentSpecificMemory does not leak URLs in cross-origin iframes and windows.'); |