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>
|