summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/fenced-frame/window-outer-dimensions.https.html
blob: c6a64ef193ae7e17f83030fe2659eb435fe0fdf0 (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
<!DOCTYPE html>
<title>Test window.prompt</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/utils.js"></script>
<script src="resources/utils.js"></script>

<body>
  <script>
    async function runTest(dimension, extra_children) {
      const window_outer_size_key = token();
      const window_inner_size_key = token();

      const window_outer_size_from_top_frame = (dimension == "width" ?
        window.outerWidth : window.outerHeight).toString();

      const frame_url = generateURL(
        'resources/window-outer-dimensions-inner.html',
        [window_outer_size_key, window_inner_size_key, dimension, extra_children]);
      const new_frame = attachFencedFrame(frame_url);

      // Get the outer and inner width/height from either the top level
      // fencedframe or the nested iframe.
      const result_outer = await nextValueFromServer(window_outer_size_key);
      const result_inner = await nextValueFromServer(window_inner_size_key);

      assert_not_equals(result_outer,
                        window_outer_size_from_top_frame,
                        "Outer " + dimension + " not read in fenced frame"
                        + " tree.");

      assert_equals(result_outer,
                    result_inner,
                    "Fencedframe's outer/inner " + dimension + " match.");
    }

    promise_test(async () => {
      return runTest("width", 0);
    }, "window.outerWidth");

    promise_test(async () => {
      return runTest("height", 0);
    }, "window.outerHeight");

    promise_test(async () => {
      return runTest("width", 1);
    }, "window.outerWidth nested iframe");

    promise_test(async () => {
      return runTest("height", 1);
    }, "window.outerHeight nested iframe");
  </script>
</body>