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 6cea05b6809fea62ec437a308a933c07bf0e3029..19a97cfbe7ff2d1d72afca49e3875ac2078e7612 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/bindings/NetworkProject.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/bindings/NetworkProject.js |
| @@ -83,7 +83,8 @@ Bindings.NetworkProject = class extends SDK.SDKObject { |
| resourceTreeModel.addEventListener( |
| SDK.ResourceTreeModel.Events.FrameWillNavigate, this._frameWillNavigate, this), |
| resourceTreeModel.addEventListener( |
| - SDK.ResourceTreeModel.Events.MainFrameNavigated, this._mainFrameNavigated, this)); |
| + SDK.ResourceTreeModel.Events.MainFrameNavigated, this._mainFrameNavigated, this), |
| + resourceTreeModel.addEventListener(SDK.ResourceTreeModel.Events.FrameDetached, this._frameDetached, this)); |
| } |
| var debuggerModel = SDK.DebuggerModel.fromTarget(target); |
| @@ -313,20 +314,22 @@ Bindings.NetworkProject = class extends SDK.SDKObject { |
| resource.contentURL().startsWith('data:')) |
| return; |
| + var frame = SDK.ResourceTreeFrame.fromResource(resource); |
| // Never load document twice. |
| - if (this._workspace.uiSourceCodeForURL(resource.url)) |
| + var projectId = Bindings.NetworkProject.projectId(this.target(), frame, false); |
| + var project = this._workspaceProjects.get(projectId); |
| + if (project && project.uiSourceCodeForURL(resource.url)) |
| return; |
| - var uiSourceCode = this._createFile(resource, SDK.ResourceTreeFrame.fromResource(resource), false); |
| + var uiSourceCode = this._createFile(resource, frame, false); |
| uiSourceCode[Bindings.NetworkProject._resourceSymbol] = resource; |
| this._addUISourceCodeWithProvider(uiSourceCode, resource, this._resourceMetadata(resource)); |
| } |
| /** |
| - * @param {!Common.Event} event |
| + * @param {!SDK.ResourceTreeFrame} frame |
| */ |
| - _frameWillNavigate(event) { |
| - var frame = /** @type {!SDK.ResourceTreeFrame} */ (event.data); |
| + _removeFrameResources(frame) { |
| var project = this._workspaceProject(frame, false); |
| for (var resource of frame.resources()) |
| project.removeUISourceCode(resource.url); |
| @@ -338,9 +341,24 @@ Bindings.NetworkProject = class extends SDK.SDKObject { |
| /** |
| * @param {!Common.Event} event |
| */ |
| + _frameWillNavigate(event) { |
| + var frame = /** @type {!SDK.ResourceTreeFrame} */ (event.data); |
| + this._removeFrameResources(frame); |
| + } |
| + |
| + /** |
| + * @param {!Common.Event} event |
| + */ |
| + _frameDetached(event) { |
| + var frame = /** @type {!SDK.ResourceTreeFrame} */ (event.data); |
| + this._removeFrameResources(frame); |
| + } |
| + |
| + /** |
| + * @param {!Common.Event} event |
| + */ |
| _mainFrameNavigated(event) { |
| this._reset(); |
|
lushnikov
2017/03/07 19:36:45
the "reset" is still needed since this is where we
|
| - this._populate(); |
| } |
| _suspendStateChanged() { |