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);