Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js b/third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js |
| index 83d170e4c539476459cd927ec061346fac4b74f7..d358a812ac8f7fd1d4091b06ffc36588bf2de50c 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js |
| @@ -126,15 +126,19 @@ WebInspector.ResourcesPanel.prototype = { |
| return; |
| this._target = target; |
| this._databaseModel = WebInspector.DatabaseModel.fromTarget(target); |
| - this._domStorageModel = WebInspector.DOMStorageModel.fromTarget(target); |
| - if (target.resourceTreeModel.cachedResourcesLoaded()) |
| - this._initialize(); |
| - |
| - target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.CachedResourcesLoaded, this._initialize, this); |
| - target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.WillLoadCachedResources, this._resetWithFrames, this); |
| this._databaseModel.addEventListener(WebInspector.DatabaseModel.Events.DatabaseAdded, this._databaseAdded, this); |
| this._databaseModel.addEventListener(WebInspector.DatabaseModel.Events.DatabasesRemoved, this._resetWebSQL, this); |
| + |
| + var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target); |
| + if (!resourceTreeModel) |
| + return; |
| + |
| + if (resourceTreeModel.cachedResourcesLoaded()) |
| + this._initialize(); |
| + |
| + resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.CachedResourcesLoaded, this._initialize, this); |
| + resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.WillLoadCachedResources, this._resetWithFrames, this); |
| }, |
| /** |
| @@ -147,8 +151,11 @@ WebInspector.ResourcesPanel.prototype = { |
| return; |
| delete this._target; |
| - target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.CachedResourcesLoaded, this._initialize, this); |
| - target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.WillLoadCachedResources, this._resetWithFrames, this); |
| + var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target); |
| + if (resourceTreeModel) { |
| + resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.CachedResourcesLoaded, this._initialize, this); |
| + resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.WillLoadCachedResources, this._resetWithFrames, this); |
| + } |
| this._databaseModel.removeEventListener(WebInspector.DatabaseModel.Events.DatabaseAdded, this._databaseAdded, this); |
| this._databaseModel.removeEventListener(WebInspector.DatabaseModel.Events.DatabasesRemoved, this._resetWebSQL, this); |
| @@ -158,7 +165,7 @@ WebInspector.ResourcesPanel.prototype = { |
| _initialize: function() |
| { |
| this._databaseModel.enable(); |
| - this._domStorageModel.enable(); |
| + |
| var indexedDBModel = WebInspector.IndexedDBModel.fromTarget(this._target); |
| if (indexedDBModel) |
| indexedDBModel.enable(); |
| @@ -169,7 +176,10 @@ WebInspector.ResourcesPanel.prototype = { |
| if (this._target.hasBrowserCapability()) |
| this._populateResourceTree(); |
| - this._populateDOMStorageTree(); |
| + |
| + var domStorageModel = WebInspector.DOMStorageModel.fromTarget(this._target); |
| + if (domStorageModel) |
| + this._populateDOMStorageTree(domStorageModel); |
| this._populateApplicationCacheTree(); |
| this.indexedDBListTreeElement._initialize(); |
| this.cacheStorageListTreeElement._initialize(); |
| @@ -280,10 +290,16 @@ WebInspector.ResourcesPanel.prototype = { |
| _populateResourceTree: function() |
| { |
| this._treeElementForFrameId = {}; |
| - this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameAdded, this._frameAdded, this); |
| - this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameNavigated, this._frameNavigated, this); |
| - this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameDetached, this._frameDetached, this); |
| - this._target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded, this._resourceAdded, this); |
| + |
| + var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(this._target); |
| + |
| + if (!resourceTreeModel) |
| + return; |
| + |
| + resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameAdded, this._frameAdded, this); |
| + resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameNavigated, this._frameNavigated, this); |
| + resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameDetached, this._frameDetached, this); |
| + resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded, this._resourceAdded, this); |
| /** |
| * @param {!WebInspector.ResourceTreeFrame} frame |
| @@ -299,7 +315,7 @@ WebInspector.ResourcesPanel.prototype = { |
| for (var i = 0; i < resources.length; ++i) |
| this._resourceAdded({data:resources[i]}); |
| } |
| - populateFrame.call(this, this._target.resourceTreeModel.mainFrame); |
| + populateFrame.call(this, resourceTreeModel.mainFrame); |
| }, |
| _frameAdded: function(event) |
| @@ -695,11 +711,15 @@ WebInspector.ResourcesPanel.prototype = { |
| database.getTableNames(tableNamesCallback); |
| }, |
| - _populateDOMStorageTree: function() |
| + /** |
| + * @param {!WebInspector.DOMStorageModel} domStorageModel |
| + */ |
| + _populateDOMStorageTree: function(domStorageModel) |
| { |
| - this._domStorageModel.storages().forEach(this._addDOMStorage.bind(this)); |
| - this._domStorageModel.addEventListener(WebInspector.DOMStorageModel.Events.DOMStorageAdded, this._domStorageAdded, this); |
| - this._domStorageModel.addEventListener(WebInspector.DOMStorageModel.Events.DOMStorageRemoved, this._domStorageRemoved, this); |
| + domStorageModel.enable(); |
| + domStorageModel.storages().forEach(this._addDOMStorage.bind(this)); |
| + domStorageModel.addEventListener(WebInspector.DOMStorageModel.Events.DOMStorageAdded, this._domStorageAdded, this); |
| + domStorageModel.addEventListener(WebInspector.DOMStorageModel.Events.DOMStorageRemoved, this._domStorageRemoved, this); |
| }, |
| _populateApplicationCacheTree: function() |
| @@ -1279,10 +1299,9 @@ WebInspector.ServiceWorkerCacheTreeElement.prototype = { |
| /** @type {!Array.<!WebInspector.SWCacheTreeElement>} */ |
| this._swCacheTreeElements = []; |
| var target = this._storagePanel._target; |
| - if (target) { |
| - var model = WebInspector.ServiceWorkerCacheModel.fromTarget(target); |
| - var caches = model.caches(); |
| - for (var cache of caches) |
| + var model = target && WebInspector.ServiceWorkerCacheModel.fromTarget(target); |
| + if (model) { |
| + for (var cache of model.caches()) |
| this._addCache(model, cache); |
| } |
| WebInspector.targetManager.addModelListener(WebInspector.ServiceWorkerCacheModel, WebInspector.ServiceWorkerCacheModel.EventTypes.CacheAdded, this._cacheAdded, this); |
| @@ -1307,7 +1326,8 @@ WebInspector.ServiceWorkerCacheTreeElement.prototype = { |
| var target = this._storagePanel._target; |
| if (target) { |
|
dgozman
2016/07/25 18:56:08
nit: if (!target) return;
eostroukhov-old
2016/07/25 19:47:48
Done.
|
| var model = WebInspector.ServiceWorkerCacheModel.fromTarget(target); |
| - model.refreshCacheNames(); |
| + if (model) |
| + model.refreshCacheNames(); |
| } |
| }, |
| @@ -1568,9 +1588,11 @@ WebInspector.IndexedDBTreeElement.prototype = { |
| /** @type {!Array.<!WebInspector.IDBDatabaseTreeElement>} */ |
| this._idbDatabaseTreeElements = []; |
| - var targets = WebInspector.targetManager.targets(); |
| + var targets = WebInspector.targetManager.targets(WebInspector.Target.Capability.Browser); |
| for (var i = 0; i < targets.length; ++i) { |
| var indexedDBModel = WebInspector.IndexedDBModel.fromTarget(targets[i]); |
| + if (!indexedDBModel) |
|
dgozman
2016/07/25 18:56:09
There must be one for Browser capability.
eostroukhov-old
2016/07/25 19:47:48
Done.
|
| + continue; |
| var databases = indexedDBModel.databases(); |
| for (var j = 0; j < databases.length; ++j) |
| this._addIndexedDB(indexedDBModel, databases[j]); |
| @@ -1592,9 +1614,12 @@ WebInspector.IndexedDBTreeElement.prototype = { |
| refreshIndexedDB: function() |
| { |
| - var targets = WebInspector.targetManager.targets(); |
| - for (var i = 0; i < targets.length; ++i) |
| - WebInspector.IndexedDBModel.fromTarget(targets[i]).refreshDatabaseNames(); |
| + var targets = WebInspector.targetManager.targets(WebInspector.Target.Capability.Browser); |
| + for (var i = 0; i < targets.length; ++i) { |
| + var indexedDBModel = WebInspector.IndexedDBModel.fromTarget(targets[i]) |
| + if (indexedDBModel) |
|
dgozman
2016/07/25 18:56:08
ditto
eostroukhov-old
2016/07/25 19:47:48
Done.
|
| + indexedDBModel.refreshDatabaseNames(); |
| + } |
| }, |
| /** |
| @@ -2135,7 +2160,8 @@ WebInspector.ApplicationCacheFrameTreeElement.prototype = { |
| _refreshTitles: function() |
| { |
| - var frame = this._storagePanel._target.resourceTreeModel.frameForId(this._frameId); |
| + var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(this._storagePanel._target); |
| + var frame = resourceTreeModel.frameForId(this._frameId); |
| this.title = frame.displayName(); |
| }, |