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

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 );
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();
162 var indexedDBModel = WebInspector.IndexedDBModel.fromTarget(this._target ); 169 var indexedDBModel = WebInspector.IndexedDBModel.fromTarget(this._target );
163 if (indexedDBModel) 170 if (indexedDBModel)
164 indexedDBModel.enable(); 171 indexedDBModel.enable();
165 172
166 var cacheStorageModel = WebInspector.ServiceWorkerCacheModel.fromTarget( this._target); 173 var cacheStorageModel = WebInspector.ServiceWorkerCacheModel.fromTarget( this._target);
167 if (cacheStorageModel) 174 if (cacheStorageModel)
168 cacheStorageModel.enable(); 175 cacheStorageModel.enable();
169 176
170 if (this._target.isPage()) 177 this._populateResourceTree();
171 this._populateResourceTree();
172 this._populateDOMStorageTree(); 178 this._populateDOMStorageTree();
173 this._populateApplicationCacheTree(); 179 this._populateApplicationCacheTree();
174 this.indexedDBListTreeElement._initialize(); 180 this.indexedDBListTreeElement._initialize();
175 this.cacheStorageListTreeElement._initialize(); 181 this.cacheStorageListTreeElement._initialize();
176 this._initDefaultSelection(); 182 this._initDefaultSelection();
177 }, 183 },
178 184
179 _initDefaultSelection: function() 185 _initDefaultSelection: function()
180 { 186 {
181 var itemURL = this._resourcesLastSelectedItemSetting.get(); 187 var itemURL = this._resourcesLastSelectedItemSetting.get();
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 279
274 this._storageViewToolbar.removeToolbarItems(); 280 this._storageViewToolbar.removeToolbarItems();
275 281
276 if (this._sidebarTree.selectedTreeElement) 282 if (this._sidebarTree.selectedTreeElement)
277 this._sidebarTree.selectedTreeElement.deselect(); 283 this._sidebarTree.selectedTreeElement.deselect();
278 }, 284 },
279 285
280 _populateResourceTree: function() 286 _populateResourceTree: function()
281 { 287 {
282 this._treeElementForFrameId = {}; 288 this._treeElementForFrameId = {};
283 this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTre eModel.EventTypes.FrameAdded, this._frameAdded, this); 289
284 this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTre eModel.EventTypes.FrameNavigated, this._frameNavigated, this); 290 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(this._ target);
285 this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTre eModel.EventTypes.FrameDetached, this._frameDetached, this); 291
286 this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTre eModel.EventTypes.ResourceAdded, this._resourceAdded, this); 292 if (!resourceTreeModel)
293 return;
294
295 resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventT ypes.FrameAdded, this._frameAdded, this);
296 resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventT ypes.FrameNavigated, this._frameNavigated, this);
297 resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventT ypes.FrameDetached, this._frameDetached, this);
298 resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventT ypes.ResourceAdded, this._resourceAdded, this);
287 299
288 /** 300 /**
289 * @param {!WebInspector.ResourceTreeFrame} frame 301 * @param {!WebInspector.ResourceTreeFrame} frame
290 * @this {WebInspector.ResourcesPanel} 302 * @this {WebInspector.ResourcesPanel}
291 */ 303 */
292 function populateFrame(frame) 304 function populateFrame(frame)
293 { 305 {
294 this._frameAdded({data:frame}); 306 this._frameAdded({data:frame});
295 for (var i = 0; i < frame.childFrames.length; ++i) 307 for (var i = 0; i < frame.childFrames.length; ++i)
296 populateFrame.call(this, frame.childFrames[i]); 308 populateFrame.call(this, frame.childFrames[i]);
297 309
298 var resources = frame.resources(); 310 var resources = frame.resources();
299 for (var i = 0; i < resources.length; ++i) 311 for (var i = 0; i < resources.length; ++i)
300 this._resourceAdded({data:resources[i]}); 312 this._resourceAdded({data:resources[i]});
301 } 313 }
302 populateFrame.call(this, this._target.resourceTreeModel.mainFrame); 314 populateFrame.call(this, resourceTreeModel.mainFrame);
303 }, 315 },
304 316
305 _frameAdded: function(event) 317 _frameAdded: function(event)
306 { 318 {
307 var frame = event.data; 319 var frame = event.data;
308 var parentFrame = frame.parentFrame; 320 var parentFrame = frame.parentFrame;
309 321
310 var parentTreeElement = parentFrame ? this._treeElementForFrameId[parent Frame.id] : this.resourcesListTreeElement; 322 var parentTreeElement = parentFrame ? this._treeElementForFrameId[parent Frame.id] : this.resourcesListTreeElement;
311 if (!parentTreeElement) { 323 if (!parentTreeElement) {
312 console.warn("No frame to route " + frame.url + " to."); 324 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; 2140 return this._frameId;
2129 }, 2141 },
2130 2142
2131 get manifestURL() 2143 get manifestURL()
2132 { 2144 {
2133 return this._manifestURL; 2145 return this._manifestURL;
2134 }, 2146 },
2135 2147
2136 _refreshTitles: function() 2148 _refreshTitles: function()
2137 { 2149 {
2138 var frame = this._storagePanel._target.resourceTreeModel.frameForId(this ._frameId); 2150 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(this._ storagePanel._target);
2151 if (!resourceTreeModel)
2152 return;
2153 var frame = resourceTreeModel.frameForId(this._frameId);
2139 this.title = frame.displayName(); 2154 this.title = frame.displayName();
2140 }, 2155 },
2141 2156
2142 frameNavigated: function() 2157 frameNavigated: function()
2143 { 2158 {
2144 this._refreshTitles(); 2159 this._refreshTitles();
2145 }, 2160 },
2146 2161
2147 /** 2162 /**
2148 * @override 2163 * @override
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
2214 WebInspector.ResourcesPanelFactory.prototype = { 2229 WebInspector.ResourcesPanelFactory.prototype = {
2215 /** 2230 /**
2216 * @override 2231 * @override
2217 * @return {!WebInspector.Panel} 2232 * @return {!WebInspector.Panel}
2218 */ 2233 */
2219 createPanel: function() 2234 createPanel: function()
2220 { 2235 {
2221 return WebInspector.ResourcesPanel._instance(); 2236 return WebInspector.ResourcesPanel._instance();
2222 } 2237 }
2223 } 2238 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698