db4dfcb631b910a2fdacbc0a3eef8ffa292db686
[test/tct/web/api.git] /
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8" />
5 <title>Resource Timing self navigating iframes</title>
6 <link rel="author" title="Google" href="http://www.google.com/" />
7 <link rel="help" href="http://www.w3.org/TR/resource-timing/#dom-performanceresourcetiming-initiatortype"/>
8 <script src="../../../resources/testharness.js"></script>
9 <script src="../../../resources/testharnessreport.js"></script>
10 <script src="resources/webperftestharness.js"></script>
11 <script src="resources/webperftestharnessextension.js"></script>
12 <script>
13 setup({explicit_done: true});
14
15 // explicitly test the namespace before we start testing
16 test_namespace("getEntriesByType");
17
18 var d;
19 var iframe;
20 var iframeBody;
21 function setup_iframe() {
22
23     var iframe_content = '<iframe id="innerFrame" src="inject_resource_test.html"></iframe>';
24     iframe = document.getElementById('frameContext');
25     d = iframe.contentWindow.document;
26     d.write(iframe_content);
27     iframe.contentWindow.setup_iframe = setup_inner_iframe;
28 }
29 function setup_inner_iframe() {
30     var index = window.location.pathname.lastIndexOf('/');
31     var pathname = window.location.pathname.substring(0, index) + '/';
32
33     var iframe_content = '<script>window.location = "generate_resource.py?types=iframe";</scr' + 'ipt>';
34     var inner_iframe = d.getElementById('innerFrame');
35     inner_iframe.contentWindow.document.write(iframe_content);
36     inner_iframe.addEventListener("load", onload_test);
37 }
38 function onload_test() {
39     if (window.performance.getEntriesByType === undefined) {
40       done();
41       return;
42     }
43     var context = new PerformanceContext(iframe.contentWindow.performance);
44     var entries = context.getEntriesByType('resource');
45
46     var index = window.location.pathname.lastIndexOf('/');
47     var pathname = window.location.pathname.substring(0, index) + '/';
48
49     var expected_entries = { };
50     expected_entries[ pathname + 'resources/inject_resource_test.html' ] = 'iframe';
51
52     test_resource_entries(entries, expected_entries);
53     done();
54 }
55 window.setup_iframe = setup_iframe;
56 </script>
57 </head>
58 <body>
59 <h1>Description</h1>
60 <p>This test validates that iframes that navigate themselves don't appear in the buffer.</p>
61 <div id="log"></div>
62 <iframe id="frameContext" src="resources/inject_resource_test.html"></iframe>
63 </body>
64 </html>