Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js b/third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js |
| index 02623fe55fef3466c10686d2cee117103124892f..c7f7a9afaa0611f9613b8b64b62befa4e2491e4e 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js |
| @@ -31,6 +31,8 @@ WebInspector.TargetManager.Events = { |
| SuspendStateChanged: "SuspendStateChanged" |
| } |
| +WebInspector.TargetManager._listenersSymbol = Symbol("WebInspector.TargetManager.Listeners"); |
| + |
| WebInspector.TargetManager.prototype = { |
| suspendAllTargets: function() |
| { |
| @@ -99,8 +101,14 @@ WebInspector.TargetManager.prototype = { |
| */ |
| reloadPage: function(bypassCache, injectedScript) |
| { |
| - if (this._targets.length) |
| - this._targets[0].resourceTreeModel.reloadPage(bypassCache, injectedScript); |
| + if (!this._targets.length) |
| + return; |
| + |
| + var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(this._targets[0]); |
| + if (!resourceTreeModel) |
| + return; |
| + |
| + resourceTreeModel.reloadPage(bypassCache, injectedScript); |
| }, |
| /** |
| @@ -186,20 +194,19 @@ WebInspector.TargetManager.prototype = { |
| target.runtimeModel = new WebInspector.RuntimeModel(target); |
| var networkManager = null; |
| - if (target.hasNetworkCapability()) |
| + var resourceTreeModel = null; |
| + if (target.hasNetworkCapability()) { |
|
dgozman
2016/08/20 01:32:00
style: unnecessary {}
eostroukhov-old
2016/08/22 17:55:41
Done.
|
| networkManager = new WebInspector.NetworkManager(target); |
| - |
| - var securityOriginManager = WebInspector.SecurityOriginManager.fromTarget(target); |
| - /** @type {!WebInspector.ResourceTreeModel} */ |
| - target.resourceTreeModel = new WebInspector.ResourceTreeModel(target, networkManager, securityOriginManager); |
| - |
| - if (networkManager) |
| - new WebInspector.NetworkLog(target, target.resourceTreeModel, networkManager); |
| + } |
| + if (networkManager && target.hasDOMCapability()) { |
| + resourceTreeModel = new WebInspector.ResourceTreeModel(target, networkManager, WebInspector.SecurityOriginManager.fromTarget(target)); |
| + new WebInspector.NetworkLog(target, resourceTreeModel, networkManager); |
| + } |
| if (target.hasJSCapability()) |
| new WebInspector.DebuggerModel(target); |
| - if (target.hasDOMCapability()) { |
| + if (resourceTreeModel) { |
| var domModel = new WebInspector.DOMModel(target); |
| new WebInspector.CSSModel(target, domModel); |
| } |
| @@ -235,11 +242,14 @@ WebInspector.TargetManager.prototype = { |
| addTarget: function(target) |
| { |
| this._targets.push(target); |
| - if (this._targets.length === 1) { |
| - target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._redispatchEvent, this); |
| - target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.Load, this._redispatchEvent, this); |
| - target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.PageReloadRequested, this._redispatchEvent, this); |
| - target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.WillReloadPage, this._redispatchEvent, this); |
| + var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target); |
| + if (this._targets.length === 1 && resourceTreeModel) { |
| + resourceTreeModel[WebInspector.TargetManager._listenersSymbol] = [ |
| + resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._redispatchEvent, this), |
| + resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.Load, this._redispatchEvent, this), |
| + resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.PageReloadRequested, this._redispatchEvent, this), |
| + resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.WillReloadPage, this._redispatchEvent, this) |
| + ]; |
| } |
| var copy = this._observersForTarget(target); |
| for (var i = 0; i < copy.length; ++i) |
| @@ -261,11 +271,11 @@ WebInspector.TargetManager.prototype = { |
| removeTarget: function(target) |
| { |
| this._targets.remove(target); |
| - if (this._targets.length === 0) { |
| - target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._redispatchEvent, this); |
| - target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.Load, this._redispatchEvent, this); |
| - target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.WillReloadPage, this._redispatchEvent, this); |
| - } |
| + var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target); |
| + var treeModelListeners = resourceTreeModel && resourceTreeModel[WebInspector.TargetManager._listenersSymbol]; |
| + if (treeModelListeners) |
| + WebInspector.EventTarget.removeEventListeners(treeModelListeners); |
| + |
| var copy = this._observersForTarget(target); |
| for (var i = 0; i < copy.length; ++i) |
| copy[i].targetRemoved(target); |