Changeset 85184 in webkit
- Timestamp:
- Apr 28, 2011 8:08:24 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 21 added
- 2 deleted
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r85183 r85184 1 2011-04-28 Pavel Feldman <pfeldman@google.com> 2 3 Reviewed by Yury Semikhatsky. 4 5 Web Inspector: add ResourceTreeModel tests. 6 https://bugs.webkit.org/show_bug.cgi?id=59616 7 8 * http/tests/inspector/resource-tree-model-expected.txt: Removed. 9 * http/tests/inspector/resource-tree-model.html: Removed. 10 * http/tests/inspector/resource-tree/resource-tree-document-url-expected.txt: Added. 11 * http/tests/inspector/resource-tree/resource-tree-document-url.html: Added. 12 * http/tests/inspector/resource-tree/resource-tree-frame-navigate-expected.txt: Added. 13 * http/tests/inspector/resource-tree/resource-tree-frame-navigate.html: Added. 14 * http/tests/inspector/resource-tree/resource-tree-reload-expected.txt: Added. 15 * http/tests/inspector/resource-tree/resource-tree-reload.html: Added. 16 * http/tests/inspector/resource-tree/resource-tree-test.js: Added. 17 (initialize_ResourceTreeTest.InspectorTest.dumpResources): 18 (initialize_ResourceTreeTest.InspectorTest.dumpResources.comparator): 19 (initialize_ResourceTreeTest.InspectorTest.dumpResourcesURLMap): 20 (initialize_ResourceTreeTest.InspectorTest.dumpResourcesTree): 21 (initialize_ResourceTreeTest.InspectorTest.runAfterResourcesAreLoaded.callbackWrapper): 22 (initialize_ResourceTreeTest.InspectorTest.runAfterResourcesAreLoaded): 23 (initialize_ResourceTreeTest.InspectorTest.dumpResourceTreeEverything): 24 (initialize_ResourceTreeTest): 25 * http/tests/inspector/resource-tree/resources/dummy-iframe.html: Added. 26 * http/tests/inspector/resource-tree/resources/resource-tree-frame-navigate-iframe-after.html: Added. 27 * http/tests/inspector/resource-tree/resources/resource-tree-frame-navigate-iframe-before.html: Added. 28 * http/tests/inspector/resource-tree/resources/resource-tree-reload-iframe.html: Added. 29 * http/tests/inspector/resource-tree/resources/script-initial.js: Added. 30 (foo): 31 * http/tests/inspector/resource-tree/resources/script-navigated.js: Added. 32 (foo): 33 * http/tests/inspector/resource-tree/resources/styles-initial-2.css: Added. 34 (html): 35 * http/tests/inspector/resource-tree/resources/styles-initial.css: Added. 36 (html): 37 * http/tests/inspector/resource-tree/resources/styles-navigated.css: Added. 38 (html): 39 * platform/win/Skipped: 40 1 41 2011-04-28 Mikhail Naganov <mnaganov@chromium.org> 2 42 -
trunk/LayoutTests/platform/win/Skipped
r84942 r85184 423 423 424 424 # Sometimes fails http://webkit.org/b/58367 425 http/tests/inspector/resource-tree-model.html 425 http/tests/inspector/resource-tree/resource-tree-document-url.html 426 http/tests/inspector/resource-tree/resource-tree-frame-navigate.html 427 http/tests/inspector/resource-tree/resource-tree-reload.html 428 http/tests/inspector/resource-tree/resource-tree-frame-add.html 426 429 427 430 ################################################################################ -
trunk/Source/WebCore/ChangeLog
r85183 r85184 1 2011-04-28 Pavel Feldman <pfeldman@google.com> 2 3 Reviewed by Yury Semikhatsky. 4 5 Web Inspector: add ResourceTreeModel tests. 6 https://bugs.webkit.org/show_bug.cgi?id=59616 7 8 Tests: http/tests/inspector/resource-tree/resource-tree-document-url.html 9 http/tests/inspector/resource-tree/resource-tree-frame-navigate.html 10 http/tests/inspector/resource-tree/resource-tree-reload.html 11 12 * inspector/front-end/ResourceTreeModel.js: 13 (WebInspector.ResourceTreeModel.prototype.frontendReused): 14 (WebInspector.ResourceTreeModel.prototype._addFrame): 15 (WebInspector.ResourceTreeModel.prototype._frameNavigated): 16 (WebInspector.ResourceTreeModel.prototype._frameDetached): 17 (WebInspector.ResourceTreeModel.prototype._onResourceUpdated): 18 (WebInspector.ResourceTreeModel.prototype.forAllResources): 19 (WebInspector.ResourceTreeModel.prototype._clearChildFramesAndResources): 20 (WebInspector.ResourceTreeModel.prototype._callForFrameResources): 21 (WebInspector.ResourceTreeModel.prototype._addFramesRecursively): 22 * inspector/front-end/ResourcesPanel.js: 23 (WebInspector.ResourcesPanel.prototype._populateResourceTree): 24 (WebInspector.ResourcesPanel.prototype._frameAdded): 25 (WebInspector.ResourcesPanel.prototype._frameDetached): 26 (WebInspector.ResourcesPanel.prototype._frameNavigated): 27 (WebInspector.FrameTreeElement): 28 (WebInspector.FrameTreeElement.prototype.frameNavigated): 29 1 30 2011-04-28 Mikhail Naganov <mnaganov@chromium.org> 2 31 -
trunk/Source/WebCore/inspector/front-end/ResourceTreeModel.js
r85048 r85184 58 58 this._resourcesByFrameId = {}; 59 59 this._subframes = {}; 60 this._frameIds = {}; 61 delete this._cachedResourcesProcessed; 60 62 PageAgent.getResourceTree(this._processCachedResources.bind(this)); 61 63 }, … … 80 82 }, 81 83 82 _addOrUpdateFrame: function(frame) 83 { 84 this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameAdded, frame); 85 84 _addFrame: function(frame) 85 { 86 this._frameIds[frame.id] = frame; 86 87 var subframes = this._subframes[frame.parentId]; 87 88 if (!subframes) { 88 89 subframes = []; 89 this._subframes[frame.parentId || 0] = subframes; 90 } 90 this._subframes[frame.parentId] = subframes; 91 } 92 91 93 subframes.push(frame); 94 this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameAdded, frame); 92 95 }, 93 96 … … 113 116 _frameNavigated: function(frame, loaderId) 114 117 { 118 // Do nothing unless cached resource tree is processed - it will overwrite everything. 115 119 if (!this._cachedResourcesProcessed) 116 120 return; 117 121 122 // Add frame in case it is seen for the first time, otherwise, do a within-frame cleanup. 123 if (!this._frameIds[frame.id]) 124 this._addFrame(frame); 125 else 126 this._clearChildFramesAndResources(frame.id, loaderId); 127 128 118 129 var isMainFrame = !frame.parentId; 119 130 131 // Dispatch frame navigated event to clients prior to filling it with the resources. 120 132 this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameNavigated, { frame: frame, loaderId: loaderId, isMainFrame: isMainFrame }); 121 133 122 // frame.parentId === 0 is when main frame navigation happens. 123 this._clearChildFramesAndResources(isMainFrame ? 0 : frame.id, loaderId); 124 125 this._addOrUpdateFrame(frame); 126 134 // Fill frame with retained resources (the ones loaded using new loader). 127 135 var resourcesForFrame = this._resourcesByFrameId[frame.id]; 128 136 if (resourcesForFrame) { … … 131 139 } 132 140 141 // Update main frame, issue top-level navigate events. 133 142 if (isMainFrame && this.resourceForURL(frame.url)) { 134 143 WebInspector.mainResource = this.resourceForURL(frame.url); … … 140 149 _frameDetached: function(frameId) 141 150 { 151 // Do nothing unless cached resource tree is processed - it will overwrite everything. 142 152 if (!this._cachedResourcesProcessed) 143 153 return; 144 154 145 this._clearChildFramesAndResources(frameId, 0); 155 this._clearChildFramesAndResources(frameId, ""); 156 var frame = this._frameIds[frameId]; 157 158 if (frame) { 159 var siblings = this._subframes[frame.parentId]; 160 if (siblings) 161 siblings.remove(frame); 162 delete this._frameIds[frameId]; 163 } 164 146 165 this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameDetached, frameId); 147 166 }, … … 158 177 if (!this._cachedResourcesProcessed) 159 178 return; 160 this._addResourceToFrame(event.data); 179 180 var resource = event.data; 181 if (resource.failed) { 182 this._unbindResourceURL(resource); 183 return; 184 } 185 186 if (resource.finished) 187 this._addResourceToFrame(resource); 161 188 }, 162 189 … … 181 208 forAllResources: function(callback) 182 209 { 183 this._callForFrameResources(0, callback);210 return this._callForFrameResources("", callback); 184 211 }, 185 212 … … 228 255 var subframes = this._subframes[frameId]; 229 256 for (var i = 0; subframes && i < subframes.length; ++ i) { 230 this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.Frame Removed, subframes[i].id);257 this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameDetached, subframes[i].id); 231 258 this._clearChildFramesAndResources(subframes[i].id, loaderToPreserveId); 232 259 } … … 264 291 return true; 265 292 } 266 293 267 294 var frames = this._subframes[frameId]; 268 295 for (var i = 0; frames && i < frames.length; ++i) { … … 287 314 frameResource.finished = true; 288 315 289 this._add OrUpdateFrame(framePayload);316 this._addFrame(framePayload); 290 317 this._addResourceToFrame(frameResource); 291 318 -
trunk/Source/WebCore/inspector/front-end/ResourcesPanel.js
r85048 r85184 193 193 this._resourceAdded({data:resources[i]}); 194 194 } 195 populateFrame.call(this, 0);195 populateFrame.call(this, ""); 196 196 197 197 this._initDefaultSelection(); … … 201 201 { 202 202 var frame = event.data; 203 var frameId = frame.id;204 203 var parentFrameId = frame.parentId; 205 var title = frame.name;206 var subtitle = new WebInspector.Resource(null, frame.url).displayName;207 this.addDocumentURL(frame.url);208 204 209 var frameTreeElement = this._treeElementForFrameId[frameId];210 if (frameTreeElement) {211 // Maintain sorted order.212 var parent = frameTreeElement.parent;213 parent.removeChild(frameTreeElement);214 frameTreeElement.setTitles(title, subtitle);215 parent.appendChild(frameTreeElement);216 return;217 }218 219 205 var parentTreeElement = parentFrameId ? this._treeElementForFrameId[parentFrameId] : this.resourcesListTreeElement; 220 206 if (!parentTreeElement) { 221 console.warn("No frame with id:" + parentFrameId + " to route " + title + "/" + subtitle+ " to.")222 return; 223 } 224 225 var frameTreeElement = new WebInspector.FrameTreeElement(this, frame Id, title, subtitle);226 this._treeElementForFrameId[frame Id] = frameTreeElement;207 console.warn("No frame with id:" + parentFrameId + " to route " + frame.name + "/" + frame.url + " to.") 208 return; 209 } 210 211 var frameTreeElement = new WebInspector.FrameTreeElement(this, frame); 212 this._treeElementForFrameId[frame.id] = frameTreeElement; 227 213 parentTreeElement.appendChild(frameTreeElement); 228 214 }, … … 234 220 if (!frameTreeElement) 235 221 return; 222 236 223 delete this._treeElementForFrameId[frameId]; 237 224 if (frameTreeElement.parent) … … 259 246 _frameNavigated: function(event) 260 247 { 261 if (event.data.isMainFrame) {262 // Total update.263 this._resetResourcesTree();264 return;265 }266 267 248 var frameId = event.data.frame.id; 268 249 var frameTreeElement = this._treeElementForFrameId[frameId]; 269 250 if (frameTreeElement) 270 frameTreeElement. removeChildren();251 frameTreeElement.frameNavigated(event.data.frame); 271 252 }, 272 253 … … 929 910 WebInspector.StorageCategoryTreeElement.prototype.__proto__ = WebInspector.BaseStorageTreeElement.prototype; 930 911 931 WebInspector.FrameTreeElement = function(storagePanel, frame Id, title, subtitle)912 WebInspector.FrameTreeElement = function(storagePanel, frame) 932 913 { 933 914 WebInspector.BaseStorageTreeElement.call(this, storagePanel, null, "", ["frame-storage-tree-item"]); 934 this._frameId = frameId; 935 this.setTitles(title, subtitle); 936 this._categoryElements = {}; 937 this._treeElementForResource = {}; 915 this._frame = frame; 916 this.frameNavigated(frame); 938 917 } 939 918 940 919 WebInspector.FrameTreeElement.prototype = { 920 frameNavigated: function(frame) 921 { 922 this.removeChildren(); 923 this._frameId = frame.id; 924 925 var title = frame.name; 926 var subtitle = new WebInspector.Resource(null, frame.url).displayName; 927 this.setTitles(title, subtitle); 928 929 this._categoryElements = {}; 930 this._treeElementForResource = {}; 931 932 this._storagePanel.addDocumentURL(frame.url); 933 }, 934 941 935 get itemURL() 942 936 { … … 1018 1012 }, 1019 1013 1020 removeChildren: function()1021 {1022 WebInspector.BaseStorageTreeElement.prototype.removeChildren.call(this);1023 this._treeElementForResource = [];1024 },1025 1026 1014 appendChild: function(treeElement) 1027 1015 {
Note: See TracChangeset
for help on using the changeset viewer.