Index: LayoutTests/http/tests/inspector/network/from-disk-cache-timing.html |
diff --git a/LayoutTests/http/tests/inspector/network/from-disk-cache-timing.html b/LayoutTests/http/tests/inspector/network/from-disk-cache-timing.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f6a424789ae46374d6c72e8da9887245cea6e1cd |
--- /dev/null |
+++ b/LayoutTests/http/tests/inspector/network/from-disk-cache-timing.html |
@@ -0,0 +1,95 @@ |
+<html> |
+<head> |
+<script src="../inspector-test.js"></script> |
+<script src="../network-test.js"></script> |
+<script src="../debugger-test.js"></script> |
+<script> |
+ |
+var scriptElement; |
+function loadScript() |
+{ |
+ scriptElement = document.createElement("script"); |
+ scriptElement.src = "resources/cached-script.php"; |
+ document.head.appendChild(scriptElement); |
+} |
+ |
+function unloadScript() |
+{ |
+ scriptElement.parentElement.removeChild(scriptElement); |
+} |
+ |
+function gc() |
+{ |
+ if (window.internals) |
+ window.internals.garbageCollectDocumentResources(document); |
+ // In Oilpan, Resource objects are not destructed until GC. |
+ if (window.GCController) |
+ GCController.collectAll(); |
+} |
+ |
+function test() |
+{ |
+ var timeZero = 0; |
+ |
+ InspectorTest.recordNetwork(); |
+ NetworkAgent.setCacheDisabled(true, step1); |
+ |
+ function step1() |
+ { |
+ InspectorTest.addConsoleSniffer(step2); |
+ InspectorTest.evaluateInPage("loadScript()"); |
+ } |
+ |
+ function step2(event) |
+ { |
+ InspectorTest.evaluateInPage("unloadScript()", step3); |
+ } |
+ |
+ function step3() |
+ { |
+ InspectorTest.evaluateInPage("gc()", step4); |
+ } |
+ |
+ function step4() |
+ { |
+ NetworkAgent.setCacheDisabled(true, step5); |
+ } |
+ |
+ function step5() |
+ { |
+ var request = InspectorTest.networkRequests().pop(); |
+ InspectorTest.addResult("URL:" + request.url); |
+ InspectorTest.addResult("from memory cache: " + !!request._fromMemoryCache); |
+ InspectorTest.addResult("from disk cache: " + !!request._fromDiskCache); |
+ InspectorTest.addResult("has timing: " + !!request._timing); |
+ InspectorTest.addResult(""); |
+ timeZero = request._timing.requestTime; |
+ NetworkAgent.setCacheDisabled(false, step6); |
+ } |
+ |
+ function step6() |
+ { |
+ InspectorTest.addConsoleSniffer(step7); |
+ InspectorTest.evaluateInPage("loadScript()"); |
+ } |
+ |
+ function step7() |
+ { |
+ var request = InspectorTest.networkRequests().pop(); |
+ InspectorTest.addResult("URL:" + request.url); |
+ InspectorTest.addResult("from memory cache: " + !!request._fromMemoryCache); |
+ InspectorTest.addResult("from disk cache: " + !!request._fromDiskCache); |
+ InspectorTest.addResult("has timing: " + !!request._timing); |
+ InspectorTest.addResult(""); |
+ var time = request._timing.requestTime; |
+ InspectorTest.addResult("Second request starts later than first: " + (time > timeZero)); |
+ InspectorTest.completeTest(); |
+ } |
+} |
+</script> |
+</head> |
+<body onload="runTest()"> |
+ <p> Tests requests loaded from disk cache have correct timing</p> |
+</body> |
+</html> |
+ |