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

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: Comments 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 14 matching lines...) Expand all
25 WebInspector.TargetManager.Events = { 25 WebInspector.TargetManager.Events = {
26 InspectedURLChanged: Symbol("InspectedURLChanged"), 26 InspectedURLChanged: Symbol("InspectedURLChanged"),
27 MainFrameNavigated: Symbol("MainFrameNavigated"), 27 MainFrameNavigated: Symbol("MainFrameNavigated"),
28 Load: Symbol("Load"), 28 Load: Symbol("Load"),
29 PageReloadRequested: Symbol("PageReloadRequested"), 29 PageReloadRequested: Symbol("PageReloadRequested"),
30 WillReloadPage: Symbol("WillReloadPage"), 30 WillReloadPage: Symbol("WillReloadPage"),
31 TargetDisposed: Symbol("TargetDisposed"), 31 TargetDisposed: Symbol("TargetDisposed"),
32 SuspendStateChanged: Symbol("SuspendStateChanged") 32 SuspendStateChanged: Symbol("SuspendStateChanged")
33 } 33 }
34 34
35 WebInspector.TargetManager._listenersSymbol = Symbol("WebInspector.TargetManager .Listeners");
36
35 WebInspector.TargetManager.prototype = { 37 WebInspector.TargetManager.prototype = {
36 suspendAllTargets: function() 38 suspendAllTargets: function()
37 { 39 {
38 if (this._isSuspended) 40 if (this._isSuspended)
39 return; 41 return;
40 this._isSuspended = true; 42 this._isSuspended = true;
41 this.dispatchEventToListeners(WebInspector.TargetManager.Events.SuspendS tateChanged); 43 this.dispatchEventToListeners(WebInspector.TargetManager.Events.SuspendS tateChanged);
42 44
43 for (var i = 0; i < this._targets.length; ++i) { 45 for (var i = 0; i < this._targets.length; ++i) {
44 for (var model of this._targets[i].models()) 46 for (var model of this._targets[i].models())
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 { 95 {
94 this.dispatchEventToListeners(event.type, event.data); 96 this.dispatchEventToListeners(event.type, event.data);
95 }, 97 },
96 98
97 /** 99 /**
98 * @param {boolean=} bypassCache 100 * @param {boolean=} bypassCache
99 * @param {string=} injectedScript 101 * @param {string=} injectedScript
100 */ 102 */
101 reloadPage: function(bypassCache, injectedScript) 103 reloadPage: function(bypassCache, injectedScript)
102 { 104 {
103 if (this._targets.length) 105 if (!this._targets.length)
104 this._targets[0].resourceTreeModel.reloadPage(bypassCache, injectedS cript); 106 return;
107
108 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(this._ targets[0]);
109 if (!resourceTreeModel)
110 return;
111
112 resourceTreeModel.reloadPage(bypassCache, injectedScript);
105 }, 113 },
106 114
107 /** 115 /**
108 * @param {!Function} modelClass 116 * @param {!Function} modelClass
109 * @param {string} eventType 117 * @param {string} eventType
110 * @param {function(!WebInspector.Event)} listener 118 * @param {function(!WebInspector.Event)} listener
111 * @param {!Object=} thisObject 119 * @param {!Object=} thisObject
112 */ 120 */
113 addModelListener: function(modelClass, eventType, listener, thisObject) 121 addModelListener: function(modelClass, eventType, listener, thisObject)
114 { 122 {
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 createTarget: function(name, capabilitiesMask, connection, parentTarget) 188 createTarget: function(name, capabilitiesMask, connection, parentTarget)
181 { 189 {
182 var target = new WebInspector.Target(this, name, capabilitiesMask, conne ction, parentTarget); 190 var target = new WebInspector.Target(this, name, capabilitiesMask, conne ction, parentTarget);
183 191
184 /** @type {!WebInspector.ConsoleModel} */ 192 /** @type {!WebInspector.ConsoleModel} */
185 target.consoleModel = new WebInspector.ConsoleModel(target); 193 target.consoleModel = new WebInspector.ConsoleModel(target);
186 /** @type {!WebInspector.RuntimeModel} */ 194 /** @type {!WebInspector.RuntimeModel} */
187 target.runtimeModel = new WebInspector.RuntimeModel(target); 195 target.runtimeModel = new WebInspector.RuntimeModel(target);
188 196
189 var networkManager = null; 197 var networkManager = null;
198 var resourceTreeModel = null;
190 if (target.hasNetworkCapability()) 199 if (target.hasNetworkCapability())
191 networkManager = new WebInspector.NetworkManager(target); 200 networkManager = new WebInspector.NetworkManager(target);
192 201 if (networkManager && target.hasDOMCapability()) {
193 var securityOriginManager = WebInspector.SecurityOriginManager.fromTarge t(target); 202 resourceTreeModel = new WebInspector.ResourceTreeModel(target, netwo rkManager, WebInspector.SecurityOriginManager.fromTarget(target));
194 /** @type {!WebInspector.ResourceTreeModel} */ 203 new WebInspector.NetworkLog(target, resourceTreeModel, networkManage r);
195 target.resourceTreeModel = new WebInspector.ResourceTreeModel(target, ne tworkManager, securityOriginManager); 204 }
196
197 if (networkManager)
198 new WebInspector.NetworkLog(target, target.resourceTreeModel, networ kManager);
199 205
200 if (target.hasJSCapability()) 206 if (target.hasJSCapability())
201 new WebInspector.DebuggerModel(target); 207 new WebInspector.DebuggerModel(target);
202 208
203 if (target.hasDOMCapability()) { 209 if (resourceTreeModel) {
204 var domModel = new WebInspector.DOMModel(target); 210 var domModel = new WebInspector.DOMModel(target);
211 // TODO(eostroukhov) CSSModel should not depend on RTM
205 new WebInspector.CSSModel(target, domModel); 212 new WebInspector.CSSModel(target, domModel);
206 } 213 }
207 214
208 /** @type {?WebInspector.WorkerManager} */ 215 /** @type {?WebInspector.WorkerManager} */
209 target.workerManager = target.hasWorkerCapability() ? new WebInspector.W orkerManager(target) : null; 216 target.workerManager = target.hasWorkerCapability() ? new WebInspector.W orkerManager(target) : null;
210 /** @type {!WebInspector.CPUProfilerModel} */ 217 /** @type {!WebInspector.CPUProfilerModel} */
211 target.cpuProfilerModel = new WebInspector.CPUProfilerModel(target); 218 target.cpuProfilerModel = new WebInspector.CPUProfilerModel(target);
212 /** @type {!WebInspector.HeapProfilerModel} */ 219 /** @type {!WebInspector.HeapProfilerModel} */
213 target.heapProfilerModel = new WebInspector.HeapProfilerModel(target); 220 target.heapProfilerModel = new WebInspector.HeapProfilerModel(target);
214 221
(...skipping 14 matching lines...) Expand all
229 { 236 {
230 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));
231 }, 238 },
232 239
233 /** 240 /**
234 * @param {!WebInspector.Target} target 241 * @param {!WebInspector.Target} target
235 */ 242 */
236 addTarget: function(target) 243 addTarget: function(target)
237 { 244 {
238 this._targets.push(target); 245 this._targets.push(target);
239 if (this._targets.length === 1) { 246 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target );
240 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeM odel.EventTypes.MainFrameNavigated, this._redispatchEvent, this); 247 if (this._targets.length === 1 && resourceTreeModel) {
241 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeM odel.EventTypes.Load, this._redispatchEvent, this); 248 var events = [
242 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeM odel.EventTypes.PageReloadRequested, this._redispatchEvent, this); 249 WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated,
243 target.resourceTreeModel.addEventListener(WebInspector.ResourceTreeM odel.EventTypes.WillReloadPage, this._redispatchEvent, this); 250 WebInspector.ResourceTreeModel.EventTypes.Load,
251 WebInspector.ResourceTreeModel.EventTypes.PageReloadRequested,
252 WebInspector.ResourceTreeModel.EventTypes.WillReloadPage
253 ];
254 resourceTreeModel[WebInspector.TargetManager._listenersSymbol] =
255 events.map((event) => resourceTreeModel.addEventListener(event, this._redispatchEvent, this));
244 } 256 }
245 var copy = this._observersForTarget(target); 257 var copy = this._observersForTarget(target);
246 for (var i = 0; i < copy.length; ++i) 258 for (var i = 0; i < copy.length; ++i)
247 copy[i].targetAdded(target); 259 copy[i].targetAdded(target);
248 260
249 for (var eventType in this._modelListeners) { 261 for (var eventType in this._modelListeners) {
250 var listeners = this._modelListeners[eventType]; 262 var listeners = this._modelListeners[eventType];
251 for (var i = 0; i < listeners.length; ++i) { 263 for (var i = 0; i < listeners.length; ++i) {
252 var model = target.model(listeners[i].modelClass); 264 var model = target.model(listeners[i].modelClass);
253 if (model) 265 if (model)
254 model.addEventListener(eventType, listeners[i].listener, lis teners[i].thisObject); 266 model.addEventListener(eventType, listeners[i].listener, lis teners[i].thisObject);
255 } 267 }
256 } 268 }
257 }, 269 },
258 270
259 /** 271 /**
260 * @param {!WebInspector.Target} target 272 * @param {!WebInspector.Target} target
261 */ 273 */
262 removeTarget: function(target) 274 removeTarget: function(target)
263 { 275 {
264 this._targets.remove(target); 276 this._targets.remove(target);
265 if (this._targets.length === 0) { 277 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target );
266 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTr eeModel.EventTypes.MainFrameNavigated, this._redispatchEvent, this); 278 var treeModelListeners = resourceTreeModel && resourceTreeModel[WebInspe ctor.TargetManager._listenersSymbol];
267 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTr eeModel.EventTypes.Load, this._redispatchEvent, this); 279 if (treeModelListeners)
268 target.resourceTreeModel.removeEventListener(WebInspector.ResourceTr eeModel.EventTypes.WillReloadPage, this._redispatchEvent, this); 280 WebInspector.EventTarget.removeEventListeners(treeModelListeners);
269 } 281
270 var copy = this._observersForTarget(target); 282 var copy = this._observersForTarget(target);
271 for (var i = 0; i < copy.length; ++i) 283 for (var i = 0; i < copy.length; ++i)
272 copy[i].targetRemoved(target); 284 copy[i].targetRemoved(target);
273 285
274 for (var eventType in this._modelListeners) { 286 for (var eventType in this._modelListeners) {
275 var listeners = this._modelListeners[eventType]; 287 var listeners = this._modelListeners[eventType];
276 for (var i = 0; i < listeners.length; ++i) { 288 for (var i = 0; i < listeners.length; ++i) {
277 var model = target.model(listeners[i].modelClass); 289 var model = target.model(listeners[i].modelClass);
278 if (model) 290 if (model)
279 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
354 /** 366 /**
355 * @param {!WebInspector.Target} target 367 * @param {!WebInspector.Target} target
356 */ 368 */
357 targetRemoved: function(target) { }, 369 targetRemoved: function(target) { },
358 } 370 }
359 371
360 /** 372 /**
361 * @type {!WebInspector.TargetManager} 373 * @type {!WebInspector.TargetManager}
362 */ 374 */
363 WebInspector.targetManager = new WebInspector.TargetManager(); 375 WebInspector.targetManager = new WebInspector.TargetManager();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698