Title: [91408] trunk
Revision
91408
Author
vse...@chromium.org
Date
2011-07-20 14:52:18 -0700 (Wed, 20 Jul 2011)

Log Message

Web Inspector: Add support for disabling cache in web inspector.
https://bugs.webkit.org/show_bug.cgi?id=64097

Reviewed by Pavel Feldman.

Source/WebCore:

Tests: http/tests/inspector/network/network-disable-cache-memory.html
       http/tests/inspector/network/network-disable-cache-xhrs.html

* English.lproj/localizedStrings.js:
* inspector/Inspector.json:
* inspector/InspectorClient.h:
(WebCore::InspectorClient::setCacheDisabled):
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::willSendRequest):
(WebCore::InspectorResourceAgent::enable):
(WebCore::InspectorResourceAgent::disable):
(WebCore::InspectorResourceAgent::setCacheDisabled):
* inspector/InspectorResourceAgent.h:
* inspector/front-end/NetworkManager.js:
(WebInspector.NetworkManager.prototype.inflightResourceForURL):
(WebInspector.NetworkManager.prototype._cacheDisabledSettingChanged):
* inspector/front-end/Settings.js:
(WebInspector.Settings):
* inspector/front-end/SettingsScreen.js:
(WebInspector.SettingsScreen):

Source/WebKit/chromium:

* src/InspectorClientImpl.cpp:
(WebKit::InspectorClientImpl::setCacheDisabled):
* src/InspectorClientImpl.h:
* src/WebDevToolsAgentImpl.cpp:
(WebKit::WebDevToolsAgentImpl::setCacheDisabled):
* src/WebDevToolsAgentImpl.h:
* src/js/DevTools.js:
():

LayoutTests:

* http/tests/inspector/inspector-test.js:
(initialize_InspectorTest):
* http/tests/inspector/network/network-disable-cache-memory-expected.txt: Added.
* http/tests/inspector/network/network-disable-cache-memory.html: Added.
* http/tests/inspector/network/network-disable-cache-xhrs-expected.txt: Added.
* http/tests/inspector/network/network-disable-cache-xhrs.html: Added.
* http/tests/inspector/network/resources/resource.php:
* platform/gtk/Skipped:
* platform/mac/Skipped:
* platform/qt/Skipped:
* platform/win/Skipped:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (91407 => 91408)


--- trunk/LayoutTests/ChangeLog	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/LayoutTests/ChangeLog	2011-07-20 21:52:18 UTC (rev 91408)
@@ -1,3 +1,22 @@
+2011-07-19  Vsevolod Vlasov  <vse...@chromium.org>
+
+        Web Inspector: Add support for disabling cache in web inspector.
+        https://bugs.webkit.org/show_bug.cgi?id=64097
+
+        Reviewed by Pavel Feldman.
+
+        * http/tests/inspector/inspector-test.js:
+        (initialize_InspectorTest):
+        * http/tests/inspector/network/network-disable-cache-memory-expected.txt: Added.
+        * http/tests/inspector/network/network-disable-cache-memory.html: Added.
+        * http/tests/inspector/network/network-disable-cache-xhrs-expected.txt: Added.
+        * http/tests/inspector/network/network-disable-cache-xhrs.html: Added.
+        * http/tests/inspector/network/resources/resource.php:
+        * platform/gtk/Skipped:
+        * platform/mac/Skipped:
+        * platform/qt/Skipped:
+        * platform/win/Skipped:
+
 2011-07-20  Stephen White  <senorbla...@chromium.org>
 
         Chromium test_expectations update for tests now passing on WIN7.

Modified: trunk/LayoutTests/http/tests/inspector/inspector-test.js (91407 => 91408)


--- trunk/LayoutTests/http/tests/inspector/inspector-test.js	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/LayoutTests/http/tests/inspector/inspector-test.js	2011-07-20 21:52:18 UTC (rev 91408)
@@ -263,7 +263,7 @@
 
 InspectorTest.assertTrue = function(found, message)
 {
-    InspectorTest.assertEquals(true, !!found);
+    InspectorTest.assertEquals(true, !!found, message);
 }
 
 InspectorTest.safeWrap = function(func, onexception)

Added: trunk/LayoutTests/http/tests/inspector/network/network-disable-cache-memory-expected.txt (0 => 91408)


--- trunk/LayoutTests/http/tests/inspector/network/network-disable-cache-memory-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/http/tests/inspector/network/network-disable-cache-memory-expected.txt	2011-07-20 21:52:18 UTC (rev 91408)
@@ -0,0 +1,8 @@
+CONSOLE MESSAGE: line 26: First two images loaded.
+CONSOLE MESSAGE: line 36: Done.
+Tests disabling cache from inspector.
+
+
+http://127.0.0.1:8000/inspector/network/resources/resource.php?type=image&random=1&cached=1
+http://127.0.0.1:8000/inspector/network/resources/resource.php?type=image&random=1&cached=1
+
Property changes on: trunk/LayoutTests/http/tests/inspector/network/network-disable-cache-memory-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/http/tests/inspector/network/network-disable-cache-memory.html (0 => 91408)


--- trunk/LayoutTests/http/tests/inspector/network/network-disable-cache-memory.html	                        (rev 0)
+++ trunk/LayoutTests/http/tests/inspector/network/network-disable-cache-memory.html	2011-07-20 21:52:18 UTC (rev 91408)
@@ -0,0 +1,93 @@
+<html>
+<head>
+<script src=""
+<script src=""
+<script>
+function loadImage(callback)
+{
+    var image = new Image();
+    image._onload_ = callback;
+    image.src = ""
+    document.body.appendChild(image);
+}
+
+function loadData()
+{
+    loadImage(imageLoaded1);
+}
+
+function imageLoaded1()
+{
+    loadImage(imageLoaded2);
+}
+
+function imageLoaded2()
+{
+    console.log("First two images loaded.");
+}
+
+function cacheDisabled()
+{
+    loadImage(allImagesLoaded);
+}
+
+function allImagesLoaded()
+{
+    console.log("Done.");
+}
+
+function test()
+{
+    InspectorTest.addSniffer(WebInspector.ConsoleView.prototype, "addMessage", step2);
+    InspectorTest.evaluateInPage("loadData()");
+
+    function step2(msg)
+    {
+        NetworkAgent.setCacheDisabled(true, step3);
+    }
+
+    function step3(msg)
+    {
+        InspectorTest.addSniffer(WebInspector.ConsoleView.prototype, "addMessage", step4);
+        InspectorTest.evaluateInPage("cacheDisabled()");
+    }
+
+    function step4(msg)
+    {
+        // inspector-test.js appears in network panel occasionally in Safari on
+        // Mac, so checking two last resources.
+        var resourcesCount = WebInspector.panels.network.resources.length;
+        var resource1 = WebInspector.panels.network.resources[resourcesCount - 2];
+        var resource2 = WebInspector.panels.network.resources[resourcesCount - 1];
+        resource1.requestContent(contentLoaded);
+        resource2.requestContent(contentLoaded);
+    }
+
+    var contentLoadedCount = 0;
+    function contentLoaded()
+    {
+        if (++contentLoadedCount !== 2)
+            return;
+
+        var resourcesCount = WebInspector.panels.network.resources.length;
+        var resource1 = WebInspector.panels.network.resources[resourcesCount - 2];
+        var resource2 = WebInspector.panels.network.resources[resourcesCount - 1];
+
+        InspectorTest.addResult(resource1.url);
+        InspectorTest.addResult(resource2.url);
+        InspectorTest.assertTrue(resource1.content !== resource2.content, "Second and third resources differ");
+        NetworkAgent.setCacheDisabled(false, step5);
+    }
+
+    function step5(msg)
+    {
+        InspectorTest.completeTest();
+    }
+}
+</script>
+</head>
+<body _onload_="runTest()">
+    <p>Tests disabling cache from inspector.</p>
+</body>
+</html>
+
Property changes on: trunk/LayoutTests/http/tests/inspector/network/network-disable-cache-memory.html
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/http/tests/inspector/network/network-disable-cache-xhrs-expected.txt (0 => 91408)


--- trunk/LayoutTests/http/tests/inspector/network/network-disable-cache-xhrs-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/http/tests/inspector/network/network-disable-cache-xhrs-expected.txt	2011-07-20 21:52:18 UTC (rev 91408)
@@ -0,0 +1,8 @@
+CONSOLE MESSAGE: line 23: First XHR loaded.
+CONSOLE MESSAGE: line 33: Done.
+Tests disabling cache from inspector.
+
+http://127.0.0.1:8000/inspector/network/resources/resource.php?random=1&cached=1
+http://127.0.0.1:8000/inspector/network/resources/resource.php?random=1&cached=1
+http://127.0.0.1:8000/inspector/network/resources/resource.php?random=1&cached=1
+
Property changes on: trunk/LayoutTests/http/tests/inspector/network/network-disable-cache-xhrs-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/http/tests/inspector/network/network-disable-cache-xhrs.html (0 => 91408)


--- trunk/LayoutTests/http/tests/inspector/network/network-disable-cache-xhrs.html	                        (rev 0)
+++ trunk/LayoutTests/http/tests/inspector/network/network-disable-cache-xhrs.html	2011-07-20 21:52:18 UTC (rev 91408)
@@ -0,0 +1,102 @@
+<html>
+<head>
+<script src=""
+<script src=""
+<script>
+function loadXHR(callback)
+{
+    doXHR("GET", "resources/resource.php?random=1&cached=1", true, callback);
+}
+
+function loadData()
+{
+    loadXHR(xhrLoaded1);
+}
+
+function xhrLoaded1()
+{
+    loadXHR(xhrLoaded2);
+}
+
+function xhrLoaded2()
+{
+    console.log("First XHR loaded.");
+}
+
+function cacheDisabled()
+{
+    loadXHR(allXHRsLoaded);
+}
+
+function allXHRsLoaded()
+{
+    console.log("Done.");
+}
+
+function test()
+{
+    // Since this test could be run together with other inspector backend cache
+    // tests, we need to reset size limits to default ones.
+    InspectorTest.resetInspectorResourcesData(step1);
+
+    function step1()
+    {
+        InspectorTest.addSniffer(WebInspector.ConsoleView.prototype, "addMessage", step2);
+        InspectorTest.evaluateInPage("loadData()");
+    }
+
+    function step2(msg)
+    {
+        NetworkAgent.setCacheDisabled(true, step3);
+    }
+
+    function step3(msg)
+    {
+        InspectorTest.addSniffer(WebInspector.ConsoleView.prototype, "addMessage", step4);
+        InspectorTest.evaluateInPage("cacheDisabled()");
+    }
+
+    function step4(msg)
+    {
+        // inspector-test.js appears in network panel occasionally in Safari on
+        // Mac, so checking two last resources.
+        var resourcesCount = WebInspector.panels.network.resources.length;
+        var resource1 = WebInspector.panels.network.resources[resourcesCount - 3];
+        var resource2 = WebInspector.panels.network.resources[resourcesCount - 2];
+        var resource3 = WebInspector.panels.network.resources[resourcesCount - 1];
+        resource1.requestContent(contentLoaded);
+        resource2.requestContent(contentLoaded);
+        resource3.requestContent(contentLoaded);
+    }
+
+    var contentLoadedCount = 0;
+    function contentLoaded()
+    {
+        if (++contentLoadedCount !== 3)
+            return;
+
+        var resourcesCount = WebInspector.panels.network.resources.length;
+        var resource1 = WebInspector.panels.network.resources[resourcesCount - 3];
+        var resource2 = WebInspector.panels.network.resources[resourcesCount - 2];
+        var resource3 = WebInspector.panels.network.resources[resourcesCount - 1];
+
+        InspectorTest.addResult(resource1.url);
+        InspectorTest.addResult(resource2.url);
+        InspectorTest.addResult(resource3.url);
+        InspectorTest.assertTrue(resource1.content === resource2.content, "First and second resources are equal");
+        InspectorTest.assertTrue(resource2.content !== resource3.content, "Second and third resources differ");
+        NetworkAgent.setCacheDisabled(false, step5);
+    }
+
+    function step5(msg)
+    {
+        InspectorTest.completeTest();
+    }
+}
+</script>
+</head>
+<body _onload_="runTest()">
+    <p>Tests disabling cache from inspector.</p>
+</body>
+</html>
+
Property changes on: trunk/LayoutTests/http/tests/inspector/network/network-disable-cache-xhrs.html
___________________________________________________________________

Added: svn:eol-style

Modified: trunk/LayoutTests/http/tests/inspector/network/resources/resource.php (91407 => 91408)


--- trunk/LayoutTests/http/tests/inspector/network/resources/resource.php	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/LayoutTests/http/tests/inspector/network/resources/resource.php	2011-07-20 21:52:18 UTC (rev 91408)
@@ -8,19 +8,37 @@
     $jscontent = $_GET["jscontent"];
     $chunked = $_GET["chunked"];
     $random = $_GET["random"];
+    $cached = $_GET["cached"];
 
+    # Wait before sending response
+    if ($wait)
+        usleep($wait * 1000);
+
+    # Exit early if we return 304 code.
+    if ($cached && $_SERVER["HTTP_IF_MODIFIED_SINCE"]) {
+        header("HTTP/1.0 304 Not Modified");
+        exit;
+    }
+
     # Enable gzip compression if needed
     if ($gzip)
         ob_start("ob_gzhandler");
 
-    # Wait before sending response
-    if ($wait)
-        usleep($wait * 1000);
+    # Send headers
+    if ($cached) {
+        $max_age = 12 * 31 * 24 * 60 * 60; //one year
+        $expires = gmdate(DATE_RFC1123, time() + $max_age);
+        $last_modified = gmdate(DATE_RFC1123, time() - $max_age);
 
-    # Send headers
-    header("Expires: Thu, 01 Dec 2003 16:00:00 GMT");
-    header("Cache-Control: no-store, no-cache, must-revalidate");
-    header("Pragma: no-cache");
+        header("Cache-Control: public, max-age=" . 5*$max_age);
+        header("Cache-control: max-age=0");
+        header("Expires: " . $expires);
+        header("Last-Modified: " . $last_modified);
+    } else {
+        header("Expires: Thu, 01 Dec 2003 16:00:00 GMT");
+        header("Cache-Control: no-store, no-cache, must-revalidate");
+        header("Pragma: no-cache");
+    }
     if ($type == "js")
         header("Content-Type:text/_javascript_; charset=UTF-8");
     else if ($type == "image")
@@ -94,6 +112,8 @@
                 flush();
             }
             echo("world");
+            if ($random)
+                echo(": " . rand());
         }
     }
 ?>

Modified: trunk/LayoutTests/platform/gtk/Skipped (91407 => 91408)


--- trunk/LayoutTests/platform/gtk/Skipped	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/LayoutTests/platform/gtk/Skipped	2011-07-20 21:52:18 UTC (rev 91408)
@@ -1463,6 +1463,10 @@
 http/tests/inspector/network/network-size-sync.html
 http/tests/inspector/network/network-size.html
 
+# https://bugs.webkit.org/show_bug.cgi?id=64097
+http/tests/inspector/network/network-disable-cache-memory.html
+http/tests/inspector/network/network-disable-cache-xhrs.html
+
 # https://bugs.webkit.org/show_bug.cgi?id=61437
 http/tests/inspector/network/network-clear-after-disabled.html
 http/tests/inspector/network/network-close-load-open.html

Modified: trunk/LayoutTests/platform/mac/Skipped (91407 => 91408)


--- trunk/LayoutTests/platform/mac/Skipped	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/LayoutTests/platform/mac/Skipped	2011-07-20 21:52:18 UTC (rev 91408)
@@ -326,6 +326,10 @@
 http/tests/inspector/network/network-size-chunked.html
 http/tests/inspector/network/network-size-sync.html
 
+# https://bugs.webkit.org/show_bug.cgi?id=64097
+http/tests/inspector/network/network-disable-cache-memory.html
+http/tests/inspector/network/network-disable-cache-xhrs.html
+
 # https://bugs.webkit.org/show_bug.cgi?id=58515
 compositing/overflow/clip-content-under-overflow-controls.html
 

Modified: trunk/LayoutTests/platform/qt/Skipped (91407 => 91408)


--- trunk/LayoutTests/platform/qt/Skipped	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/LayoutTests/platform/qt/Skipped	2011-07-20 21:52:18 UTC (rev 91408)
@@ -2200,6 +2200,10 @@
 http/tests/inspector/network/network-size-chunked.html
 http/tests/inspector/network/network-size-sync.html
 
+# https://bugs.webkit.org/show_bug.cgi?id=64097
+http/tests/inspector/network/network-disable-cache-memory.html
+http/tests/inspector/network/network-disable-cache-xhrs.html
+
 # [Qt] media/video-playbackrate.html fails
 # https://bugs.webkit.org/show_bug.cgi?id=57476
 media/video-playbackrate.html

Modified: trunk/LayoutTests/platform/win/Skipped (91407 => 91408)


--- trunk/LayoutTests/platform/win/Skipped	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/LayoutTests/platform/win/Skipped	2011-07-20 21:52:18 UTC (rev 91408)
@@ -52,6 +52,10 @@
 http/tests/inspector/network/network-size-chunked.html
 http/tests/inspector/network/network-size-sync.html
 
+# https://bugs.webkit.org/show_bug.cgi?id=64097
+http/tests/inspector/network/network-disable-cache-memory.html
+http/tests/inspector/network/network-disable-cache-xhrs.html
+
 # Fails <rdar://problem/5674289>
 media/video-seek-past-end-paused.html
 

Modified: trunk/Source/WebCore/ChangeLog (91407 => 91408)


--- trunk/Source/WebCore/ChangeLog	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/Source/WebCore/ChangeLog	2011-07-20 21:52:18 UTC (rev 91408)
@@ -1,3 +1,31 @@
+2011-07-19  Vsevolod Vlasov  <vse...@chromium.org>
+
+        Web Inspector: Add support for disabling cache in web inspector.
+        https://bugs.webkit.org/show_bug.cgi?id=64097
+
+        Reviewed by Pavel Feldman.
+
+        Tests: http/tests/inspector/network/network-disable-cache-memory.html
+               http/tests/inspector/network/network-disable-cache-xhrs.html
+
+        * English.lproj/localizedStrings.js:
+        * inspector/Inspector.json:
+        * inspector/InspectorClient.h:
+        (WebCore::InspectorClient::setCacheDisabled):
+        * inspector/InspectorResourceAgent.cpp:
+        (WebCore::InspectorResourceAgent::willSendRequest):
+        (WebCore::InspectorResourceAgent::enable):
+        (WebCore::InspectorResourceAgent::disable):
+        (WebCore::InspectorResourceAgent::setCacheDisabled):
+        * inspector/InspectorResourceAgent.h:
+        * inspector/front-end/NetworkManager.js:
+        (WebInspector.NetworkManager.prototype.inflightResourceForURL):
+        (WebInspector.NetworkManager.prototype._cacheDisabledSettingChanged):
+        * inspector/front-end/Settings.js:
+        (WebInspector.Settings):
+        * inspector/front-end/SettingsScreen.js:
+        (WebInspector.SettingsScreen):
+
 2011-07-20  Peter Kasting  <pkast...@google.com>
 
         Remove "const" from obviously-non-const accessors

Modified: trunk/Source/WebCore/English.lproj/localizedStrings.js


(Binary files differ)

Modified: trunk/Source/WebCore/inspector/Inspector.json (91407 => 91408)


--- trunk/Source/WebCore/inspector/Inspector.json	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/Source/WebCore/inspector/Inspector.json	2011-07-20 21:52:18 UTC (rev 91408)
@@ -508,7 +508,14 @@
             {
                 "name": "clearBrowserCookies",
                 "description": "Clears browser cookies."
-            }
+            },
+            {
+                "name": "setCacheDisabled",
+                "parameters": [
+                    { "name": "cacheDisabled", "type": "boolean", "description": "Cache disabled state." }
+                ],
+                "description": "Toggles ignoring cache for each request. If <code>true</code>, cache will not be used." 
+            },
         ],
         "events": [
             {

Modified: trunk/Source/WebCore/inspector/InspectorClient.h (91407 => 91408)


--- trunk/Source/WebCore/inspector/InspectorClient.h	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/Source/WebCore/inspector/InspectorClient.h	2011-07-20 21:52:18 UTC (rev 91408)
@@ -54,6 +54,7 @@
 
     virtual void clearBrowserCache() { }
     virtual void clearBrowserCookies() { }
+    virtual void setCacheDisabled(bool) { }
 
     bool doDispatchMessageOnFrontendPage(Page* frontendPage, const String& message);
 };

Modified: trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp (91407 => 91408)


--- trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp	2011-07-20 21:52:18 UTC (rev 91408)
@@ -74,6 +74,7 @@
 static const char resourceAgentEnabled[] = "resourceAgentEnabled";
 static const char extraRequestHeaders[] = "extraRequestHeaders";
 static const char backgroundEventsCollectionEnabled[] = "backgroundEventsCollectionEnabled";
+static const char cacheDisabled[] = "cacheDisabled";
 }
 
 void InspectorResourceAgent::setFrontend(InspectorFrontend* frontend)
@@ -217,6 +218,12 @@
     request.setReportLoadTiming(true);
     request.setReportRawHeaders(true);
 
+    if (m_state->getBoolean(ResourceAgentState::cacheDisabled)) {
+        request.setCachePolicy(ReloadIgnoringCacheData);
+        request.setHTTPHeaderField("Pragma", "no-cache");
+        request.setHTTPHeaderField("Cache-Control", "no-cache");
+    }
+
     RefPtr<ScriptCallStack> callStack = createScriptCallStack(ScriptCallStack::maxCallStackSizeToCapture, true);
     RefPtr<InspectorArray> callStackValue;
     if (callStack)
@@ -435,12 +442,15 @@
         return;
     m_state->setBoolean(ResourceAgentState::resourceAgentEnabled, true);
     m_instrumentingAgents->setInspectorResourceAgent(this);
+
+    m_client->setCacheDisabled(m_state->getBoolean(ResourceAgentState::cacheDisabled));
 }
 
 void InspectorResourceAgent::disable(ErrorString*)
 {
     m_state->setBoolean(ResourceAgentState::resourceAgentEnabled, false);
     m_instrumentingAgents->setInspectorResourceAgent(0);
+    m_client->setCacheDisabled(false);
 }
 
 void InspectorResourceAgent::setUserAgentOverride(ErrorString*, const String& userAgent)
@@ -499,6 +509,12 @@
     m_client->clearBrowserCookies();
 }
 
+void InspectorResourceAgent::setCacheDisabled(ErrorString*, bool cacheDisabled)
+{
+    m_client->setCacheDisabled(cacheDisabled);
+    m_state->setBoolean(ResourceAgentState::cacheDisabled, cacheDisabled);
+}
+
 void InspectorResourceAgent::mainFrameNavigated(DocumentLoader* loader)
 {
     m_resourcesData->clear(m_pageAgent->loaderId(loader));

Modified: trunk/Source/WebCore/inspector/InspectorResourceAgent.h (91407 => 91408)


--- trunk/Source/WebCore/inspector/InspectorResourceAgent.h	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/Source/WebCore/inspector/InspectorResourceAgent.h	2011-07-20 21:52:18 UTC (rev 91408)
@@ -127,6 +127,7 @@
 
     void clearBrowserCache(ErrorString*);
     void clearBrowserCookies(ErrorString*);
+    void setCacheDisabled(ErrorString*, bool cacheDisabled);
 
 private:
     InspectorResourceAgent(InstrumentingAgents*, InspectorPageAgent*, InspectorClient*, InspectorState*);

Modified: trunk/Source/WebCore/inspector/front-end/NetworkManager.js (91407 => 91408)


--- trunk/Source/WebCore/inspector/front-end/NetworkManager.js	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/Source/WebCore/inspector/front-end/NetworkManager.js	2011-07-20 21:52:18 UTC (rev 91408)
@@ -32,7 +32,11 @@
 {
     WebInspector.Object.call(this);
     this._dispatcher = new WebInspector.NetworkDispatcher(this);
+    if (WebInspector.settings.cacheDisabled.get())
+        NetworkAgent.setCacheDisabled(true);
     NetworkAgent.enable();
+    
+    WebInspector.settings.cacheDisabled.addChangeListener(this._cacheDisabledSettingChanged.bind(this));
 }
 
 WebInspector.NetworkManager.EventTypes = {
@@ -62,6 +66,11 @@
     inflightResourceForURL: function(url)
     {
         return this._dispatcher._inflightResourcesByURL[url];
+    },
+    
+    _cacheDisabledSettingChanged: function(event)
+    {
+        NetworkAgent.setCacheDisabled(event.data);
     }
 }
 

Modified: trunk/Source/WebCore/inspector/front-end/Settings.js (91407 => 91408)


--- trunk/Source/WebCore/inspector/front-end/Settings.js	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/Source/WebCore/inspector/front-end/Settings.js	2011-07-20 21:52:18 UTC (rev 91408)
@@ -53,7 +53,8 @@
     saveAsAvailable: false,
     useLowerCaseMenuTitlesOnWindows: false,
     canInspectWorkers: false,
-    canClearCacheAndCookies: false
+    canClearCacheAndCookies: false,
+    canDisableCache: false
 }
 
 WebInspector.Settings = function()
@@ -82,6 +83,7 @@
     this.installApplicationSetting("domBreakpoints", []);
     this.installApplicationSetting("xhrBreakpoints", []);
     this.installApplicationSetting("workerInspectionEnabled", []);
+    this.installApplicationSetting("cacheDisabled", false);
 
     // If there are too many breakpoints in a storage, it is likely due to a recent bug that caused
     // periodical breakpoints duplication leading to inspector slowness.

Modified: trunk/Source/WebCore/inspector/front-end/SettingsScreen.js (91407 => 91408)


--- trunk/Source/WebCore/inspector/front-end/SettingsScreen.js	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/Source/WebCore/inspector/front-end/SettingsScreen.js	2011-07-20 21:52:18 UTC (rev 91408)
@@ -45,6 +45,11 @@
         [ WebInspector.StylesSidebarPane.ColorFormat.RGB, "RGB: rgb(128, 255, 255)" ],
         [ WebInspector.StylesSidebarPane.ColorFormat.HSL, "HSL: hsl(300, 80%, 90%)" ] ], WebInspector.settings.colorFormat));
 
+    if (Preferences.canDisableCache) {
+        p = this._appendSection(WebInspector.UIString("Network"));
+        p.appendChild(this._createCheckboxSetting(WebInspector.UIString("Disable cache"), WebInspector.settings.cacheDisabled));
+    }
+
     p = this._appendSection(WebInspector.UIString("Console"));
     p.appendChild(this._createCheckboxSetting(WebInspector.UIString("Log XMLHttpRequests"), WebInspector.settings.monitoringXHREnabled));
     p.appendChild(this._createCheckboxSetting(WebInspector.UIString("Preserve log upon navigation"), WebInspector.settings.preserveConsoleLog));

Modified: trunk/Source/WebKit/chromium/ChangeLog (91407 => 91408)


--- trunk/Source/WebKit/chromium/ChangeLog	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/Source/WebKit/chromium/ChangeLog	2011-07-20 21:52:18 UTC (rev 91408)
@@ -1,3 +1,19 @@
+2011-07-19  Vsevolod Vlasov  <vse...@chromium.org>
+
+        Web Inspector: Add support for disabling cache in web inspector.
+        https://bugs.webkit.org/show_bug.cgi?id=64097
+
+        Reviewed by Pavel Feldman.
+
+        * src/InspectorClientImpl.cpp:
+        (WebKit::InspectorClientImpl::setCacheDisabled):
+        * src/InspectorClientImpl.h:
+        * src/WebDevToolsAgentImpl.cpp:
+        (WebKit::WebDevToolsAgentImpl::setCacheDisabled):
+        * src/WebDevToolsAgentImpl.h:
+        * src/js/DevTools.js:
+        ():
+
 2011-07-20  Peter Kasting  <pkast...@google.com>
 
         Remove "const" from obviously-non-const accessors

Modified: trunk/Source/WebKit/chromium/src/InspectorClientImpl.cpp (91407 => 91408)


--- trunk/Source/WebKit/chromium/src/InspectorClientImpl.cpp	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/Source/WebKit/chromium/src/InspectorClientImpl.cpp	2011-07-20 21:52:18 UTC (rev 91408)
@@ -106,6 +106,12 @@
         agent->clearBrowserCookies();
 }
 
+void InspectorClientImpl::setCacheDisabled(bool cacheDisabled)
+{
+    if (WebDevToolsAgentImpl* agent = devToolsAgent())
+        agent->setCacheDisabled(cacheDisabled);
+}
+
 WebDevToolsAgentImpl* InspectorClientImpl::devToolsAgent()
 {
     return static_cast<WebDevToolsAgentImpl*>(m_inspectedWebView->devToolsAgent());

Modified: trunk/Source/WebKit/chromium/src/InspectorClientImpl.h (91407 => 91408)


--- trunk/Source/WebKit/chromium/src/InspectorClientImpl.h	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/Source/WebKit/chromium/src/InspectorClientImpl.h	2011-07-20 21:52:18 UTC (rev 91408)
@@ -59,6 +59,7 @@
 
     virtual void clearBrowserCache();
     virtual void clearBrowserCookies();
+    virtual void setCacheDisabled(bool);
 private:
     WebDevToolsAgentImpl* devToolsAgent();
 

Modified: trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp (91407 => 91408)


--- trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp	2011-07-20 21:52:18 UTC (rev 91408)
@@ -39,6 +39,7 @@
 #include "InspectorBackendDispatcher.h"
 #include "InspectorController.h"
 #include "InspectorInstrumentation.h"
+#include "MemoryCache.h"
 #include "Page.h"
 #include "PageGroup.h"
 #include "PageOverlay.h"
@@ -316,6 +317,11 @@
     m_client->clearBrowserCookies();
 }
 
+void WebDevToolsAgentImpl::setCacheDisabled(bool cacheDisabled)
+{
+    memoryCache()->setDisabled(cacheDisabled);
+}
+
 // FIXME: remove once renamed to setProcessId downstream.
 void WebDevToolsAgentImpl::setAgentIdentifierPrefix(const WebString& prefix)
 {

Modified: trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h (91407 => 91408)


--- trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h	2011-07-20 21:52:18 UTC (rev 91408)
@@ -95,6 +95,7 @@
 
     virtual void clearBrowserCache();
     virtual void clearBrowserCookies();
+    virtual void setCacheDisabled(bool);
 
     int hostId() { return m_hostId; }
 

Modified: trunk/Source/WebKit/chromium/src/js/DevTools.js (91407 => 91408)


--- trunk/Source/WebKit/chromium/src/js/DevTools.js	2011-07-20 21:27:22 UTC (rev 91407)
+++ trunk/Source/WebKit/chromium/src/js/DevTools.js	2011-07-20 21:52:18 UTC (rev 91408)
@@ -54,6 +54,7 @@
     Preferences.useLowerCaseMenuTitlesOnWindows = true;
     Preferences.canInspectWorkers = true;
     Preferences.canClearCacheAndCookies = true;
+    Preferences.canDisableCache = true;
 })();
 
 // Recognize WebP as a valid image mime type.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to