Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/bindings/NetworkProject.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/bindings/NetworkProject.js b/third_party/WebKit/Source/devtools/front_end/bindings/NetworkProject.js |
| index 6adf7e31a578bbc5d979d662f98fe60959fbdd9b..306c2f2e70dd9eb3b57427344240c9b82476bdd9 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/bindings/NetworkProject.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/bindings/NetworkProject.js |
| @@ -49,7 +49,7 @@ WebInspector.NetworkProjectManager.prototype = { |
| */ |
| targetAdded: function(target) |
| { |
| - new WebInspector.NetworkProject(target, this._workspace, this._networkMapping); |
| + new WebInspector.NetworkProject(target, this._workspace, this._networkMapping, WebInspector.ResourceTreeModel.fromTarget(target)); |
| }, |
| /** |
| @@ -68,31 +68,41 @@ WebInspector.NetworkProjectManager.prototype = { |
| * @param {!WebInspector.Target} target |
| * @param {!WebInspector.Workspace} workspace |
| * @param {!WebInspector.NetworkMapping} networkMapping |
| + * @param {?WebInspector.ResourceTreeModel} resourceTreeModel |
| */ |
| -WebInspector.NetworkProject = function(target, workspace, networkMapping) |
| +WebInspector.NetworkProject = function(target, workspace, networkMapping, resourceTreeModel) |
| { |
| WebInspector.SDKObject.call(this, target); |
| this._workspace = workspace; |
| this._networkMapping = networkMapping; |
| /** @type {!Map<string, !WebInspector.ContentProviderBasedProject>} */ |
| this._workspaceProjects = new Map(); |
| + this._resourceTreeModel = resourceTreeModel; |
| target[WebInspector.NetworkProject._networkProjectSymbol] = this; |
| - target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded, this._resourceAdded, this); |
| - target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameWillNavigate, this._frameWillNavigate, this); |
| - target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._mainFrameNavigated, this); |
| + this._eventListeners = []; |
| + |
| + if (resourceTreeModel) { |
| + this._eventListeners.push( |
| + resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded, this._resourceAdded, this), |
| + resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameWillNavigate, this._frameWillNavigate, this), |
| + resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._mainFrameNavigated, this)) |
| + } |
| var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); |
| if (debuggerModel) { |
| - debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedScriptSource, this._parsedScriptSource, this); |
| - debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.FailedToParseScriptSource, this._parsedScriptSource, this); |
| + this._eventListeners.push( |
| + debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedScriptSource, this._parsedScriptSource, this), |
| + debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.FailedToParseScriptSource, this._parsedScriptSource, this)); |
| } |
| var cssModel = WebInspector.CSSModel.fromTarget(target); |
| if (cssModel) { |
| - cssModel.addEventListener(WebInspector.CSSModel.Events.StyleSheetAdded, this._styleSheetAdded, this); |
| - cssModel.addEventListener(WebInspector.CSSModel.Events.StyleSheetRemoved, this._styleSheetRemoved, this); |
| + this._eventListeners.push( |
| + cssModel.addEventListener(WebInspector.CSSModel.Events.StyleSheetAdded, this._styleSheetAdded, this), |
| + cssModel.addEventListener(WebInspector.CSSModel.Events.StyleSheetRemoved, this._styleSheetRemoved, this)); |
| } |
| - target.targetManager().addEventListener(WebInspector.TargetManager.Events.SuspendStateChanged, this._suspendStateChanged, this); |
| + this._eventListeners.push( |
| + target.targetManager().addEventListener(WebInspector.TargetManager.Events.SuspendStateChanged, this._suspendStateChanged, this)); |
| } |
| WebInspector.NetworkProject._networkProjectSymbol = Symbol("networkProject"); |
| @@ -166,40 +176,6 @@ WebInspector.NetworkProject.uiSourceCodeMimeType = function(uiSourceCode) |
| return mimeType || uiSourceCode.contentType().canonicalMimeType(); |
| } |
| -/** |
| - * @param {!WebInspector.UISourceCode} uiSourceCode |
| - * @return {?WebInspector.ResourceTreeFrame} |
| - */ |
| -WebInspector.NetworkProject.uiSourceCodeFrame = function(uiSourceCode) |
| -{ |
| - var target = uiSourceCode[WebInspector.NetworkProject._targetSymbol]; |
| - if (!target) |
| - return null; |
| - |
| - var frameId; |
| - |
| - var script = uiSourceCode[WebInspector.NetworkProject._scriptSymbol]; |
| - if (script) { |
| - var executionContext = script.executionContext(); |
| - if (executionContext) |
| - frameId = executionContext.frameId; |
| - } |
| - |
| - if (!frameId) { |
| - var header = uiSourceCode[WebInspector.NetworkProject._styleSheetSymbol]; |
| - if (header) |
| - frameId = header.frameId; |
| - } |
| - |
| - if (!frameId) { |
| - var resource = uiSourceCode[WebInspector.NetworkProject._resourceSymbol]; |
| - if (resource) |
| - frameId = resource.frameId; |
| - } |
| - |
| - return frameId ? target.resourceTreeModel.frameForId(frameId) : null; |
| -} |
| - |
| WebInspector.NetworkProject.prototype = { |
| /** |
| * @param {?WebInspector.ResourceTreeFrame} frame |
| @@ -264,7 +240,8 @@ WebInspector.NetworkProject.prototype = { |
| this._addResource(resources[i]); |
| } |
| - var mainFrame = this.target().resourceTreeModel.mainFrame; |
| + var resourceTreeModel = this._resourceTreeModel; |
| + var mainFrame = resourceTreeModel && resourceTreeModel.mainFrame; |
| if (mainFrame) |
| populateFrame.call(this, mainFrame); |
| }, |
| @@ -422,20 +399,8 @@ WebInspector.NetworkProject.prototype = { |
| _dispose: function() |
| { |
| this._reset(); |
| - var target = this.target(); |
| - target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded, this._resourceAdded, this); |
| - target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._mainFrameNavigated, this); |
| - var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); |
| - if (debuggerModel) { |
| - debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events.ParsedScriptSource, this._parsedScriptSource, this); |
| - debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events.FailedToParseScriptSource, this._parsedScriptSource, this); |
| - } |
| - var cssModel = WebInspector.CSSModel.fromTarget(target); |
| - if (cssModel) { |
| - cssModel.removeEventListener(WebInspector.CSSModel.Events.StyleSheetAdded, this._styleSheetAdded, this); |
| - cssModel.removeEventListener(WebInspector.CSSModel.Events.StyleSheetRemoved, this._styleSheetRemoved, this); |
| - } |
| - delete target[WebInspector.NetworkProject._networkProjectSymbol]; |
| + WebInspector.EventTarget.removeEventListeners(this._eventListeners); |
|
dgozman
2016/08/20 01:32:00
Let's also do this._eventListeners = [];
eostroukhov-old
2016/08/22 17:55:41
Done.
|
| + delete this.target()[WebInspector.NetworkProject._networkProjectSymbol]; |
| }, |
| _reset: function() |