| 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 ca6f7c57a9c8d1dfee85c86b9ffab389777b579a..602273c3ddd20532abc7f20d38b4e8790bd884b4 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/bindings/NetworkProject.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/bindings/NetworkProject.js
|
| @@ -87,11 +87,15 @@ Bindings.NetworkProject = class extends SDK.SDKObject {
|
| resourceTreeModel.addEventListener(SDK.ResourceTreeModel.Events.FrameDetached, this._frameDetached, this));
|
| }
|
|
|
| - var debuggerModel = SDK.DebuggerModel.fromTarget(target);
|
| - if (debuggerModel) {
|
| + var runtimeModel = target.runtimeModel;
|
| + this._debuggerModel = SDK.DebuggerModel.fromTarget(target);
|
| + if (this._debuggerModel && runtimeModel) {
|
| this._eventListeners.push(
|
| - debuggerModel.addEventListener(SDK.DebuggerModel.Events.ParsedScriptSource, this._parsedScriptSource, this),
|
| - debuggerModel.addEventListener(
|
| + runtimeModel.addEventListener(
|
| + SDK.RuntimeModel.Events.ExecutionContextDestroyed, this._executionContextDestroyed, this),
|
| + this._debuggerModel.addEventListener(
|
| + SDK.DebuggerModel.Events.ParsedScriptSource, this._parsedScriptSource, this),
|
| + this._debuggerModel.addEventListener(
|
| SDK.DebuggerModel.Events.FailedToParseScriptSource, this._parsedScriptSource, this));
|
| }
|
| var cssModel = target.model(SDK.CSSModel);
|
| @@ -244,23 +248,35 @@ Bindings.NetworkProject = class extends SDK.SDKObject {
|
| }
|
|
|
| /**
|
| - * @param {!Common.Event} event
|
| + * @param {!SDK.Script} script
|
| + * @return {boolean}
|
| */
|
| - _parsedScriptSource(event) {
|
| - var script = /** @type {!SDK.Script} */ (event.data);
|
| + _acceptsScript(script) {
|
| if (!script.sourceURL || script.isLiveEdit() || (script.isInlineScript() && !script.hasSourceURL))
|
| - return;
|
| + return false;
|
| // Filter out embedder injected content scripts.
|
| if (script.isContentScript() && !script.hasSourceURL) {
|
| var parsedURL = new Common.ParsedURL(script.sourceURL);
|
| if (!parsedURL.isValid)
|
| - return;
|
| + return false;
|
| }
|
| + return true;
|
| + }
|
| +
|
| + /**
|
| + * @param {!Common.Event} event
|
| + */
|
| + _parsedScriptSource(event) {
|
| + var script = /** @type {!SDK.Script} */ (event.data);
|
| + if (!this._acceptsScript(script))
|
| + return;
|
| + var frame = SDK.ResourceTreeFrame.fromScript(script);
|
| var originalContentProvider = script.originalContentProvider();
|
| var bucketType = script.isContentScript() ? Bindings.ProjectBuckets.ContentScriptsBucket :
|
| Bindings.ProjectBuckets.RegularScriptsBucket;
|
| - var uiSourceCode = this._createFile(originalContentProvider, SDK.ResourceTreeFrame.fromScript(script), bucketType);
|
| + var uiSourceCode = this._createFile(originalContentProvider, frame, bucketType);
|
| uiSourceCode[Bindings.NetworkProject._scriptSymbol] = script;
|
| + script[Bindings.NetworkProject._frameSymbol] = frame;
|
| var resource = SDK.ResourceTreeModel.resourceForURL(uiSourceCode.url());
|
| this._addUISourceCodeWithProvider(uiSourceCode, originalContentProvider, this._resourceMetadata(resource));
|
| }
|
| @@ -268,6 +284,22 @@ Bindings.NetworkProject = class extends SDK.SDKObject {
|
| /**
|
| * @param {!Common.Event} event
|
| */
|
| + _executionContextDestroyed(event) {
|
| + var executionContext = /** @type {!SDK.ExecutionContext} */ (event.data);
|
| + var scripts = this._debuggerModel.scriptsForExecutionContext(executionContext);
|
| + for (var script of scripts) {
|
| + if (!this._acceptsScript(script))
|
| + continue;
|
| + var frame = script[Bindings.NetworkProject._frameSymbol];
|
| + var bucketType = script.isContentScript() ? Bindings.ProjectBuckets.ContentScriptsBucket :
|
| + Bindings.ProjectBuckets.RegularScriptsBucket;
|
| + this._removeFileForURL(frame, script.contentURL(), bucketType);
|
| + }
|
| + }
|
| +
|
| + /**
|
| + * @param {!Common.Event} event
|
| + */
|
| _styleSheetAdded(event) {
|
| var header = /** @type {!SDK.CSSStyleSheetHeader} */ (event.data);
|
| if (header.isInline && !header.hasSourceURL && header.origin !== 'inspector')
|
| @@ -314,7 +346,6 @@ Bindings.NetworkProject = class extends SDK.SDKObject {
|
| resourceType !== Common.resourceTypes.Document && resourceType !== Common.resourceTypes.Manifest)
|
| return;
|
|
|
| -
|
| // Ignore non-images and non-fonts.
|
| if (resourceType === Common.resourceTypes.Image && resource.mimeType && !resource.mimeType.startsWith('image'))
|
| return;
|
| @@ -343,8 +374,6 @@ Bindings.NetworkProject = class extends SDK.SDKObject {
|
| // TODO(lushnikov): this method should clean up only ResourcesBucket.
|
| var projects = [
|
| this._workspaceProject(frame, Bindings.ProjectBuckets.ResourcesBucket),
|
| - this._workspaceProject(frame, Bindings.ProjectBuckets.ContentScriptsBucket),
|
| - this._workspaceProject(frame, Bindings.ProjectBuckets.RegularScriptsBucket),
|
| this._workspaceProject(frame, Bindings.ProjectBuckets.StyleSheetsBucket),
|
| ];
|
| for (var resource of frame.resources()) {
|
| @@ -420,8 +449,6 @@ Bindings.NetworkProject = class extends SDK.SDKObject {
|
| var project = this._workspaceProjects.get(projectId);
|
| switch (project[Bindings.NetworkProject._bucketSymbol]) {
|
| case Bindings.ProjectBuckets.ResourcesBucket:
|
| - case Bindings.ProjectBuckets.ContentScriptsBucket:
|
| - case Bindings.ProjectBuckets.RegularScriptsBucket:
|
| case Bindings.ProjectBuckets.StyleSheetsBucket:
|
| case Bindings.ProjectBuckets.SourceMapBucket:
|
| case Bindings.ProjectBuckets.SourceMapContentScriptsBucket:
|
|
|