Title: [90553] trunk
Revision
90553
Author
vse...@chromium.org
Date
2011-07-07 03:47:03 -0700 (Thu, 07 Jul 2011)

Log Message

2011-07-07  Vsevolod Vlasov  <vse...@chromium.org>

        Web Inspector: Add support for clearing cache and cookies from network panel.
        https://bugs.webkit.org/show_bug.cgi?id=63999

        Added clear cache and cookies tests. Since no port currently supports
        this functionality, the tests are disabled.

        Reviewed by Pavel Feldman.

        * http/tests/inspector/network/network-clear-cache-expected.txt: Added.
        * http/tests/inspector/network/network-clear-cache.html-disabled: Added.
        * http/tests/inspector/network/network-clear-cookies-expected.txt: Added.
        * http/tests/inspector/network/network-clear-cookies.html-disabled: Added.
        * http/tests/inspector/network/resources/random-cached.php: Added.
        * http/tests/inspector/network/resources/set-cookie.php: Added.
2011-07-07  Vsevolod Vlasov  <vse...@chromium.org>

        Web Inspector: Add support for clearing cache and cookies from network panel.
        https://bugs.webkit.org/show_bug.cgi?id=63999

        Reviewed by Pavel Feldman.

        * English.lproj/localizedStrings.js:
        * inspector/Inspector.json:
        * inspector/InspectorClient.h:
        (WebCore::InspectorClient::clearBrowserCache):
        (WebCore::InspectorClient::clearBrowserCookies):
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::clearBrowserCache):
        (WebCore::InspectorResourceAgent::clearBrowserCookies):
        (WebCore::InspectorResourceAgent::InspectorResourceAgent):
        * inspector/InspectorResourceAgent.h:
        (WebCore::InspectorResourceAgent::create):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkPanel.prototype._contextMenu):
        (WebInspector.NetworkPanel.prototype._clearBrowserCache):
        (WebInspector.NetworkPanel.prototype._clearBrowserCookies):
        * inspector/front-end/Settings.js:
2011-07-07  Vsevolod Vlasov  <vse...@chromium.org>

        Web Inspector: Add support for clearing cache and cookies from network panel.
        https://bugs.webkit.org/show_bug.cgi?id=63999

        Reviewed by Pavel Feldman.

        * public/WebDevToolsAgentClient.h:
        (WebKit::WebDevToolsAgentClient::clearBrowserCache):
        (WebKit::WebDevToolsAgentClient::clearBrowserCookies):
        * src/InspectorClientImpl.cpp:
        (WebKit::InspectorClientImpl::clearBrowserCache):
        (WebKit::InspectorClientImpl::clearBrowserCookies):
        * src/InspectorClientImpl.h:
        * src/WebDevToolsAgentImpl.cpp:
        (WebKit::WebDevToolsAgentImpl::clearBrowserCache):
        (WebKit::WebDevToolsAgentImpl::clearBrowserCookies):
        * src/WebDevToolsAgentImpl.h:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (90552 => 90553)


--- trunk/LayoutTests/ChangeLog	2011-07-07 10:37:41 UTC (rev 90552)
+++ trunk/LayoutTests/ChangeLog	2011-07-07 10:47:03 UTC (rev 90553)
@@ -1,3 +1,20 @@
+2011-07-07  Vsevolod Vlasov  <vse...@chromium.org>
+
+        Web Inspector: Add support for clearing cache and cookies from network panel.
+        https://bugs.webkit.org/show_bug.cgi?id=63999
+
+        Added clear cache and cookies tests. Since no port currently supports
+        this functionality, the tests are disabled.
+
+        Reviewed by Pavel Feldman.
+
+        * http/tests/inspector/network/network-clear-cache-expected.txt: Added.
+        * http/tests/inspector/network/network-clear-cache.html-disabled: Added.
+        * http/tests/inspector/network/network-clear-cookies-expected.txt: Added.
+        * http/tests/inspector/network/network-clear-cookies.html-disabled: Added.
+        * http/tests/inspector/network/resources/random-cached.php: Added.
+        * http/tests/inspector/network/resources/set-cookie.php: Added.
+
 2011-07-07  Shinya Kawanaka  <shin...@google.com>
 
         Added more key bindings for input[type=range].

Added: trunk/LayoutTests/http/tests/inspector/network/network-clear-cache-expected.txt (0 => 90553)


--- trunk/LayoutTests/http/tests/inspector/network/network-clear-cache-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/http/tests/inspector/network/network-clear-cache-expected.txt	2011-07-07 10:47:03 UTC (rev 90553)
@@ -0,0 +1,8 @@
+CONSOLE MESSAGE: line 21: First XHR loaded.
+CONSOLE MESSAGE: line 36: Done.
+Tests clearing browser cache from inspector.
+
+http://127.0.0.1:8000/inspector/network/resources/random-cached.php
+http://127.0.0.1:8000/inspector/network/resources/random-cached.php
+http://127.0.0.1:8000/inspector/network/resources/random-cached.php
+
Property changes on: trunk/LayoutTests/http/tests/inspector/network/network-clear-cache-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/http/tests/inspector/network/network-clear-cache.html-disabled (0 => 90553)


--- trunk/LayoutTests/http/tests/inspector/network/network-clear-cache.html-disabled	                        (rev 0)
+++ trunk/LayoutTests/http/tests/inspector/network/network-clear-cache.html-disabled	2011-07-07 10:47:03 UTC (rev 90553)
@@ -0,0 +1,96 @@
+<html>
+<head>
+<script src=""
+<script src=""
+<script>
+function loadData()
+{
+    if (!window.internals) {
+        console.log("This test can not be run as window.internals is not available.");
+        return;
+    }
+    // Since this test could be run together with other inspector backend cache
+    // tests, we need to reset size limits to default ones.
+    internals.setInspectorResourcesDataSizeLimits(document, 10 * 1000 * 1000, 1000 * 1000);
+
+    doXHR("GET", "resources/random-cached.php", true, xhrLoaded1);
+}
+
+function xhrLoaded1()
+{
+    console.log("First XHR loaded.");
+}
+
+function cacheCleared()
+{
+    doXHR("GET", "resources/random-cached.php", true, xhrLoaded2);
+}
+
+function xhrLoaded2()
+{
+    doXHR("GET", "resources/random-cached.php", true, allXHRsLoaded);
+}
+
+function allXHRsLoaded()
+{
+    console.log("Done.");
+}
+
+function test()
+{
+    InspectorTest.addSniffer(WebInspector.ConsoleView.prototype, "addMessage", step1);
+    InspectorTest.evaluateInPage("loadData()");
+
+    function step1(msg)
+    {
+        if (typeof(NetworkAgent.clearBrowserCache) === 'function')
+            NetworkAgent.clearBrowserCache(step2);
+        else
+            step2();
+    }
+
+    function step2(msg)
+    {
+        InspectorTest.addSniffer(WebInspector.ConsoleView.prototype, "addMessage", step3);
+        InspectorTest.evaluateInPage("cacheCleared()");
+    }
+
+    function step3(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);
+        InspectorTest.assertTrue(resource2.content === resource3.content);
+        InspectorTest.completeTest();
+    }
+}
+</script>
+</head>
+<body _onload_="runTest()">
+    <p>Tests clearing browser cache from inspector.</p>
+</body>
+</html>
+

Added: trunk/LayoutTests/http/tests/inspector/network/network-clear-cookies-expected.txt (0 => 90553)


--- trunk/LayoutTests/http/tests/inspector/network/network-clear-cookies-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/http/tests/inspector/network/network-clear-cookies-expected.txt	2011-07-07 10:47:03 UTC (rev 90553)
@@ -0,0 +1,7 @@
+CONSOLE MESSAGE: line 21: First XHR loaded.
+CONSOLE MESSAGE: line 36: Done.
+Tests clearing browser cookies from inspector.
+
+http://127.0.0.1:8000/inspector/network/resources/set-cookie.php
+http://127.0.0.1:8000/inspector/network/resources/set-cookie.php
+
Property changes on: trunk/LayoutTests/http/tests/inspector/network/network-clear-cookies-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/http/tests/inspector/network/network-clear-cookies.html-disabled (0 => 90553)


--- trunk/LayoutTests/http/tests/inspector/network/network-clear-cookies.html-disabled	                        (rev 0)
+++ trunk/LayoutTests/http/tests/inspector/network/network-clear-cookies.html-disabled	2011-07-07 10:47:03 UTC (rev 90553)
@@ -0,0 +1,93 @@
+<html>
+<head>
+<script src=""
+<script src=""
+<script>
+function loadData()
+{
+    if (!window.internals) {
+        console.log("This test can not be run as window.internals is not available.");
+        return;
+    }
+    // Since this test could be run together with other inspector backend cache
+    // tests, we need to reset size limits to default ones.
+    internals.setInspectorResourcesDataSizeLimits(document, 10 * 1000 * 1000, 1000 * 1000);
+
+    doXHR("GET", "resources/set-cookie.php", true, xhrLoaded1);
+}
+
+function xhrLoaded1()
+{
+    console.log("First XHR loaded.");
+}
+
+function cookiesCleared()
+{
+    doXHR("GET", "resources/set-cookie.php", true, xhrLoaded2);
+}
+
+function xhrLoaded2()
+{
+    doXHR("GET", "resources/set-cookie.php", true, allXHRsLoaded);
+}
+
+function allXHRsLoaded()
+{
+    console.log("Done.");
+}
+
+function test()
+{
+    InspectorTest.addSniffer(WebInspector.ConsoleView.prototype, "addMessage", step1);
+    InspectorTest.evaluateInPage("loadData()");
+
+    function step1(msg)
+    {
+        if (typeof(NetworkAgent.clearBrowserCookies) === 'function')
+            NetworkAgent.clearBrowserCookies(step2);
+        else
+            step2();
+    }
+
+    function step2(msg)
+    {
+        InspectorTest.addSniffer(WebInspector.ConsoleView.prototype, "addMessage", step3);
+        InspectorTest.evaluateInPage("cookiesCleared()");
+    }
+
+    function step3(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];
+
+        InspectorTest.addResult(resource1.url);
+        InspectorTest.addResult(resource2.url);
+
+        InspectorTest.assertTrue(!hasRequestCookieWithName(resource1, "TestCookie"));
+        InspectorTest.assertTrue(hasRequestCookieWithName(resource2, "TestCookie"));
+        InspectorTest.completeTest();
+
+    }
+
+    function hasRequestCookieWithName(resource, name)
+    {
+        var requestCookies = resource.requestCookies;
+        if (!requestCookies)
+            return false;
+        for (var  i = 0; i < requestCookies.length; i++) {
+            if (requestCookies[i].name === name)
+                return true;
+        }
+        return false;
+    }
+}
+</script>
+</head>
+<body _onload_="runTest()">
+    <p>Tests clearing browser cookies from inspector.</p>
+</body>
+</html>
+

Added: trunk/LayoutTests/http/tests/inspector/network/resources/random-cached.php (0 => 90553)


--- trunk/LayoutTests/http/tests/inspector/network/resources/random-cached.php	                        (rev 0)
+++ trunk/LayoutTests/http/tests/inspector/network/resources/random-cached.php	2011-07-07 10:47:03 UTC (rev 90553)
@@ -0,0 +1,18 @@
+<?php
+    if ($_SERVER["HTTP_IF_MODIFIED_SINCE"]) {
+        header("HTTP/1.0 304 Not Modified");
+        exit;
+    }
+
+    $max_age = 12 * 31 * 24 * 60 * 60; //one year
+    $expires = gmdate(DATE_RFC1123, time() + $max_age);
+    $last_modified = gmdate(DATE_RFC1123, time() - $max_age);
+
+    header("Cache-Control: public, max-age=" . 5*$max_age);
+    header("Cache-control: max-age=0");
+    header("Expires: " . $expires);
+    header("Content-Type: text/html");
+    header("Last-Modified: " . $last_modified);
+
+    echo(rand());
+?>

Added: trunk/LayoutTests/http/tests/inspector/network/resources/set-cookie.php (0 => 90553)


--- trunk/LayoutTests/http/tests/inspector/network/resources/set-cookie.php	                        (rev 0)
+++ trunk/LayoutTests/http/tests/inspector/network/resources/set-cookie.php	2011-07-07 10:47:03 UTC (rev 90553)
@@ -0,0 +1,9 @@
+<?php
+    header("Expires: Thu, 01 Dec 2003 16:00:00 GMT");
+    header("Cache-Control: no-store, no-cache, must-revalidate");
+    header("Pragma: no-cache");
+    header("Content-Type: text/plain");
+    setcookie("TestCookie", "TestCookieValue");
+
+    echo("Cookie set.");
+?>

Modified: trunk/Source/WebCore/ChangeLog (90552 => 90553)


--- trunk/Source/WebCore/ChangeLog	2011-07-07 10:37:41 UTC (rev 90552)
+++ trunk/Source/WebCore/ChangeLog	2011-07-07 10:47:03 UTC (rev 90553)
@@ -1,3 +1,29 @@
+2011-07-07  Vsevolod Vlasov  <vse...@chromium.org>
+
+        Web Inspector: Add support for clearing cache and cookies from network panel.
+        https://bugs.webkit.org/show_bug.cgi?id=63999
+
+        Reviewed by Pavel Feldman.
+
+        * English.lproj/localizedStrings.js:
+        * inspector/Inspector.json:
+        * inspector/InspectorClient.h:
+        (WebCore::InspectorClient::clearBrowserCache):
+        (WebCore::InspectorClient::clearBrowserCookies):
+        * inspector/InspectorController.cpp:
+        (WebCore::InspectorController::InspectorController):
+        * inspector/InspectorResourceAgent.cpp:
+        (WebCore::InspectorResourceAgent::clearBrowserCache):
+        (WebCore::InspectorResourceAgent::clearBrowserCookies):
+        (WebCore::InspectorResourceAgent::InspectorResourceAgent):
+        * inspector/InspectorResourceAgent.h:
+        (WebCore::InspectorResourceAgent::create):
+        * inspector/front-end/NetworkPanel.js:
+        (WebInspector.NetworkPanel.prototype._contextMenu):
+        (WebInspector.NetworkPanel.prototype._clearBrowserCache):
+        (WebInspector.NetworkPanel.prototype._clearBrowserCookies):
+        * inspector/front-end/Settings.js:
+
 2011-07-07  Shinya Kawanaka  <shin...@google.com>
 
         Added more key bindings for input[type=range].

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


(Binary files differ)

Modified: trunk/Source/WebCore/inspector/Inspector.json (90552 => 90553)


--- trunk/Source/WebCore/inspector/Inspector.json	2011-07-07 10:37:41 UTC (rev 90552)
+++ trunk/Source/WebCore/inspector/Inspector.json	2011-07-07 10:47:03 UTC (rev 90553)
@@ -499,6 +499,14 @@
                     { "name": "content", "type": "string", "description": "Resource content." },
                     { "name": "base64Encoded", "type": "boolean", "description": "True, if content was served as base64." }
                 ]
+            },
+            {
+                "name": "clearBrowserCache",
+                "description": "Clears browser cache."
+            },
+            {
+                "name": "clearBrowserCookies",
+                "description": "Clears browser cookies."
             }
         ],
         "events": [

Modified: trunk/Source/WebCore/inspector/InspectorClient.h (90552 => 90553)


--- trunk/Source/WebCore/inspector/InspectorClient.h	2011-07-07 10:37:41 UTC (rev 90552)
+++ trunk/Source/WebCore/inspector/InspectorClient.h	2011-07-07 10:47:03 UTC (rev 90553)
@@ -52,6 +52,9 @@
     // or recording timeline). Following callbacks allow embedders to track these states.
     virtual void updateInspectorStateCookie(const String&) { };
 
+    virtual void clearBrowserCache() { }
+    virtual void clearBrowserCookies() { }
+
     bool doDispatchMessageOnFrontendPage(Page* frontendPage, const String& message);
 };
 

Modified: trunk/Source/WebCore/inspector/InspectorController.cpp (90552 => 90553)


--- trunk/Source/WebCore/inspector/InspectorController.cpp	2011-07-07 10:37:41 UTC (rev 90552)
+++ trunk/Source/WebCore/inspector/InspectorController.cpp	2011-07-07 10:47:03 UTC (rev 90553)
@@ -101,7 +101,7 @@
 #if ENABLE(OFFLINE_WEB_APPLICATIONS)
     , m_applicationCacheAgent(adoptPtr(new InspectorApplicationCacheAgent(m_instrumentingAgents.get(), page)))
 #endif
-    , m_resourceAgent(InspectorResourceAgent::create(m_instrumentingAgents.get(), m_pageAgent.get(), m_state.get()))
+    , m_resourceAgent(InspectorResourceAgent::create(m_instrumentingAgents.get(), m_pageAgent.get(), inspectorClient, m_state.get()))
     , m_runtimeAgent(adoptPtr(new PageRuntimeAgent(m_injectedScriptManager.get(), page)))
     , m_consoleAgent(adoptPtr(new InspectorConsoleAgent(m_instrumentingAgents.get(), m_inspectorAgent.get(), m_state.get(), m_injectedScriptManager.get(), m_domAgent.get())))
 #if ENABLE(_javascript__DEBUGGER)

Modified: trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp (90552 => 90553)


--- trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp	2011-07-07 10:37:41 UTC (rev 90552)
+++ trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp	2011-07-07 10:47:03 UTC (rev 90553)
@@ -41,6 +41,7 @@
 #include "Frame.h"
 #include "FrameLoader.h"
 #include "HTTPHeaderMap.h"
+#include "InspectorClient.h"
 #include "InspectorFrontend.h"
 #include "InspectorFrontendChannel.h"
 #include "InspectorFrontendProxy.h"
@@ -474,14 +475,25 @@
     *errorString = "No data found for resource with given identifier";
 }
 
+void InspectorResourceAgent::clearBrowserCache(ErrorString*)
+{
+    m_client->clearBrowserCache();
+}
+
+void InspectorResourceAgent::clearBrowserCookies(ErrorString*)
+{
+    m_client->clearBrowserCookies();
+}
+
 void InspectorResourceAgent::mainFrameNavigated(DocumentLoader* loader)
 {
     m_resourcesData->clear(m_pageAgent->loaderId(loader));
 }
 
-InspectorResourceAgent::InspectorResourceAgent(InstrumentingAgents* instrumentingAgents, InspectorPageAgent* pageAgent, InspectorState* state)
+InspectorResourceAgent::InspectorResourceAgent(InstrumentingAgents* instrumentingAgents, InspectorPageAgent* pageAgent, InspectorClient* client, InspectorState* state)
     : m_instrumentingAgents(instrumentingAgents)
     , m_pageAgent(pageAgent)
+    , m_client(client)
     , m_state(state)
     , m_resourcesData(adoptPtr(new NetworkResourcesData()))
     , m_loadingXHRSynchronously(false)

Modified: trunk/Source/WebCore/inspector/InspectorResourceAgent.h (90552 => 90553)


--- trunk/Source/WebCore/inspector/InspectorResourceAgent.h	2011-07-07 10:37:41 UTC (rev 90552)
+++ trunk/Source/WebCore/inspector/InspectorResourceAgent.h	2011-07-07 10:47:03 UTC (rev 90553)
@@ -51,6 +51,7 @@
 class EventsCollector;
 class Frame;
 class InspectorArray;
+class InspectorClient;
 class InspectorFrontend;
 class InspectorFrontendProxy;
 class InspectorObject;
@@ -74,9 +75,9 @@
 
 class InspectorResourceAgent : public RefCounted<InspectorResourceAgent> {
 public:
-    static PassRefPtr<InspectorResourceAgent> create(InstrumentingAgents* instrumentingAgents, InspectorPageAgent* pageAgent, InspectorState* state)
+    static PassRefPtr<InspectorResourceAgent> create(InstrumentingAgents* instrumentingAgents, InspectorPageAgent* pageAgent, InspectorClient* client, InspectorState* state)
     {
-        return adoptRef(new InspectorResourceAgent(instrumentingAgents, pageAgent, state));
+        return adoptRef(new InspectorResourceAgent(instrumentingAgents, pageAgent, client, state));
     }
 
     void setFrontend(InspectorFrontend*);
@@ -124,8 +125,11 @@
     void getResourceContent(ErrorString*, unsigned long identifier, String* content, bool* base64Encoded);
     void clearCache(ErrorString*, const String* const optionalPreservedLoaderId);
 
+    void clearBrowserCache(ErrorString*);
+    void clearBrowserCookies(ErrorString*);
+
 private:
-    InspectorResourceAgent(InstrumentingAgents*, InspectorPageAgent*, InspectorState*);
+    InspectorResourceAgent(InstrumentingAgents*, InspectorPageAgent*, InspectorClient*, InspectorState*);
 
     bool isBackgroundEventsCollectionEnabled();
     void enable();
@@ -133,6 +137,7 @@
 
     InstrumentingAgents* m_instrumentingAgents;
     InspectorPageAgent* m_pageAgent;
+    InspectorClient* m_client;
     InspectorState* m_state;
     InspectorFrontend::Network* m_frontend;
     OwnPtr<EventsCollector> m_eventsCollector;

Modified: trunk/Source/WebCore/inspector/front-end/NetworkPanel.js (90552 => 90553)


--- trunk/Source/WebCore/inspector/front-end/NetworkPanel.js	2011-07-07 10:37:41 UTC (rev 90552)
+++ trunk/Source/WebCore/inspector/front-end/NetworkPanel.js	2011-07-07 10:47:03 UTC (rev 90553)
@@ -993,6 +993,12 @@
             contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles() ? "Save all as HAR" : "Save All as HAR"), this._exportAll.bind(this));
         }
 
+        if (Preferences.canClearCacheAndCookies) {
+            contextMenu.appendSeparator();
+            contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles() ? "Clear browser cache" : "Clear Browser Cache"), this._clearBrowserCache.bind(this));
+            contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles() ? "Clear browser cookies" : "Clear Browser Cookies"), this._clearBrowserCookies.bind(this));
+        }
+
         contextMenu.show(event);
     },
 
@@ -1039,6 +1045,18 @@
         InspectorFrontendHost.saveAs(resource.displayName + ".har", JSON.stringify(har));
     },
 
+    _clearBrowserCache: function(event)
+    {
+        if (confirm(WebInspector.UIString("Are you sure you want to clear browser cache?")))
+            NetworkAgent.clearBrowserCache();
+    },
+
+    _clearBrowserCookies: function(event)
+    {
+        if (confirm(WebInspector.UIString("Are you sure you want to clear browser cookies?")))
+            NetworkAgent.clearBrowserCookies();
+    },
+
     _toggleBackgroundEventsCollection: function(resource)
     {
         this._backgroundCollectionEnabled = !this._backgroundCollectionEnabled;

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


--- trunk/Source/WebCore/inspector/front-end/Settings.js	2011-07-07 10:37:41 UTC (rev 90552)
+++ trunk/Source/WebCore/inspector/front-end/Settings.js	2011-07-07 10:47:03 UTC (rev 90553)
@@ -53,6 +53,7 @@
     saveAsAvailable: false,
     useLowerCaseMenuTitlesOnWindows: false,
     canInspectWorkers: false,
+    canClearCacheAndCookies: false
 }
 
 WebInspector.Settings = function()

Modified: trunk/Source/WebKit/chromium/ChangeLog (90552 => 90553)


--- trunk/Source/WebKit/chromium/ChangeLog	2011-07-07 10:37:41 UTC (rev 90552)
+++ trunk/Source/WebKit/chromium/ChangeLog	2011-07-07 10:47:03 UTC (rev 90553)
@@ -1,3 +1,22 @@
+2011-07-07  Vsevolod Vlasov  <vse...@chromium.org>
+
+        Web Inspector: Add support for clearing cache and cookies from network panel.
+        https://bugs.webkit.org/show_bug.cgi?id=63999
+
+        Reviewed by Pavel Feldman.
+
+        * public/WebDevToolsAgentClient.h:
+        (WebKit::WebDevToolsAgentClient::clearBrowserCache):
+        (WebKit::WebDevToolsAgentClient::clearBrowserCookies):
+        * src/InspectorClientImpl.cpp:
+        (WebKit::InspectorClientImpl::clearBrowserCache):
+        (WebKit::InspectorClientImpl::clearBrowserCookies):
+        * src/InspectorClientImpl.h:
+        * src/WebDevToolsAgentImpl.cpp:
+        (WebKit::WebDevToolsAgentImpl::clearBrowserCache):
+        (WebKit::WebDevToolsAgentImpl::clearBrowserCookies):
+        * src/WebDevToolsAgentImpl.h:
+
 2011-07-06  Adam Barth  <aba...@webkit.org>
 
         Unreviewed.  Rolled DEPS.

Modified: trunk/Source/WebKit/chromium/public/WebDevToolsAgentClient.h (90552 => 90553)


--- trunk/Source/WebKit/chromium/public/WebDevToolsAgentClient.h	2011-07-07 10:37:41 UTC (rev 90552)
+++ trunk/Source/WebKit/chromium/public/WebDevToolsAgentClient.h	2011-07-07 10:47:03 UTC (rev 90553)
@@ -59,6 +59,9 @@
 
     virtual bool exposeV8DebuggerProtocol() { return false; }
 
+    virtual void clearBrowserCache() { }
+    virtual void clearBrowserCookies() { }
+
 protected:
     ~WebDevToolsAgentClient() { }
 };

Modified: trunk/Source/WebKit/chromium/src/InspectorClientImpl.cpp (90552 => 90553)


--- trunk/Source/WebKit/chromium/src/InspectorClientImpl.cpp	2011-07-07 10:37:41 UTC (rev 90552)
+++ trunk/Source/WebKit/chromium/src/InspectorClientImpl.cpp	2011-07-07 10:47:03 UTC (rev 90553)
@@ -94,6 +94,18 @@
         agent->updateInspectorStateCookie(inspectorState);
 }
 
+void InspectorClientImpl::clearBrowserCache()
+{
+    if (WebDevToolsAgentImpl* agent = devToolsAgent())
+        agent->clearBrowserCache();
+}
+
+void InspectorClientImpl::clearBrowserCookies()
+{
+    if (WebDevToolsAgentImpl* agent = devToolsAgent())
+        agent->clearBrowserCookies();
+}
+
 WebDevToolsAgentImpl* InspectorClientImpl::devToolsAgent()
 {
     return static_cast<WebDevToolsAgentImpl*>(m_inspectedWebView->devToolsAgent());

Modified: trunk/Source/WebKit/chromium/src/InspectorClientImpl.h (90552 => 90553)


--- trunk/Source/WebKit/chromium/src/InspectorClientImpl.h	2011-07-07 10:37:41 UTC (rev 90552)
+++ trunk/Source/WebKit/chromium/src/InspectorClientImpl.h	2011-07-07 10:47:03 UTC (rev 90553)
@@ -56,6 +56,9 @@
     virtual bool sendMessageToFrontend(const WTF::String&);
 
     virtual void updateInspectorStateCookie(const WTF::String&);
+
+    virtual void clearBrowserCache();
+    virtual void clearBrowserCookies();
 private:
     WebDevToolsAgentImpl* devToolsAgent();
 

Modified: trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp (90552 => 90553)


--- trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp	2011-07-07 10:37:41 UTC (rev 90552)
+++ trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp	2011-07-07 10:47:03 UTC (rev 90553)
@@ -306,6 +306,16 @@
     m_client->runtimePropertyChanged(kInspectorStateFeatureName, state);
 }
 
+void WebDevToolsAgentImpl::clearBrowserCache()
+{
+    m_client->clearBrowserCache();
+}
+
+void WebDevToolsAgentImpl::clearBrowserCookies()
+{
+    m_client->clearBrowserCookies();
+}
+
 void WebDevToolsAgentImpl::setAgentIdentifierPrefix(const WebString& prefix)
 {
     inspectorController()->setAgentIdentifierPrefix(prefix);

Modified: trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h (90552 => 90553)


--- trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h	2011-07-07 10:37:41 UTC (rev 90552)
+++ trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h	2011-07-07 10:47:03 UTC (rev 90553)
@@ -91,6 +91,9 @@
     virtual void updateInspectorStateCookie(const WTF::String&);
     virtual bool sendMessageToFrontend(const WTF::String&);
 
+    virtual void clearBrowserCache();
+    virtual void clearBrowserCookies();
+
     int hostId() { return m_hostId; }
 
     // PageOverlayClient
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to