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

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: Comments addressed 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..c7f7a9afaa0611f9613b8b64b62befa4e2491e4e 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");
+
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,19 @@ WebInspector.TargetManager.prototype = {
target.runtimeModel = new WebInspector.RuntimeModel(target);
var networkManager = null;
- if (target.hasNetworkCapability())
+ var resourceTreeModel = null;
+ if (target.hasNetworkCapability()) {
dgozman 2016/08/20 01:32:00 style: unnecessary {}
eostroukhov-old 2016/08/22 17:55:41 Done.
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 (networkManager && target.hasDOMCapability()) {
+ resourceTreeModel = new WebInspector.ResourceTreeModel(target, networkManager, WebInspector.SecurityOriginManager.fromTarget(target));
+ new WebInspector.NetworkLog(target, resourceTreeModel, networkManager);
+ }
if (target.hasJSCapability())
new WebInspector.DebuggerModel(target);
- if (target.hasDOMCapability()) {
+ if (resourceTreeModel) {
var domModel = new WebInspector.DOMModel(target);
new WebInspector.CSSModel(target, domModel);
}
@@ -235,11 +242,14 @@ WebInspector.TargetManager.prototype = {
addTarget: function(target)
{
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 (this._targets.length === 1 && resourceTreeModel) {
+ resourceTreeModel[WebInspector.TargetManager._listenersSymbol] = [
+ resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._redispatchEvent, this),
+ resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.Load, this._redispatchEvent, this),
+ resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.PageReloadRequested, this._redispatchEvent, this),
+ resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.WillReloadPage, this._redispatchEvent, this)
+ ];
}
var copy = this._observersForTarget(target);
for (var i = 0; i < copy.length; ++i)
@@ -261,11 +271,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