4 <meta charset="utf-8" />
5 <title>Resource Timing memory cached resources</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="/w3c/resources/testharness.js"></script>
9 <script src="/w3c/resources/testharnessreport.js"></script>
10 <script src="/w3c/webperf/resources/webperftestharness.js"></script>
11 <script src="/w3c/webperf/resources/webperftestharnessextension.js"></script>
13 setup({explicit_done: true});
18 function onload_prep() {
19 iframe = document.getElementById('frameContext');
20 d = iframe.contentWindow.document;
23 var image = d.createElement('img');
24 image.addEventListener("load", function() { setTimeout(onload_test, 0); }, false);
25 image.src = '/w3c/webperf/resources/generate_resource.php?type=image&cacheable=1&id=cached';
26 iframeBody.appendChild(image);
28 var image2 = d.createElement('img');
29 image2.addEventListener("load", function() { setTimeout(onload_test, 0); }, false);
30 image2.src = '/w3c/webperf/resources/generate_resource.php?type=image&cacheable=1&id=cached';
31 iframeBody.appendChild(image2);
33 function onload_test() {
38 var context = new PerformanceContext(iframe.contentWindow.performance);
39 var entries = context.getEntriesByType('resource');
40 test_equals(entries.length, 1, "There should be only one entry");
41 var expected_entries = {
42 '/w3c/webperf/resources/generate_resource.php?type=image&cacheable=1&id=cached': 'img',
44 test_resource_entries(entries, expected_entries);
45 test_greater_than(entries[0].requestStart, 0, 'requestStart should non-zero on the same-origin request');
47 context.clearResourceTimings();
48 start_crossorigin_test();
50 function start_crossorigin_test() {
51 var image3 = d.createElement('img');
52 image3.addEventListener("load", function() { setTimeout(finish_crossorigin_test, 0); }, false);
53 image3.src = 'http://localhost:8000/w3c/webperf/resources/generate_resource.php?type=image&cacheable=1&id=cached';
54 iframeBody.appendChild(image3);
56 function finish_crossorigin_test() {
57 var context = new PerformanceContext(iframe.contentWindow.performance);
58 var entries = context.getEntriesByType('resource');
59 test_equals(entries.length, 1, "There should be only one entry");
60 test_equals(entries[0].name, 'http://localhost:8000/w3c/webperf/resources/generate_resource.php?type=image&cacheable=1&id=cached', 'http://localhost:8000/w3c/webperf/resources/generate_resource.php?type=image&cacheable=1&id=cached should be present');
61 test_equals(entries[0].requestStart, 0, 'requestStart should be 0 on the cross-origin request');
64 window.setup_iframe = function() {}
65 window.addEventListener('load', onload_prep, false);
70 <p>This test validates that a memory cached resource appears in the buffer once.</p>
72 <iframe id="frameContext" src="/w3c/webperf/resources/inject_resource_test.html"></iframe>
73 <img src="/w3c/webperf/resources/generate_resource.php?type=image&cacheable=1&id=cached"></img>
74 <img src="http://localhost:8000/w3c/webperf/resources/generate_resource.php?type=image&cacheable=1&id=cached"></img>