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..8f726570f9226268dc78b796e7933e027ed4556d 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js |
| @@ -124,17 +124,22 @@ WebInspector.ResourcesPanel.prototype = { |
| { |
| if (this._target) |
| return; |
| + |
| + var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target); |
| + if (!resourceTreeModel) |
|
dgozman
2016/07/22 03:27:02
This will break for service worker: all storage su
eostroukhov-old
2016/07/22 23:27:43
Done.
|
| + 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); |
| + |
| + 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 +152,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 +166,9 @@ WebInspector.ResourcesPanel.prototype = { |
| _initialize: function() |
| { |
| this._databaseModel.enable(); |
| - this._domStorageModel.enable(); |
| + var domStorageModel = WebInspector.DOMStorageModel.fromTarget(this._target); |
| + if (domStorageModel) |
| + domStorageModel.enable(); |
| var indexedDBModel = WebInspector.IndexedDBModel.fromTarget(this._target); |
| if (indexedDBModel) |
| indexedDBModel.enable(); |
| @@ -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) |
| @@ -697,9 +713,12 @@ WebInspector.ResourcesPanel.prototype = { |
| _populateDOMStorageTree: function() |
| { |
| - 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); |
| + var domStorageModel = WebInspector.DOMStorageModel.fromTarget(this._target); |
| + if (!domStorageModel) |
| + return; |
| + 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 +1298,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 +1325,8 @@ WebInspector.ServiceWorkerCacheTreeElement.prototype = { |
| var target = this._storagePanel._target; |
| if (target) { |
| var model = WebInspector.ServiceWorkerCacheModel.fromTarget(target); |
| - model.refreshCacheNames(); |
| + if (model) |
| + model.refreshCacheNames(); |
| } |
| }, |
| @@ -1568,9 +1587,11 @@ WebInspector.IndexedDBTreeElement.prototype = { |
| /** @type {!Array.<!WebInspector.IDBDatabaseTreeElement>} */ |
| this._idbDatabaseTreeElements = []; |
| - var targets = WebInspector.targetManager.targets(); |
| + var targets = WebInspector.targetManager.targets(WebInspector.Target.Capability.DOM); |
|
dgozman
2016/07/22 03:27:02
IndexedDB is not DOM, but Browser.
eostroukhov-old
2016/07/22 23:27:43
Done.
|
| for (var i = 0; i < targets.length; ++i) { |
| var indexedDBModel = WebInspector.IndexedDBModel.fromTarget(targets[i]); |
| + if (!indexedDBModel) |
| + continue; |
| var databases = indexedDBModel.databases(); |
| for (var j = 0; j < databases.length; ++j) |
| this._addIndexedDB(indexedDBModel, databases[j]); |
| @@ -1592,9 +1613,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.DOM); |
|
dgozman
2016/07/22 03:27:02
ditto
eostroukhov-old
2016/07/22 23:27:43
Done.
|
| + for (var i = 0; i < targets.length; ++i) { |
| + var indexedDBModel = WebInspector.IndexedDBModel.fromTarget(targets[i]) |
| + if (indexedDBModel) |
| + indexedDBModel.refreshDatabaseNames(); |
| + } |
| }, |
| /** |
| @@ -2135,7 +2159,10 @@ WebInspector.ApplicationCacheFrameTreeElement.prototype = { |
| _refreshTitles: function() |
| { |
| - var frame = this._storagePanel._target.resourceTreeModel.frameForId(this._frameId); |
| + var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(this._storagePanel._target); |
| + if (!resourceTreeModel) |
|
dgozman
2016/07/22 03:27:02
It cannot be null here.
eostroukhov-old
2016/07/22 23:27:43
Done.
|
| + return; |
| + var frame = resourceTreeModel.frameForId(this._frameId); |
| this.title = frame.displayName(); |
| }, |