Index: Source/devtools/front_end/bindings/NetworkProject.js |
diff --git a/Source/devtools/front_end/bindings/NetworkProject.js b/Source/devtools/front_end/bindings/NetworkProject.js |
index 33364e77c63400490bb9d0ee2f4217dac6eea841..09f14624f8a558916cc95a56ec6391acb51f9bc7 100644 |
--- a/Source/devtools/front_end/bindings/NetworkProject.js |
+++ b/Source/devtools/front_end/bindings/NetworkProject.js |
@@ -156,7 +156,6 @@ WebInspector.NetworkProject = function(target, workspace, networkMapping) |
this._processedURLs = {}; |
target[WebInspector.NetworkProject._networkProjectSymbol] = this; |
- target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded, this._resourceAdded, this); |
target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._mainFrameNavigated, this); |
var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); |
@@ -169,6 +168,11 @@ WebInspector.NetworkProject = function(target, workspace, networkMapping) |
cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetAdded, this._styleSheetAdded, this); |
cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetRemoved, this._styleSheetRemoved, this); |
} |
+ |
+ if (debuggerModel && !debuggerModel.debuggerEnabled()) |
pfeldman
2015/07/24 16:50:51
Alright, so what you are doing here is you start l
|
+ debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerWasEnabled, this._debuggerEnabled, this); |
+ else |
+ this._debuggerEnabled(); |
} |
WebInspector.NetworkProject._networkProjectSymbol = Symbol("networkProject"); |
@@ -274,6 +278,15 @@ WebInspector.NetworkProject.prototype = { |
projectDelegate.removeFile(path); |
}, |
+ _debuggerEnabled: function() |
+ { |
+ var debuggerModel = WebInspector.DebuggerModel.fromTarget(this.target()); |
+ if (debuggerModel) |
+ debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events.DebuggerWasEnabled, this._debuggerEnabled, this); |
+ this._populate(); |
+ this.target().resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded, this._resourceAdded, this); |
+ }, |
+ |
_populate: function() |
{ |
/** |
@@ -393,6 +406,7 @@ WebInspector.NetworkProject.prototype = { |
target.resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._mainFrameNavigated, this); |
var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); |
if (debuggerModel) { |
+ debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events.DebuggerWasEnabled, this._debuggerEnabled, this); |
debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events.ParsedScriptSource, this._parsedScriptSource, this); |
debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events.FailedToParseScriptSource, this._parsedScriptSource, this); |
} |
@@ -451,46 +465,48 @@ WebInspector.NetworkProject.FallbackResource.prototype = { |
requestContent: function(callback) |
{ |
/** |
+ * @param {!WebInspector.Target} target |
+ * @param {string} url |
+ * @return {!Array.<!WebInspector.Script>} |
+ */ |
+ function findScripts(target, url) |
+ { |
+ var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); |
+ return debuggerModel ? debuggerModel.scriptsForSourceURL(url) : []; |
+ } |
+ |
+ /** |
+ * @param {?string} content |
* @this {WebInspector.NetworkProject.FallbackResource} |
*/ |
- function loadFallbackContent() |
+ function loadFallbackContent(content) |
{ |
- var debuggerModel = WebInspector.DebuggerModel.fromTarget(this._resource.target()); |
- if (!debuggerModel) { |
- callback(null); |
+ if (content) { |
+ callback(content); |
sergeyv
2015/07/20 08:40:58
Looks like you are going to have a stale content f
sergeyv
2015/07/20 08:45:55
Sorry, I mixed up brackets. That's not correct
|
return; |
} |
- var scripts = debuggerModel.scriptsForSourceURL(this._resource.url); |
- if (!scripts.length) { |
+ |
+ if (this._resource.resourceType() !== WebInspector.resourceTypes.Document) { |
callback(null); |
return; |
} |
- var contentProvider; |
- var type = this._resource.resourceType(); |
- if (type === WebInspector.resourceTypes.Document) |
- contentProvider = new WebInspector.ConcatenatedScriptsContentProvider(scripts); |
- else if (type === WebInspector.resourceTypes.Script) |
- contentProvider = scripts[0]; |
- |
- console.assert(contentProvider, "Resource content request failed. " + this._resource.url); |
- |
- contentProvider.requestContent(callback); |
+ var scripts = findScripts(this._resource.target(), this._resource.url); |
+ if (scripts.length) |
+ new WebInspector.ConcatenatedScriptsContentProvider(scripts).requestContent(callback); |
+ else |
+ callback(null); |
} |
- /** |
- * @param {?string} content |
- * @this {WebInspector.NetworkProject.FallbackResource} |
- */ |
- function requestContentLoaded(content) |
- { |
- if (content) |
- callback(content) |
- else |
- loadFallbackContent.call(this); |
+ if (this._resource.resourceType() === WebInspector.resourceTypes.Script) { |
+ var scripts = findScripts(this._resource.target(), this._resource.url); |
+ if (scripts.length) { |
+ scripts[0].requestContent(callback); |
+ return; |
+ } |
} |
- this._resource.requestContent(requestContentLoaded.bind(this)); |
+ this._resource.requestContent(loadFallbackContent.bind(this)); |
}, |
/** |