3 <script src="../inspector-test.js"></script>
4 <script src="../network-test.js"></script>
7 function loadFirstImage() {
9 image.onload = firstImageLoaded;
10 document.body.appendChild(image);
11 image.src = "resources/resource.php?type=image&random=1&size=400";
14 function firstImageLoaded()
16 console.log("Done1.");
19 function loadSecondImage() {
20 image.onload = secondImageLoaded;
21 image.src = "resources/resource.php?type=image&random=1&size=200";
24 function secondImageLoaded()
26 console.log("Done2.");
29 function forceCachedResourceLoaderGC() {
31 window.internals.garbageCollectDocumentResources();
36 // Since this test could be run together with other inspector backend cache
37 // tests, we need to reset size limits to default ones.
38 InspectorTest.resetInspectorResourcesData(step1);
43 InspectorTest.recordNetwork();
44 InspectorTest.addConsoleSniffer(step2);
45 InspectorTest.evaluateInPage("loadFirstImage()");
50 imageRequest = InspectorTest.networkRequests().pop();
51 imageRequest.requestContent(step3);
54 var originalContentLength;
57 InspectorTest.addResult(imageRequest.url);
58 InspectorTest.addResult("request.type: " + imageRequest.resourceType());
59 InspectorTest.addResult("request.content.length after requesting content: " + imageRequest.content.length);
60 originalContentLength = imageRequest.content.length;
61 InspectorTest.assertTrue(imageRequest.content.length > 0, "No content before destroying CachedResource.");
63 InspectorTest.addResult("Releasing cached resource.");
64 // Loading another image to the same image element so that the original image cached resource is released.
65 InspectorTest.addConsoleSniffer(step4);
66 InspectorTest.evaluateInPage("loadSecondImage()");
71 // Disable-enable cache to force MemoryCache::evictResources().
72 NetworkAgent.setCacheDisabled(true, step5);
77 NetworkAgent.setCacheDisabled(false, step6);
82 // Force CachedResourceLoader garbage collector run.
83 InspectorTest.evaluateInPage("forceCachedResourceLoaderGC()");
85 // Re-request content now that CachedResource should have been destroyed.
86 delete imageRequest._content;
87 imageRequest.requestContent(step7);
92 InspectorTest.addResult("request.content.length after requesting content: " + imageRequest.content.length);
93 originalContentLength = imageRequest.content.length;
94 InspectorTest.assertTrue(imageRequest.content.length === originalContentLength, "Content changed after cached resource was destroyed");
95 InspectorTest.resetInspectorResourcesData(step8);
100 InspectorTest.completeTest();
105 <body onload="runTest()">
106 <p>Tests content is moved from cached resource to resource agent's data storage when cached resource is destroyed.</p>
107 <a href="https://bugs.webkit.org/show_bug.cgi?id=92108">Bug 92108</a>