Title: [90913] trunk/Source/WebCore
Revision
90913
Author
[email protected]
Date
2011-07-13 07:02:25 -0700 (Wed, 13 Jul 2011)

Log Message

Web Inspector: Network panel search needs each resource to have unique identifier.
https://bugs.webkit.org/show_bug.cgi?id=64287

Reviewed by Pavel Feldman.

* inspector/front-end/NetworkManager.js:
(WebInspector.NetworkManager.prototype.requestContent):
(WebInspector.NetworkDispatcher):
(WebInspector.NetworkDispatcher.prototype.requestWillBeSent):
(WebInspector.NetworkDispatcher.prototype.resourceLoadedFromMemoryCache):
(WebInspector.NetworkDispatcher.prototype._appendRedirect):
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkPanel.prototype._appendResource):
(WebInspector.NetworkPanel.prototype._frameNavigated):
(WebInspector.NetworkPanel.prototype._updateSearchMatchedListAfterResourceIdentifierChanged):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (90912 => 90913)


--- trunk/Source/WebCore/ChangeLog	2011-07-13 13:45:24 UTC (rev 90912)
+++ trunk/Source/WebCore/ChangeLog	2011-07-13 14:02:25 UTC (rev 90913)
@@ -1,3 +1,21 @@
+2011-07-13  Vsevolod Vlasov  <[email protected]>
+
+        Web Inspector: Network panel search needs each resource to have unique identifier.
+        https://bugs.webkit.org/show_bug.cgi?id=64287
+
+        Reviewed by Pavel Feldman.
+
+        * inspector/front-end/NetworkManager.js:
+        (WebInspector.NetworkManager.prototype.requestContent):
+        (WebInspector.NetworkDispatcher):
+        (WebInspector.NetworkDispatcher.prototype.requestWillBeSent):
+        (WebInspector.NetworkDispatcher.prototype.resourceLoadedFromMemoryCache):
+        (WebInspector.NetworkDispatcher.prototype._appendRedirect):
+        * inspector/front-end/NetworkPanel.js:
+        (WebInspector.NetworkPanel.prototype._appendResource):
+        (WebInspector.NetworkPanel.prototype._frameNavigated):
+        (WebInspector.NetworkPanel.prototype._updateSearchMatchedListAfterResourceIdentifierChanged):
+
 2011-07-13  Alexandru Chiculita  <[email protected]>
 
         Bridge RenderBoxModelObject::calculateBackgroundImageGeometry parameters into a class

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


--- trunk/Source/WebCore/inspector/front-end/NetworkManager.js	2011-07-13 13:45:24 UTC (rev 90912)
+++ trunk/Source/WebCore/inspector/front-end/NetworkManager.js	2011-07-13 14:02:25 UTC (rev 90913)
@@ -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.identifier)
+        if (resource.hasNetworkData)
             NetworkAgent.getResourceContent(resource.identifier, callbackWrapper);
         else
             PageAgent.getResourceContent(resource.frameId, resource.url, callbackWrapper);
@@ -72,6 +72,7 @@
     this._manager = manager;
     this._inflightResourcesById = {};
     this._inflightResourcesByURL = {};
+    this._lastIdentifierForCachedResource = 0;
     InspectorBackend.registerDomainDispatcher("Network", this);
 }
 
@@ -133,6 +134,7 @@
             resource = this._appendRedirect(identifier, time, request.url);
         } else
             resource = this._createResource(identifier, frameId, loaderId, request.url, documentURL, stackTrace);
+        resource.hasNetworkData = true;
         this._updateResourceWithRequest(resource, request);
         resource.startTime = time;
 
@@ -204,7 +206,7 @@
 
     resourceLoadedFromMemoryCache: function(frameId, loaderId, documentURL, time, cachedResource)
     {
-        var resource = this._createResource(null, frameId, loaderId, cachedResource.url, documentURL);
+        var resource = this._createResource("cached:" + ++this._lastIdentifierForCachedResource, frameId, loaderId, cachedResource.url, documentURL);
         this._updateResourceWithCachedResource(resource, cachedResource);
         resource.cached = true;
         resource.requestMethod = "GET";
@@ -272,8 +274,9 @@
     {
         var originalResource = this._inflightResourcesById[identifier];
         var previousRedirects = originalResource.redirects || [];
-        delete originalResource.identifier;
+        originalResource.identifier = "redirected:" + identifier + "." + previousRedirects.length;
         delete originalResource.redirects;
+        originalResource.hasNetworkData = false;
         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 (90912 => 90913)


--- trunk/Source/WebCore/inspector/front-end/NetworkPanel.js	2011-07-13 13:45:24 UTC (rev 90912)
+++ trunk/Source/WebCore/inspector/front-end/NetworkPanel.js	2011-07-13 14:02:25 UTC (rev 90913)
@@ -706,8 +706,17 @@
     _appendResource: function(resource)
     {
         this._resources.push(resource);
-        if (resource.identifier)
-            this._resourcesById[resource.identifier] = resource;
+        
+        // In case of redirect resource identifier is reassigned to a redirected 
+        // resource and we need to update _resourcesById ans search results. 
+        if (this._resourcesById[resource.identifier]) {
+            var oldResource = resource.redirects[resource.redirects.length - 1];
+            this._resourcesById[oldResource.identifier] = oldResource;
+            
+            this._updateSearchMatchedListAfterResourceIdentifierChanged(resource.identifier, oldResource.identifier);
+        }
+        this._resourcesById[resource.identifier] = resource;
+        
         this._resourcesByURL[resource.url] = resource;
 
         // Pull all the redirects of the main resource upon commit load.
@@ -748,7 +757,7 @@
             for (var i = 0; i < this._resources.length; ++i) {
                 var resource = this._resources[i];
                 if (resource.loaderId !== loaderId)
-                    resource.identifier = null;
+                    resource.hasNetworkData = false;
             }
             return;
         }
@@ -1063,6 +1072,16 @@
         this._highlightNthMatchedResource(-1, false);
     },
 
+    _updateSearchMatchedListAfterResourceIdentifierChanged: function(oldIdentifier, newIdentifier)
+    {
+        var resourceIndex = this._matchedResourcesMap[oldIdentifier];
+        if (resourceIndex) {
+            delete this._matchedResourcesMap[oldIdentifier];
+            this._matchedResourcesMap[newIdentifier] = resourceIndex;
+            this._matchedResources[resourceIndex] = newIdentifier;
+        }
+    },
+
     _updateHighlightIfMatched: function(resource)
     {
         var matchedResourceIndex = this._matchResource(resource);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to