| 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 |