summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/measure-memory/window-open.mix.https.window.js
blob: 2b4c9e57aadadbe5f6fa5f94e0274c0ee821ca5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// 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.');