Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(752)

Unified Diff: third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js

Issue 2122353002: [DevTools] Make resource tree model optional (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: [DevTools] No RTM for non-browser targets Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..29b762b6e8479d9a5379d33e5a922117538cdc52 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");
dgozman 2016/08/19 20:23:37 style: _listenersSymbol
eostroukhov 2016/08/20 01:22:31 Done.
+
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,20 @@ WebInspector.TargetManager.prototype = {
target.runtimeModel = new WebInspector.RuntimeModel(target);
var networkManager = null;
- if (target.hasNetworkCapability())
+ var resourceTreeModel = null;
+ if (target.hasNetworkCapability()) {
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 (target.hasDOMCapability()) {
+ var securityOriginManager = WebInspector.SecurityOriginManager.fromTarget(target);
dgozman 2016/08/19 20:23:37 Inline this one?
eostroukhov 2016/08/20 01:22:31 Done.
+ resourceTreeModel = new WebInspector.ResourceTreeModel(target, networkManager, securityOriginManager);
+ new WebInspector.NetworkLog(target, resourceTreeModel, networkManager);
dgozman 2016/08/19 20:23:37 nit: let's avoid nested if's here. Instead I propo
eostroukhov 2016/08/20 01:22:31 Done.
+ }
+ }
if (target.hasJSCapability())
new WebInspector.DebuggerModel(target);
- if (target.hasDOMCapability()) {
+ if (resourceTreeModel) {
dgozman 2016/08/19 20:23:37 Why this change? If DOMModel or CSSModel cannot wo
eostroukhov 2016/08/20 01:22:31 I was trying to do this in an earlier CL - ultimat
dgozman 2016/08/20 01:32:00 Let's add a TODO here then.
eostroukhov-old 2016/08/22 17:55:41 Done.
var domModel = new WebInspector.DOMModel(target);
new WebInspector.CSSModel(target, domModel);
}
@@ -236,10 +244,15 @@ WebInspector.TargetManager.prototype = {
{
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 (resourceTreeModel) {
+ var listeners = [];
+ listeners.push(resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._redispatchEvent, this));
dgozman 2016/08/19 20:23:37 nit: instead of push, we can inline: resourceTreeM
eostroukhov 2016/08/20 01:22:31 Done.
+ listeners.push(resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.Load, this._redispatchEvent, this));
+ listeners.push(resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.PageReloadRequested, this._redispatchEvent, this));
+ listeners.push(resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.WillReloadPage, this._redispatchEvent, this));
+ resourceTreeModel[WebInspector.TargetManager._ListenersSymbol] = listeners;
+ }
}
var copy = this._observersForTarget(target);
for (var i = 0; i < copy.length; ++i)
@@ -261,11 +274,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);

Powered by Google App Engine
This is Rietveld 408576698