Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(368)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js

Issue 2122353002: [DevTools] Make resource tree model optional (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007, 2008, 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2008, 2010 Apple Inc. All rights reserved.
3 * Copyright (C) 2009 Joseph Pecoraro 3 * Copyright (C) 2009 Joseph Pecoraro
4 * Copyright (C) 2013 Samsung Electronics. All rights reserved. 4 * Copyright (C) 2013 Samsung Electronics. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 9 *
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 * @param {!WebInspector.Target} target 121 * @param {!WebInspector.Target} target
122 */ 122 */
123 targetAdded: function(target) 123 targetAdded: function(target)
124 { 124 {
125 if (this._target) 125 if (this._target)
126 return; 126 return;
127 this._target = target; 127 this._target = target;
128 this._databaseModel = WebInspector.DatabaseModel.fromTarget(target); 128 this._databaseModel = WebInspector.DatabaseModel.fromTarget(target);
129 this._domStorageModel = WebInspector.DOMStorageModel.fromTarget(target); 129 this._domStorageModel = WebInspector.DOMStorageModel.fromTarget(target);
130 130
131 if (target.resourceTreeModel.cachedResourcesLoaded()) 131 this._databaseModel.addEventListener(WebInspector.DatabaseModel.Events.D atabaseAdded, this._databaseAdded, this);
132 this._databaseModel.addEventListener(WebInspector.DatabaseModel.Events.D atabasesRemoved, this._resetWebSQL, this);
133
134 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target );
dgozman 2016/07/14 16:29:28 I think ResourcesPanel should not work without Res
eostroukhov-old 2016/07/20 23:46:15 Done.
135 if (!resourceTreeModel)
136 return;
137 if (resourceTreeModel.cachedResourcesLoaded())
132 this._initialize(); 138 this._initialize();
133 139
134 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel .EventTypes.CachedResourcesLoaded, this._initialize, this); 140 resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventT ypes.CachedResourcesLoaded, this._initialize, this);
135 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel .EventTypes.WillLoadCachedResources, this._resetWithFrames, this); 141 resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventT ypes.WillLoadCachedResources, this._resetWithFrames, this);
136 this._databaseModel.addEventListener(WebInspector.DatabaseModel.Events.D atabaseAdded, this._databaseAdded, this);
137 this._databaseModel.addEventListener(WebInspector.DatabaseModel.Events.D atabasesRemoved, this._resetWebSQL, this);
138 }, 142 },
139 143
140 /** 144 /**
141 * @override 145 * @override
142 * @param {!WebInspector.Target} target 146 * @param {!WebInspector.Target} target
143 */ 147 */
144 targetRemoved: function(target) 148 targetRemoved: function(target)
145 { 149 {
146 if (target !== this._target) 150 if (target !== this._target)
147 return; 151 return;
148 delete this._target; 152 delete this._target;
149 153
150 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeMo del.EventTypes.CachedResourcesLoaded, this._initialize, this); 154 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target );
151 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeMo del.EventTypes.WillLoadCachedResources, this._resetWithFrames, this); 155 if (resourceTreeModel) {
156 resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel .EventTypes.CachedResourcesLoaded, this._initialize, this);
157 resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel .EventTypes.WillLoadCachedResources, this._resetWithFrames, this);
158 }
152 this._databaseModel.removeEventListener(WebInspector.DatabaseModel.Event s.DatabaseAdded, this._databaseAdded, this); 159 this._databaseModel.removeEventListener(WebInspector.DatabaseModel.Event s.DatabaseAdded, this._databaseAdded, this);
153 this._databaseModel.removeEventListener(WebInspector.DatabaseModel.Event s.DatabasesRemoved, this._resetWebSQL, this); 160 this._databaseModel.removeEventListener(WebInspector.DatabaseModel.Event s.DatabasesRemoved, this._resetWebSQL, this);
154 161
155 this._resetWithFrames(); 162 this._resetWithFrames();
156 }, 163 },
157 164
158 _initialize: function() 165 _initialize: function()
159 { 166 {
160 this._databaseModel.enable(); 167 this._databaseModel.enable();
161 this._domStorageModel.enable(); 168 this._domStorageModel.enable();
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 280
274 this._storageViewToolbar.removeToolbarItems(); 281 this._storageViewToolbar.removeToolbarItems();
275 282
276 if (this._sidebarTree.selectedTreeElement) 283 if (this._sidebarTree.selectedTreeElement)
277 this._sidebarTree.selectedTreeElement.deselect(); 284 this._sidebarTree.selectedTreeElement.deselect();
278 }, 285 },
279 286
280 _populateResourceTree: function() 287 _populateResourceTree: function()
281 { 288 {
282 this._treeElementForFrameId = {}; 289 this._treeElementForFrameId = {};
283 this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTre eModel.EventTypes.FrameAdded, this._frameAdded, this); 290
284 this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTre eModel.EventTypes.FrameNavigated, this._frameNavigated, this); 291 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(this._ target);
285 this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTre eModel.EventTypes.FrameDetached, this._frameDetached, this); 292
286 this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTre eModel.EventTypes.ResourceAdded, this._resourceAdded, this); 293 if (!resourceTreeModel)
294 return;
295
296 resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventT ypes.FrameAdded, this._frameAdded, this);
297 resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventT ypes.FrameNavigated, this._frameNavigated, this);
298 resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventT ypes.FrameDetached, this._frameDetached, this);
299 resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventT ypes.ResourceAdded, this._resourceAdded, this);
287 300
288 /** 301 /**
289 * @param {!WebInspector.ResourceTreeFrame} frame 302 * @param {!WebInspector.ResourceTreeFrame} frame
290 * @this {WebInspector.ResourcesPanel} 303 * @this {WebInspector.ResourcesPanel}
291 */ 304 */
292 function populateFrame(frame) 305 function populateFrame(frame)
293 { 306 {
294 this._frameAdded({data:frame}); 307 this._frameAdded({data:frame});
295 for (var i = 0; i < frame.childFrames.length; ++i) 308 for (var i = 0; i < frame.childFrames.length; ++i)
296 populateFrame.call(this, frame.childFrames[i]); 309 populateFrame.call(this, frame.childFrames[i]);
297 310
298 var resources = frame.resources(); 311 var resources = frame.resources();
299 for (var i = 0; i < resources.length; ++i) 312 for (var i = 0; i < resources.length; ++i)
300 this._resourceAdded({data:resources[i]}); 313 this._resourceAdded({data:resources[i]});
301 } 314 }
302 populateFrame.call(this, this._target.resourceTreeModel.mainFrame); 315 populateFrame.call(this, resourceTreeModel.mainFrame);
303 }, 316 },
304 317
305 _frameAdded: function(event) 318 _frameAdded: function(event)
306 { 319 {
307 var frame = event.data; 320 var frame = event.data;
308 var parentFrame = frame.parentFrame; 321 var parentFrame = frame.parentFrame;
309 322
310 var parentTreeElement = parentFrame ? this._treeElementForFrameId[parent Frame.id] : this.resourcesListTreeElement; 323 var parentTreeElement = parentFrame ? this._treeElementForFrameId[parent Frame.id] : this.resourcesListTreeElement;
311 if (!parentTreeElement) { 324 if (!parentTreeElement) {
312 console.warn("No frame to route " + frame.url + " to."); 325 console.warn("No frame to route " + frame.url + " to.");
(...skipping 1815 matching lines...) Expand 10 before | Expand all | Expand 10 after
2128 return this._frameId; 2141 return this._frameId;
2129 }, 2142 },
2130 2143
2131 get manifestURL() 2144 get manifestURL()
2132 { 2145 {
2133 return this._manifestURL; 2146 return this._manifestURL;
2134 }, 2147 },
2135 2148
2136 _refreshTitles: function() 2149 _refreshTitles: function()
2137 { 2150 {
2138 var frame = this._storagePanel._target.resourceTreeModel.frameForId(this ._frameId); 2151 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(this._ storagePanel._target);
2152 if (!resourceTreeModel)
2153 return;
2154 var frame = resourceTreeModel.frameForId(this._frameId);
2139 this.title = frame.displayName(); 2155 this.title = frame.displayName();
2140 }, 2156 },
2141 2157
2142 frameNavigated: function() 2158 frameNavigated: function()
2143 { 2159 {
2144 this._refreshTitles(); 2160 this._refreshTitles();
2145 }, 2161 },
2146 2162
2147 /** 2163 /**
2148 * @override 2164 * @override
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
2214 WebInspector.ResourcesPanelFactory.prototype = { 2230 WebInspector.ResourcesPanelFactory.prototype = {
2215 /** 2231 /**
2216 * @override 2232 * @override
2217 * @return {!WebInspector.Panel} 2233 * @return {!WebInspector.Panel}
2218 */ 2234 */
2219 createPanel: function() 2235 createPanel: function()
2220 { 2236 {
2221 return WebInspector.ResourcesPanel._instance(); 2237 return WebInspector.ResourcesPanel._instance();
2222 } 2238 }
2223 } 2239 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698