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

Side by Side 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2014 The Chromium Authors. All rights reserved. 2 * Copyright 2014 The Chromium Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be 3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file. 4 * found in the LICENSE file.
5 */ 5 */
6 6
7 /** 7 /**
8 * @constructor 8 * @constructor
9 * @extends {WebInspector.Object} 9 * @extends {WebInspector.Object}
10 */ 10 */
(...skipping 13 matching lines...) Expand all
24 WebInspector.TargetManager.Events = { 24 WebInspector.TargetManager.Events = {
25 InspectedURLChanged: "InspectedURLChanged", 25 InspectedURLChanged: "InspectedURLChanged",
26 MainFrameNavigated: "MainFrameNavigated", 26 MainFrameNavigated: "MainFrameNavigated",
27 Load: "Load", 27 Load: "Load",
28 PageReloadRequested: "PageReloadRequested", 28 PageReloadRequested: "PageReloadRequested",
29 WillReloadPage: "WillReloadPage", 29 WillReloadPage: "WillReloadPage",
30 TargetDisposed: "TargetDisposed", 30 TargetDisposed: "TargetDisposed",
31 SuspendStateChanged: "SuspendStateChanged" 31 SuspendStateChanged: "SuspendStateChanged"
32 } 32 }
33 33
34 WebInspector.TargetManager._ListenersSymbol = Symbol("WebInspector.TargetManager .Listeners");
dgozman 2016/08/19 20:23:37 style: _listenersSymbol
eostroukhov 2016/08/20 01:22:31 Done.
35
34 WebInspector.TargetManager.prototype = { 36 WebInspector.TargetManager.prototype = {
35 suspendAllTargets: function() 37 suspendAllTargets: function()
36 { 38 {
37 if (this._isSuspended) 39 if (this._isSuspended)
38 return; 40 return;
39 this._isSuspended = true; 41 this._isSuspended = true;
40 this.dispatchEventToListeners(WebInspector.TargetManager.Events.SuspendS tateChanged); 42 this.dispatchEventToListeners(WebInspector.TargetManager.Events.SuspendS tateChanged);
41 43
42 for (var i = 0; i < this._targets.length; ++i) { 44 for (var i = 0; i < this._targets.length; ++i) {
43 for (var model of this._targets[i].models()) 45 for (var model of this._targets[i].models())
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 { 94 {
93 this.dispatchEventToListeners(event.type, event.data); 95 this.dispatchEventToListeners(event.type, event.data);
94 }, 96 },
95 97
96 /** 98 /**
97 * @param {boolean=} bypassCache 99 * @param {boolean=} bypassCache
98 * @param {string=} injectedScript 100 * @param {string=} injectedScript
99 */ 101 */
100 reloadPage: function(bypassCache, injectedScript) 102 reloadPage: function(bypassCache, injectedScript)
101 { 103 {
102 if (this._targets.length) 104 if (!this._targets.length)
103 this._targets[0].resourceTreeModel.reloadPage(bypassCache, injectedS cript); 105 return;
106
107 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(this._ targets[0]);
108 if (!resourceTreeModel)
109 return;
110
111 resourceTreeModel.reloadPage(bypassCache, injectedScript);
104 }, 112 },
105 113
106 /** 114 /**
107 * @param {!Function} modelClass 115 * @param {!Function} modelClass
108 * @param {string} eventType 116 * @param {string} eventType
109 * @param {function(!WebInspector.Event)} listener 117 * @param {function(!WebInspector.Event)} listener
110 * @param {!Object=} thisObject 118 * @param {!Object=} thisObject
111 */ 119 */
112 addModelListener: function(modelClass, eventType, listener, thisObject) 120 addModelListener: function(modelClass, eventType, listener, thisObject)
113 { 121 {
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 createTarget: function(name, capabilitiesMask, connection, parentTarget) 187 createTarget: function(name, capabilitiesMask, connection, parentTarget)
180 { 188 {
181 var target = new WebInspector.Target(this, name, capabilitiesMask, conne ction, parentTarget); 189 var target = new WebInspector.Target(this, name, capabilitiesMask, conne ction, parentTarget);
182 190
183 /** @type {!WebInspector.ConsoleModel} */ 191 /** @type {!WebInspector.ConsoleModel} */
184 target.consoleModel = new WebInspector.ConsoleModel(target); 192 target.consoleModel = new WebInspector.ConsoleModel(target);
185 /** @type {!WebInspector.RuntimeModel} */ 193 /** @type {!WebInspector.RuntimeModel} */
186 target.runtimeModel = new WebInspector.RuntimeModel(target); 194 target.runtimeModel = new WebInspector.RuntimeModel(target);
187 195
188 var networkManager = null; 196 var networkManager = null;
189 if (target.hasNetworkCapability()) 197 var resourceTreeModel = null;
198 if (target.hasNetworkCapability()) {
190 networkManager = new WebInspector.NetworkManager(target); 199 networkManager = new WebInspector.NetworkManager(target);
191 200 if (target.hasDOMCapability()) {
192 var securityOriginManager = WebInspector.SecurityOriginManager.fromTarge t(target); 201 var securityOriginManager = WebInspector.SecurityOriginManager.f romTarget(target);
dgozman 2016/08/19 20:23:37 Inline this one?
eostroukhov 2016/08/20 01:22:31 Done.
193 /** @type {!WebInspector.ResourceTreeModel} */ 202 resourceTreeModel = new WebInspector.ResourceTreeModel(target, n etworkManager, securityOriginManager);
194 target.resourceTreeModel = new WebInspector.ResourceTreeModel(target, ne tworkManager, securityOriginManager); 203 new WebInspector.NetworkLog(target, resourceTreeModel, networkMa nager);
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.
195 204 }
196 if (networkManager) 205 }
197 new WebInspector.NetworkLog(target, target.resourceTreeModel, networ kManager);
198 206
199 if (target.hasJSCapability()) 207 if (target.hasJSCapability())
200 new WebInspector.DebuggerModel(target); 208 new WebInspector.DebuggerModel(target);
201 209
202 if (target.hasDOMCapability()) { 210 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.
203 var domModel = new WebInspector.DOMModel(target); 211 var domModel = new WebInspector.DOMModel(target);
204 new WebInspector.CSSModel(target, domModel); 212 new WebInspector.CSSModel(target, domModel);
205 } 213 }
206 214
207 /** @type {?WebInspector.WorkerManager} */ 215 /** @type {?WebInspector.WorkerManager} */
208 target.workerManager = target.hasWorkerCapability() ? new WebInspector.W orkerManager(target) : null; 216 target.workerManager = target.hasWorkerCapability() ? new WebInspector.W orkerManager(target) : null;
209 /** @type {!WebInspector.CPUProfilerModel} */ 217 /** @type {!WebInspector.CPUProfilerModel} */
210 target.cpuProfilerModel = new WebInspector.CPUProfilerModel(target); 218 target.cpuProfilerModel = new WebInspector.CPUProfilerModel(target);
211 /** @type {!WebInspector.HeapProfilerModel} */ 219 /** @type {!WebInspector.HeapProfilerModel} */
212 target.heapProfilerModel = new WebInspector.HeapProfilerModel(target); 220 target.heapProfilerModel = new WebInspector.HeapProfilerModel(target);
(...skipping 16 matching lines...) Expand all
229 return this._observers.filter((observer) => target.hasAllCapabilities(ob server[this._observerCapabiliesMaskSymbol] || 0)); 237 return this._observers.filter((observer) => target.hasAllCapabilities(ob server[this._observerCapabiliesMaskSymbol] || 0));
230 }, 238 },
231 239
232 /** 240 /**
233 * @param {!WebInspector.Target} target 241 * @param {!WebInspector.Target} target
234 */ 242 */
235 addTarget: function(target) 243 addTarget: function(target)
236 { 244 {
237 this._targets.push(target); 245 this._targets.push(target);
238 if (this._targets.length === 1) { 246 if (this._targets.length === 1) {
239 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeM odel.EventTypes.MainFrameNavigated, this._redispatchEvent, this); 247 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(ta rget);
240 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeM odel.EventTypes.Load, this._redispatchEvent, this); 248 if (resourceTreeModel) {
241 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeM odel.EventTypes.PageReloadRequested, this._redispatchEvent, this); 249 var listeners = [];
242 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeM odel.EventTypes.WillReloadPage, this._redispatchEvent, this); 250 listeners.push(resourceTreeModel.addEventListener(WebInspector.R esourceTreeModel.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.
251 listeners.push(resourceTreeModel.addEventListener(WebInspector.R esourceTreeModel.EventTypes.Load, this._redispatchEvent, this));
252 listeners.push(resourceTreeModel.addEventListener(WebInspector.R esourceTreeModel.EventTypes.PageReloadRequested, this._redispatchEvent, this));
253 listeners.push(resourceTreeModel.addEventListener(WebInspector.R esourceTreeModel.EventTypes.WillReloadPage, this._redispatchEvent, this));
254 resourceTreeModel[WebInspector.TargetManager._ListenersSymbol] = listeners;
255 }
243 } 256 }
244 var copy = this._observersForTarget(target); 257 var copy = this._observersForTarget(target);
245 for (var i = 0; i < copy.length; ++i) 258 for (var i = 0; i < copy.length; ++i)
246 copy[i].targetAdded(target); 259 copy[i].targetAdded(target);
247 260
248 for (var eventType in this._modelListeners) { 261 for (var eventType in this._modelListeners) {
249 var listeners = this._modelListeners[eventType]; 262 var listeners = this._modelListeners[eventType];
250 for (var i = 0; i < listeners.length; ++i) { 263 for (var i = 0; i < listeners.length; ++i) {
251 var model = target.model(listeners[i].modelClass); 264 var model = target.model(listeners[i].modelClass);
252 if (model) 265 if (model)
253 model.addEventListener(eventType, listeners[i].listener, lis teners[i].thisObject); 266 model.addEventListener(eventType, listeners[i].listener, lis teners[i].thisObject);
254 } 267 }
255 } 268 }
256 }, 269 },
257 270
258 /** 271 /**
259 * @param {!WebInspector.Target} target 272 * @param {!WebInspector.Target} target
260 */ 273 */
261 removeTarget: function(target) 274 removeTarget: function(target)
262 { 275 {
263 this._targets.remove(target); 276 this._targets.remove(target);
264 if (this._targets.length === 0) { 277 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target );
265 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTr eeModel.EventTypes.MainFrameNavigated, this._redispatchEvent, this); 278 var treeModelListeners = resourceTreeModel && resourceTreeModel[WebInspe ctor.TargetManager._ListenersSymbol];
266 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTr eeModel.EventTypes.Load, this._redispatchEvent, this); 279 if (treeModelListeners)
267 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTr eeModel.EventTypes.WillReloadPage, this._redispatchEvent, this); 280 WebInspector.EventTarget.removeEventListeners(treeModelListeners);
268 } 281
269 var copy = this._observersForTarget(target); 282 var copy = this._observersForTarget(target);
270 for (var i = 0; i < copy.length; ++i) 283 for (var i = 0; i < copy.length; ++i)
271 copy[i].targetRemoved(target); 284 copy[i].targetRemoved(target);
272 285
273 for (var eventType in this._modelListeners) { 286 for (var eventType in this._modelListeners) {
274 var listeners = this._modelListeners[eventType]; 287 var listeners = this._modelListeners[eventType];
275 for (var i = 0; i < listeners.length; ++i) { 288 for (var i = 0; i < listeners.length; ++i) {
276 var model = target.model(listeners[i].modelClass); 289 var model = target.model(listeners[i].modelClass);
277 if (model) 290 if (model)
278 model.removeEventListener(eventType, listeners[i].listener, listeners[i].thisObject); 291 model.removeEventListener(eventType, listeners[i].listener, listeners[i].thisObject);
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 /** 366 /**
354 * @param {!WebInspector.Target} target 367 * @param {!WebInspector.Target} target
355 */ 368 */
356 targetRemoved: function(target) { }, 369 targetRemoved: function(target) { },
357 } 370 }
358 371
359 /** 372 /**
360 * @type {!WebInspector.TargetManager} 373 * @type {!WebInspector.TargetManager}
361 */ 374 */
362 WebInspector.targetManager = new WebInspector.TargetManager(); 375 WebInspector.targetManager = new WebInspector.TargetManager();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698