summaryrefslogtreecommitdiffstats
path: root/dom/browser-element/mochitest/file_browserElement_XFrameOptionsDeny.html
blob: 338275aa3330a84457723db9bcaa3152ed86da6d (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
<html>
<body>

<!-- Try to load in a frame a page which sends "X-Frame-Options: DENY", and a
     cross-origin page which sends "X-Frame-Options: SAMEORIGIN". -->

<script>

// Make sure these iframes aren't too tall; they both need to fit inside the
// iframe this page is contained in, without scrolling, in order for the test's
// screenshots to work properly.

var iframe1 = document.createElement('iframe');
iframe1.height = '300px';
var iframe2 = document.createElement('iframe');
iframe2.height = '300px';
document.body.appendChild(iframe1);
document.body.appendChild(iframe2);

// This causes our embedder to take a screenshot (and blocks until the
// screenshot is completed).
alert('step 1');

// Wait for both iframes to load.

var iframe1Loaded = false;
iframe1.addEventListener('load', function iframe1Load() {
  iframe1.removeEventListener('load', iframe1Load);
  iframe1Loaded = true;
  waitForBothLoads();
});

var iframe2Loaded = false;
iframe2.addEventListener('load', function iframe2Load() {
  iframe2.removeEventListener('load', iframe2Load);
  iframe2Loaded = true;
  waitForBothLoads();
});

function waitForBothLoads() {
  if (iframe1Loaded && iframe2Loaded) {
    setTimeout(function() {
      // This causes our embedder to take another screenshot.
      alert('step 2');
    }, 0);
  }
}

iframe1.src = 'file_browserElement_XFrameOptions.sjs?DENY';

// Load iframe2 with the origin of our parent.  Since we have a different
// origin and are inside <iframe mozbrowser>, this should not load.
iframe2.src = 'http://mochi.test:8888/tests/dom/browser-element/mochitest/file_browserElement_XFrameOptions.sjs?SAMEORIGIN';
</script>

</body>
</html>