Title: [91006] trunk/Source/WebCore
Revision
91006
Author
[email protected]
Date
2011-07-14 09:59:11 -0700 (Thu, 14 Jul 2011)

Log Message

Web Inspector: InspectorResourceAgent should generate unique identifier and save cachedResource for resources from memory cache.
https://bugs.webkit.org/show_bug.cgi?id=64356

Reviewed by Yury Semikhatsky.

* inspector/Inspector.json:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCache):
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
* inspector/InspectorResourceAgent.h:
* inspector/front-end/NetworkManager.js:
(WebInspector.NetworkManager.prototype.requestContent):
(WebInspector.NetworkDispatcher):
(WebInspector.NetworkDispatcher.prototype.resourceLoadedFromMemoryCache):
(WebInspector.NetworkDispatcher.prototype._appendRedirect):
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._frameNavigated):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
* loader/FrameLoader.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (91005 => 91006)


--- trunk/Source/WebCore/ChangeLog	2011-07-14 16:57:44 UTC (rev 91005)
+++ trunk/Source/WebCore/ChangeLog	2011-07-14 16:59:11 UTC (rev 91006)
@@ -1,3 +1,29 @@
+2011-07-14  Vsevolod Vlasov  <[email protected]>
+
+        Web Inspector: InspectorResourceAgent should generate unique identifier and save cachedResource for resources from memory cache.
+        https://bugs.webkit.org/show_bug.cgi?id=64356
+
+        Reviewed by Yury Semikhatsky.
+
+        * inspector/Inspector.json:
+        * inspector/InspectorInstrumentation.cpp:
+        (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
+        * inspector/InspectorInstrumentation.h:
+        (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCache):
+        * inspector/InspectorResourceAgent.cpp:
+        (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
+        * inspector/InspectorResourceAgent.h:
+        * inspector/front-end/NetworkManager.js:
+        (WebInspector.NetworkManager.prototype.requestContent):
+        (WebInspector.NetworkDispatcher):
+        (WebInspector.NetworkDispatcher.prototype.resourceLoadedFromMemoryCache):
+        (WebInspector.NetworkDispatcher.prototype._appendRedirect):
+        * inspector/front-end/NetworkPanel.js:
+        (WebInspector.NetworkLogView.prototype._frameNavigated):
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::loadedResourceFromMemoryCache):
+        * loader/FrameLoader.h:
+
 2011-07-14  Tim Horton  <[email protected]>
 
         Clear SVGElementInstance's children immediately upon detachment

Modified: trunk/Source/WebCore/inspector/Inspector.json (91005 => 91006)


--- trunk/Source/WebCore/inspector/Inspector.json	2011-07-14 16:57:44 UTC (rev 91005)
+++ trunk/Source/WebCore/inspector/Inspector.json	2011-07-14 16:59:11 UTC (rev 91006)
@@ -573,6 +573,7 @@
                 "name": "resourceLoadedFromMemoryCache",
                 "description": "Fired when HTTP request has been served from memory cache.",
                 "parameters": [
+                    { "name": "identifier", "type": "integer", "description": "Request identifier." },
                     { "name": "frameId", "type": "string", "description": "Frame identifier." },
                     { "name": "loaderId", "type": "string", "description": "Loader identifier." },
                     { "name": "documentURL", "type": "string", "description": "URL of the document this resource is loaded for." },

Modified: trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp (91005 => 91006)


--- trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp	2011-07-14 16:57:44 UTC (rev 91005)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp	2011-07-14 16:59:11 UTC (rev 91006)
@@ -422,7 +422,7 @@
         resourceAgent->markResourceAsCached(identifier);
 }
 
-void InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl(InstrumentingAgents* instrumentingAgents, DocumentLoader* loader, const CachedResource* cachedResource)
+void InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl(InstrumentingAgents* instrumentingAgents, DocumentLoader* loader, CachedResource* cachedResource)
 {
     InspectorAgent* inspectorAgent = instrumentingAgents->inspectorAgent();
     if (!inspectorAgent || !inspectorAgent->enabled())

Modified: trunk/Source/WebCore/inspector/InspectorInstrumentation.h (91005 => 91006)


--- trunk/Source/WebCore/inspector/InspectorInstrumentation.h	2011-07-14 16:57:44 UTC (rev 91005)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.h	2011-07-14 16:59:11 UTC (rev 91006)
@@ -118,7 +118,7 @@
     static void willSendRequest(Frame*, unsigned long identifier, DocumentLoader*, ResourceRequest&, const ResourceResponse& redirectResponse);
     static void continueAfterPingLoader(Frame*, unsigned long identifier, DocumentLoader*, ResourceRequest&, const ResourceResponse&);
     static void markResourceAsCached(Page*, unsigned long identifier);
-    static void didLoadResourceFromMemoryCache(Page*, DocumentLoader*, const CachedResource*);
+    static void didLoadResourceFromMemoryCache(Page*, DocumentLoader*, CachedResource*);
     static InspectorInstrumentationCookie willReceiveResourceData(Frame*, unsigned long identifier);
     static void didReceiveResourceData(const InspectorInstrumentationCookie&);
     static InspectorInstrumentationCookie willReceiveResourceResponse(Frame*, unsigned long identifier, const ResourceResponse&);
@@ -245,7 +245,7 @@
     static void willSendRequestImpl(InstrumentingAgents*, unsigned long identifier, DocumentLoader*, ResourceRequest&, const ResourceResponse& redirectResponse);
     static void continueAfterPingLoaderImpl(InstrumentingAgents*, unsigned long identifier, DocumentLoader*, ResourceRequest&, const ResourceResponse&);
     static void markResourceAsCachedImpl(InstrumentingAgents*, unsigned long identifier);
-    static void didLoadResourceFromMemoryCacheImpl(InstrumentingAgents*, DocumentLoader*, const CachedResource*);
+    static void didLoadResourceFromMemoryCacheImpl(InstrumentingAgents*, DocumentLoader*, CachedResource*);
     static InspectorInstrumentationCookie willReceiveResourceDataImpl(InstrumentingAgents*, unsigned long identifier);
     static void didReceiveResourceDataImpl(const InspectorInstrumentationCookie&);
     static InspectorInstrumentationCookie willReceiveResourceResponseImpl(InstrumentingAgents*, unsigned long identifier, const ResourceResponse&);
@@ -696,7 +696,7 @@
 #endif
 }
 
-inline void InspectorInstrumentation::didLoadResourceFromMemoryCache(Page* page, DocumentLoader* loader, const CachedResource* resource)
+inline void InspectorInstrumentation::didLoadResourceFromMemoryCache(Page* page, DocumentLoader* loader, CachedResource* resource)
 {
 #if ENABLE(INSPECTOR)
     if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForPage(page))

Modified: trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp (91005 => 91006)


--- trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp	2011-07-14 16:57:44 UTC (rev 91005)
+++ trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp	2011-07-14 16:59:11 UTC (rev 91006)
@@ -51,6 +51,7 @@
 #include "InstrumentingAgents.h"
 #include "KURL.h"
 #include "NetworkResourcesData.h"
+#include "Page.h"
 #include "ProgressTracker.h"
 #include "ResourceError.h"
 #include "ResourceRequest.h"
@@ -291,9 +292,15 @@
     m_frontend->loadingFailed(static_cast<int>(identifier), currentTime(), error.localizedDescription(), error.isCancellation());
 }
 
-void InspectorResourceAgent::didLoadResourceFromMemoryCache(DocumentLoader* loader, const CachedResource* resource)
+void InspectorResourceAgent::didLoadResourceFromMemoryCache(DocumentLoader* loader, CachedResource* resource)
 {
-    m_frontend->resourceLoadedFromMemoryCache(m_pageAgent->frameId(loader->frame()), m_pageAgent->loaderId(loader), loader->url().string(), currentTime(), buildObjectForCachedResource(*resource));
+    String loaderId = m_pageAgent->loaderId(loader);
+    String frameId = m_pageAgent->frameId(loader->frame());
+    unsigned long identifier = loader->frame()->page()->progress()->createUniqueIdentifier();
+    m_resourcesData->resourceCreated(identifier, loaderId);
+    m_resourcesData->addCachedResource(identifier, resource);
+
+    m_frontend->resourceLoadedFromMemoryCache(static_cast<int>(identifier), frameId, loaderId, loader->url().string(), currentTime(), buildObjectForCachedResource(*resource));
 }
 
 void InspectorResourceAgent::setInitialScriptContent(unsigned long identifier, const String& sourceString)

Modified: trunk/Source/WebCore/inspector/InspectorResourceAgent.h (91005 => 91006)


--- trunk/Source/WebCore/inspector/InspectorResourceAgent.h	2011-07-14 16:57:44 UTC (rev 91005)
+++ trunk/Source/WebCore/inspector/InspectorResourceAgent.h	2011-07-14 16:59:11 UTC (rev 91006)
@@ -94,7 +94,7 @@
     void didReceiveData(unsigned long identifier, const char* data, int dataLength, int encodedDataLength);
     void didFinishLoading(unsigned long identifier, DocumentLoader*, double finishTime);
     void didFailLoading(unsigned long identifier, DocumentLoader*, const ResourceError&);
-    void didLoadResourceFromMemoryCache(DocumentLoader*, const CachedResource*);
+    void didLoadResourceFromMemoryCache(DocumentLoader*, CachedResource*);
     void mainFrameNavigated(DocumentLoader*);
     void setInitialScriptContent(unsigned long identifier, const String& sourceString);
     void setInitialXHRContent(unsigned long identifier, const String& sourceString);

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


--- trunk/Source/WebCore/inspector/front-end/NetworkManager.js	2011-07-14 16:57:44 UTC (rev 91005)
+++ trunk/Source/WebCore/inspector/front-end/NetworkManager.js	2011-07-14 16:59:11 UTC (rev 91006)
@@ -53,7 +53,7 @@
         }
         // FIXME: https://bugs.webkit.org/show_bug.cgi?id=61363 We should separate NetworkResource (NetworkPanel resource) 
         // from ResourceRevision (ResourcesPanel/ScriptsPanel resource) and request content accordingly.
-        if (resource.hasNetworkData)
+        if (resource.identifier && !resource.networkDataRemoved)
             NetworkAgent.getResourceContent(resource.identifier, callbackWrapper);
         else
             PageAgent.getResourceContent(resource.frameId, resource.url, callbackWrapper);
@@ -72,7 +72,6 @@
     this._manager = manager;
     this._inflightResourcesById = {};
     this._inflightResourcesByURL = {};
-    this._lastIdentifierForCachedResource = 0;
     InspectorBackend.registerDomainDispatcher("Network", this);
 }
 
@@ -204,9 +203,9 @@
         this._finishResource(resource, time);
     },
 
-    resourceLoadedFromMemoryCache: function(frameId, loaderId, documentURL, time, cachedResource)
+    resourceLoadedFromMemoryCache: function(identifier, frameId, loaderId, documentURL, time, cachedResource)
     {
-        var resource = this._createResource("cached:" + ++this._lastIdentifierForCachedResource, frameId, loaderId, cachedResource.url, documentURL);
+        var resource = this._createResource(identifier, frameId, loaderId, cachedResource.url, documentURL);
         this._updateResourceWithCachedResource(resource, cachedResource);
         resource.cached = true;
         resource.requestMethod = "GET";
@@ -276,7 +275,7 @@
         var previousRedirects = originalResource.redirects || [];
         originalResource.identifier = "redirected:" + identifier + "." + previousRedirects.length;
         delete originalResource.redirects;
-        originalResource.hasNetworkData = false;
+        originalResource.networkDataRemoved = true;
         this._finishResource(originalResource, time);
         var newResource = this._createResource(identifier, originalResource.frameId, originalResource.loaderId,
              redirectURL, originalResource.documentURL, originalResource.stackTrace);

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


--- trunk/Source/WebCore/inspector/front-end/NetworkPanel.js	2011-07-14 16:57:44 UTC (rev 91005)
+++ trunk/Source/WebCore/inspector/front-end/NetworkPanel.js	2011-07-14 16:59:11 UTC (rev 91006)
@@ -757,7 +757,7 @@
             for (var i = 0; i < this._resources.length; ++i) {
                 var resource = this._resources[i];
                 if (resource.loaderId !== loaderId)
-                    resource.hasNetworkData = false;
+                    originalResource.networkDataRemoved = true;
             }
             return;
         }

Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (91005 => 91006)


--- trunk/Source/WebCore/loader/FrameLoader.cpp	2011-07-14 16:57:44 UTC (rev 91005)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp	2011-07-14 16:59:11 UTC (rev 91006)
@@ -2859,7 +2859,7 @@
     request = newRequest;
 }
 
-void FrameLoader::loadedResourceFromMemoryCache(const CachedResource* resource)
+void FrameLoader::loadedResourceFromMemoryCache(CachedResource* resource)
 {
     Page* page = m_frame->page();
     if (!page)

Modified: trunk/Source/WebCore/loader/FrameLoader.h (91005 => 91006)


--- trunk/Source/WebCore/loader/FrameLoader.h	2011-07-14 16:57:44 UTC (rev 91005)
+++ trunk/Source/WebCore/loader/FrameLoader.h	2011-07-14 16:59:11 UTC (rev 91006)
@@ -177,7 +177,7 @@
     void didFirstLayout();
     void didFirstVisuallyNonEmptyLayout();
 
-    void loadedResourceFromMemoryCache(const CachedResource*);
+    void loadedResourceFromMemoryCache(CachedResource*);
     void tellClientAboutPastMemoryCacheLoads();
 
     void checkLoadComplete();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to