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

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

Issue 2758963002: [DevTools] Remove dependency from TargetManager to ResourceTreeModel (Closed)
Patch Set: review comments addressed Created 3 years, 9 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 SDK.TargetManager = class extends Common.Object { 7 SDK.TargetManager = class extends Common.Object {
8 constructor() { 8 constructor() {
9 super(); 9 super();
10 /** @type {!Array.<!SDK.Target>} */ 10 /** @type {!Array.<!SDK.Target>} */
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 } 93 }
94 94
95 /** 95 /**
96 * @return {string} 96 * @return {string}
97 */ 97 */
98 inspectedURL() { 98 inspectedURL() {
99 return this._targets[0] ? this._targets[0].inspectedURL() : ''; 99 return this._targets[0] ? this._targets[0].inspectedURL() : '';
100 } 100 }
101 101
102 /** 102 /**
103 * @param {boolean=} bypassCache
104 * @param {string=} injectedScript
105 */
106 reloadPage(bypassCache, injectedScript) {
107 if (!this._targets.length)
108 return;
109
110 var resourceTreeModel = SDK.ResourceTreeModel.fromTarget(this._targets[0]);
111 if (!resourceTreeModel)
112 return;
113
114 resourceTreeModel.reloadPage(bypassCache, injectedScript);
115 }
116
117 /**
118 * @param {function(new:T,!SDK.Target)} modelClass 103 * @param {function(new:T,!SDK.Target)} modelClass
119 * @param {!SDK.SDKModelObserver<T>} observer 104 * @param {!SDK.SDKModelObserver<T>} observer
120 * @template T 105 * @template T
121 */ 106 */
122 observeModels(modelClass, observer) { 107 observeModels(modelClass, observer) {
123 if (!this._modelObservers.has(modelClass)) 108 if (!this._modelObservers.has(modelClass))
124 this._modelObservers.set(modelClass, []); 109 this._modelObservers.set(modelClass, []);
125 this._modelObservers.get(modelClass).push(observer); 110 this._modelObservers.get(modelClass).push(observer);
126 for (var model of this.models(modelClass)) 111 for (var model of this.models(modelClass))
127 observer.modelAdded(model); 112 observer.modelAdded(model);
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 * @param {number} capabilitiesMask 223 * @param {number} capabilitiesMask
239 * @param {!Protocol.InspectorBackend.Connection.Factory} connectionFactory 224 * @param {!Protocol.InspectorBackend.Connection.Factory} connectionFactory
240 * @param {?SDK.Target} parentTarget 225 * @param {?SDK.Target} parentTarget
241 * @return {!SDK.Target} 226 * @return {!SDK.Target}
242 */ 227 */
243 createTarget(id, name, capabilitiesMask, connectionFactory, parentTarget) { 228 createTarget(id, name, capabilitiesMask, connectionFactory, parentTarget) {
244 var target = new SDK.Target(this, id, name, capabilitiesMask, connectionFact ory, parentTarget); 229 var target = new SDK.Target(this, id, name, capabilitiesMask, connectionFact ory, parentTarget);
245 this._pendingTargets.add(target); 230 this._pendingTargets.add(target);
246 231
247 target.model(SDK.NetworkManager); 232 target.model(SDK.NetworkManager);
248 var resourceTreeModel = target.model(SDK.ResourceTreeModel); 233 target.model(SDK.ResourceTreeModel);
249 /** @type {!SDK.RuntimeModel} */ 234 /** @type {!SDK.RuntimeModel} */
250 target.runtimeModel = /** @type {!SDK.RuntimeModel} */ (target.model(SDK.Run timeModel)); 235 target.runtimeModel = /** @type {!SDK.RuntimeModel} */ (target.model(SDK.Run timeModel));
251 target.model(SDK.DebuggerModel); 236 target.model(SDK.DebuggerModel);
252 target.model(SDK.LogModel); 237 target.model(SDK.LogModel);
253 target.model(SDK.DOMModel); 238 target.model(SDK.DOMModel);
254 target.model(SDK.CSSModel); 239 target.model(SDK.CSSModel);
255 target.model(SDK.CPUProfilerModel); 240 target.model(SDK.CPUProfilerModel);
256 target.model(SDK.ServiceWorkerManager); 241 target.model(SDK.ServiceWorkerManager);
257 242
258 if (target.hasTargetCapability()) 243 if (target.hasTargetCapability())
259 this._childTargetManagers.set(target, new SDK.ChildTargetManager(this, tar get, resourceTreeModel)); 244 this._childTargetManagers.set(target, new SDK.ChildTargetManager(this, tar get));
260 245
261 // Force creation of models which have observers. 246 // Force creation of models which have observers.
262 for (var modelClass of this._modelObservers.keys()) 247 for (var modelClass of this._modelObservers.keys())
263 target.model(modelClass); 248 target.model(modelClass);
264 this._pendingTargets.delete(target); 249 this._pendingTargets.delete(target);
265 250
266 this._targets.push(target); 251 this._targets.push(target);
267 252
268 if (resourceTreeModel && !target.parentTarget()) {
269 resourceTreeModel[SDK.TargetManager._listenersSymbol] = [
270 resourceTreeModel.addEventListener(
271 SDK.ResourceTreeModel.Events.MainFrameNavigated,
272 event => this.dispatchEventToListeners(SDK.TargetManager.Events.Main FrameNavigated, event.data)),
273 resourceTreeModel.addEventListener(
274 SDK.ResourceTreeModel.Events.Load,
275 event => this.dispatchEventToListeners(SDK.TargetManager.Events.Load , event.data)),
276 resourceTreeModel.addEventListener(
277 SDK.ResourceTreeModel.Events.PageReloadRequested,
278 event => this.dispatchEventToListeners(SDK.TargetManager.Events.Page ReloadRequested, event.data)),
279 resourceTreeModel.addEventListener(
280 SDK.ResourceTreeModel.Events.WillReloadPage,
281 event => this.dispatchEventToListeners(SDK.TargetManager.Events.Will ReloadPage, event.data)),
282 ];
283 }
284
285 var copy = this._observersForTarget(target); 253 var copy = this._observersForTarget(target);
286 for (var i = 0; i < copy.length; ++i) 254 for (var i = 0; i < copy.length; ++i)
287 copy[i].targetAdded(target); 255 copy[i].targetAdded(target);
288 256
289 for (var modelClass of target.models().keys()) 257 for (var modelClass of target.models().keys())
290 this.modelAdded(target, modelClass, target.models().get(modelClass)); 258 this.modelAdded(target, modelClass, target.models().get(modelClass));
291 259
292 for (var pair of this._modelListeners) { 260 for (var pair of this._modelListeners) {
293 var listeners = pair[1]; 261 var listeners = pair[1];
294 for (var i = 0; i < listeners.length; ++i) { 262 for (var i = 0; i < listeners.length; ++i) {
(...skipping 21 matching lines...) Expand all
316 removeTarget(target) { 284 removeTarget(target) {
317 if (!this._targets.includes(target)) 285 if (!this._targets.includes(target))
318 return; 286 return;
319 287
320 var childTargetManager = this._childTargetManagers.get(target); 288 var childTargetManager = this._childTargetManagers.get(target);
321 this._childTargetManagers.delete(target); 289 this._childTargetManagers.delete(target);
322 if (childTargetManager) 290 if (childTargetManager)
323 childTargetManager.dispose(); 291 childTargetManager.dispose();
324 292
325 this._targets.remove(target); 293 this._targets.remove(target);
326 var resourceTreeModel = SDK.ResourceTreeModel.fromTarget(target);
327 var treeModelListeners = resourceTreeModel && resourceTreeModel[SDK.TargetMa nager._listenersSymbol];
328 if (treeModelListeners)
329 Common.EventTarget.removeEventListeners(treeModelListeners);
330 294
331 for (var modelClass of target.models().keys()) 295 for (var modelClass of target.models().keys())
332 this._modelRemoved(target, modelClass, target.models().get(modelClass)); 296 this._modelRemoved(target, modelClass, target.models().get(modelClass));
333 297
334 var copy = this._observersForTarget(target); 298 var copy = this._observersForTarget(target);
335 for (var i = 0; i < copy.length; ++i) 299 for (var i = 0; i < copy.length; ++i)
336 copy[i].targetRemoved(target); 300 copy[i].targetRemoved(target);
337 301
338 for (var pair of this._modelListeners) { 302 for (var pair of this._modelListeners) {
339 var listeners = pair[1]; 303 var listeners = pair[1];
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 this._webSocketConnectionLostCallback = webSocketConnectionLostCallback; 348 this._webSocketConnectionLostCallback = webSocketConnectionLostCallback;
385 this._connectAndCreateMainTarget(); 349 this._connectAndCreateMainTarget();
386 } 350 }
387 351
388 _connectAndCreateMainTarget() { 352 _connectAndCreateMainTarget() {
389 if (Runtime.queryParam('nodeFrontend')) { 353 if (Runtime.queryParam('nodeFrontend')) {
390 var target = new SDK.Target( 354 var target = new SDK.Target(
391 this, 'main', Common.UIString('Node'), SDK.Target.Capability.Target, t his._createMainConnection.bind(this), 355 this, 'main', Common.UIString('Node'), SDK.Target.Capability.Target, t his._createMainConnection.bind(this),
392 null); 356 null);
393 target.setInspectedURL('Node'); 357 target.setInspectedURL('Node');
394 this._childTargetManagers.set(target, new SDK.ChildTargetManager(this, tar get, null)); 358 this._childTargetManagers.set(target, new SDK.ChildTargetManager(this, tar get));
395 Host.userMetrics.actionTaken(Host.UserMetrics.Action.ConnectToNodeJSFromFr ontend); 359 Host.userMetrics.actionTaken(Host.UserMetrics.Action.ConnectToNodeJSFromFr ontend);
396 return; 360 return;
397 } 361 }
398 362
399 var capabilities = SDK.Target.Capability.Browser | SDK.Target.Capability.DOM | SDK.Target.Capability.JS | 363 var capabilities = SDK.Target.Capability.Browser | SDK.Target.Capability.DOM | SDK.Target.Capability.JS |
400 SDK.Target.Capability.Log | SDK.Target.Capability.Network | SDK.Target.C apability.Target | 364 SDK.Target.Capability.Log | SDK.Target.Capability.Network | SDK.Target.C apability.Target |
401 SDK.Target.Capability.ScreenCapture | SDK.Target.Capability.Tracing | SD K.Target.Capability.TouchEmulation; 365 SDK.Target.Capability.ScreenCapture | SDK.Target.Capability.Tracing | SD K.Target.Capability.TouchEmulation;
402 if (Runtime.queryParam('isSharedWorker')) { 366 if (Runtime.queryParam('isSharedWorker')) {
403 capabilities = SDK.Target.Capability.Browser | SDK.Target.Capability.Log | SDK.Target.Capability.Network | 367 capabilities = SDK.Target.Capability.Browser | SDK.Target.Capability.Log | SDK.Target.Capability.Network |
404 SDK.Target.Capability.Target; 368 SDK.Target.Capability.Target;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 } 411 }
448 }; 412 };
449 413
450 /** 414 /**
451 * @implements {Protocol.TargetDispatcher} 415 * @implements {Protocol.TargetDispatcher}
452 */ 416 */
453 SDK.ChildTargetManager = class { 417 SDK.ChildTargetManager = class {
454 /** 418 /**
455 * @param {!SDK.TargetManager} targetManager 419 * @param {!SDK.TargetManager} targetManager
456 * @param {!SDK.Target} parentTarget 420 * @param {!SDK.Target} parentTarget
457 * @param {?SDK.ResourceTreeModel} resourceTreeModel
458 */ 421 */
459 constructor(targetManager, parentTarget, resourceTreeModel) { 422 constructor(targetManager, parentTarget) {
460 this._targetManager = targetManager; 423 this._targetManager = targetManager;
461 this._parentTarget = parentTarget; 424 this._parentTarget = parentTarget;
462 this._targetAgent = parentTarget.targetAgent(); 425 this._targetAgent = parentTarget.targetAgent();
463 426
464 /** @type {!Map<string, !SDK.ChildConnection>} */ 427 /** @type {!Map<string, !SDK.ChildConnection>} */
465 this._childConnections = new Map(); 428 this._childConnections = new Map();
466 429
467 parentTarget.registerTargetDispatcher(this); 430 parentTarget.registerTargetDispatcher(this);
468 this._targetAgent.invoke_setAutoAttach({autoAttach: true, waitForDebuggerOnS tart: true}); 431 this._targetAgent.invoke_setAutoAttach({autoAttach: true, waitForDebuggerOnS tart: true});
469 if (Runtime.experiments.isEnabled('autoAttachToCrossProcessSubframes')) 432 if (Runtime.experiments.isEnabled('autoAttachToCrossProcessSubframes'))
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 * @return {!Promise} 594 * @return {!Promise}
632 */ 595 */
633 disconnect() { 596 disconnect() {
634 throw 'Not implemented'; 597 throw 'Not implemented';
635 } 598 }
636 }; 599 };
637 600
638 /** @enum {symbol} */ 601 /** @enum {symbol} */
639 SDK.TargetManager.Events = { 602 SDK.TargetManager.Events = {
640 InspectedURLChanged: Symbol('InspectedURLChanged'), 603 InspectedURLChanged: Symbol('InspectedURLChanged'),
641 Load: Symbol('Load'),
642 MainFrameNavigated: Symbol('MainFrameNavigated'),
643 NameChanged: Symbol('NameChanged'), 604 NameChanged: Symbol('NameChanged'),
644 PageReloadRequested: Symbol('PageReloadRequested'),
645 WillReloadPage: Symbol('WillReloadPage'),
646 TargetDisposed: Symbol('TargetDisposed'),
647 SuspendStateChanged: Symbol('SuspendStateChanged'), 605 SuspendStateChanged: Symbol('SuspendStateChanged'),
648 AvailableNodeTargetsChanged: Symbol('AvailableNodeTargetsChanged') 606 AvailableNodeTargetsChanged: Symbol('AvailableNodeTargetsChanged')
649 }; 607 };
650 608
651 SDK.TargetManager._listenersSymbol = Symbol('SDK.TargetManager.Listeners');
652 SDK.TargetManager._isWorkerSymbol = Symbol('SDK.TargetManager.IsWorker'); 609 SDK.TargetManager._isWorkerSymbol = Symbol('SDK.TargetManager.IsWorker');
653 610
654 /** 611 /**
655 * @interface 612 * @interface
656 */ 613 */
657 SDK.TargetManager.Observer = function() {}; 614 SDK.TargetManager.Observer = function() {};
658 615
659 SDK.TargetManager.Observer.prototype = { 616 SDK.TargetManager.Observer.prototype = {
660 /** 617 /**
661 * @param {!SDK.Target} target 618 * @param {!SDK.Target} target
(...skipping 21 matching lines...) Expand all
683 /** 640 /**
684 * @param {!T} model 641 * @param {!T} model
685 */ 642 */
686 modelRemoved(model) {}, 643 modelRemoved(model) {},
687 }; 644 };
688 645
689 /** 646 /**
690 * @type {!SDK.TargetManager} 647 * @type {!SDK.TargetManager}
691 */ 648 */
692 SDK.targetManager = new SDK.TargetManager(); 649 SDK.targetManager = new SDK.TargetManager();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698