OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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(); |
OLD | NEW |