| 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 /** | 7 /** |
| 8 * @constructor | 8 * @constructor |
| 9 * @extends {WebInspector.Object} | 9 * @extends {WebInspector.Object} |
| 10 */ | 10 */ |
| 11 WebInspector.TargetManager = function() | 11 WebInspector.TargetManager = function() |
| 12 { | 12 { |
| 13 WebInspector.Object.call(this); | 13 WebInspector.Object.call(this); |
| 14 /** @type {!Array.<!WebInspector.Target>} */ | 14 /** @type {!Array.<!WebInspector.Target>} */ |
| 15 this._targets = []; | 15 this._targets = []; |
| 16 /** @type {!Array.<!WebInspector.TargetManager.Observer>} */ | 16 /** @type {!Array.<!WebInspector.TargetManager.Observer>} */ |
| 17 this._observers = []; | 17 this._observers = []; |
| 18 this._observerCapabiliesMaskSymbol = Symbol("observerCapabilitiesMask"); | 18 this._observerCapabiliesMaskSymbol = Symbol("observerCapabilitiesMask"); |
| 19 /** @type {!Map<symbol, !Array<{modelClass: !Function, thisObject: (!Object|
undefined), listener: function(!WebInspector.Event)}>>} */ | 19 /** @type {!Map<symbol, !Array<{modelClass: !Function, thisObject: (!Object|
undefined), listener: function(!WebInspector.Event)}>>} */ |
| 20 this._modelListeners = new Map(); | 20 this._modelListeners = new Map(); |
| 21 this._isSuspended = false; | 21 this._isSuspended = false; |
| 22 /** @type {?WebInspector.TargetManager.MainChannelInterceptor} */ |
| 23 this._mainChannelInterceptor = null; |
| 22 } | 24 } |
| 23 | 25 |
| 24 /** @enum {symbol} */ | 26 /** @enum {symbol} */ |
| 25 WebInspector.TargetManager.Events = { | 27 WebInspector.TargetManager.Events = { |
| 26 InspectedURLChanged: Symbol("InspectedURLChanged"), | 28 InspectedURLChanged: Symbol("InspectedURLChanged"), |
| 27 Load: Symbol("Load"), | 29 Load: Symbol("Load"), |
| 28 MainFrameNavigated: Symbol("MainFrameNavigated"), | 30 MainFrameNavigated: Symbol("MainFrameNavigated"), |
| 29 NameChanged: Symbol("NameChanged"), | 31 NameChanged: Symbol("NameChanged"), |
| 30 PageReloadRequested: Symbol("PageReloadRequested"), | 32 PageReloadRequested: Symbol("PageReloadRequested"), |
| 31 WillReloadPage: Symbol("WillReloadPage"), | 33 WillReloadPage: Symbol("WillReloadPage"), |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 */ | 178 */ |
| 177 unobserveTargets: function(targetObserver) | 179 unobserveTargets: function(targetObserver) |
| 178 { | 180 { |
| 179 delete targetObserver[this._observerCapabiliesMaskSymbol]; | 181 delete targetObserver[this._observerCapabiliesMaskSymbol]; |
| 180 this._observers.remove(targetObserver); | 182 this._observers.remove(targetObserver); |
| 181 }, | 183 }, |
| 182 | 184 |
| 183 /** | 185 /** |
| 184 * @param {string} name | 186 * @param {string} name |
| 185 * @param {number} capabilitiesMask | 187 * @param {number} capabilitiesMask |
| 186 * @param {!InspectorBackendClass.Connection} connection | 188 * @param {!InspectorBackendClass.Channel} channel |
| 187 * @param {?WebInspector.Target} parentTarget | 189 * @param {?WebInspector.Target} parentTarget |
| 188 * @return {!WebInspector.Target} | 190 * @return {!WebInspector.Target} |
| 189 */ | 191 */ |
| 190 createTarget: function(name, capabilitiesMask, connection, parentTarget) | 192 createTarget: function(name, capabilitiesMask, channel, parentTarget) |
| 191 { | 193 { |
| 192 var target = new WebInspector.Target(this, name, capabilitiesMask, conne
ction, parentTarget); | 194 var target = new WebInspector.Target(this, name, capabilitiesMask, chann
el, parentTarget); |
| 193 | 195 |
| 194 var logAgent = target.hasLogCapability() ? target.logAgent() : null; | 196 var logAgent = target.hasLogCapability() ? target.logAgent() : null; |
| 195 | 197 |
| 196 /** @type {!WebInspector.ConsoleModel} */ | 198 /** @type {!WebInspector.ConsoleModel} */ |
| 197 target.consoleModel = new WebInspector.ConsoleModel(target, logAgent); | 199 target.consoleModel = new WebInspector.ConsoleModel(target, logAgent); |
| 198 | 200 |
| 199 var networkManager = null; | 201 var networkManager = null; |
| 200 var resourceTreeModel = null; | 202 var resourceTreeModel = null; |
| 201 if (target.hasNetworkCapability()) | 203 if (target.hasNetworkCapability()) |
| 202 networkManager = new WebInspector.NetworkManager(target); | 204 networkManager = new WebInspector.NetworkManager(target); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 229 if (target.hasBrowserCapability()) { | 231 if (target.hasBrowserCapability()) { |
| 230 target.subTargetsManager = new WebInspector.SubTargetsManager(target
); | 232 target.subTargetsManager = new WebInspector.SubTargetsManager(target
); |
| 231 target.serviceWorkerManager = new WebInspector.ServiceWorkerManager(
target, target.subTargetsManager); | 233 target.serviceWorkerManager = new WebInspector.ServiceWorkerManager(
target, target.subTargetsManager); |
| 232 } | 234 } |
| 233 | 235 |
| 234 this.addTarget(target); | 236 this.addTarget(target); |
| 235 return target; | 237 return target; |
| 236 }, | 238 }, |
| 237 | 239 |
| 238 /** | 240 /** |
| 239 * @param {function()} factory | 241 * @param {?WebInspector.TargetManager.MainChannelInterceptor} mainChannelIn
terceptor |
| 240 */ | 242 */ |
| 241 setMainTargetFactory: function(factory) | 243 setMainChannelInterceptor: function(mainChannelInterceptor) |
| 242 { | 244 { |
| 243 this._mainTargetFactory = factory; | 245 this._mainChannelInterceptor = mainChannelInterceptor; |
| 244 }, | 246 }, |
| 245 | 247 |
| 246 /** | 248 /** |
| 247 * @param {function(string)} dispatch | 249 * @return {?WebInspector.TargetManager.MainChannelInterceptor} |
| 248 * @return {!Promise<!WebInspector.RawProtocolConnection>} | |
| 249 */ | 250 */ |
| 250 interceptMainConnection: function(dispatch) | 251 mainChannelInterceptor: function() |
| 251 { | 252 { |
| 252 var target = WebInspector.targetManager.mainTarget(); | 253 return this._mainChannelInterceptor; |
| 253 if (target) | |
| 254 target.connection().close(); | |
| 255 | |
| 256 var fulfill; | |
| 257 var result = new Promise(resolve => fulfill = resolve); | |
| 258 InspectorFrontendHost.reattach(() => fulfill(new WebInspector.RawProtoco
lConnection(dispatch, yieldCallback.bind(this)))); | |
| 259 return result; | |
| 260 | |
| 261 /** | |
| 262 * @this {WebInspector.TargetManager} | |
| 263 */ | |
| 264 function yieldCallback() | |
| 265 { | |
| 266 InspectorFrontendHost.reattach(this._mainTargetFactory()); | |
| 267 } | |
| 268 }, | 254 }, |
| 269 | 255 |
| 270 /** | 256 /** |
| 271 * @param {!WebInspector.Target} target | 257 * @param {!WebInspector.Target} target |
| 272 * @return {!Array<!WebInspector.TargetManager.Observer>} | 258 * @return {!Array<!WebInspector.TargetManager.Observer>} |
| 273 */ | 259 */ |
| 274 _observersForTarget: function(target) | 260 _observersForTarget: function(target) |
| 275 { | 261 { |
| 276 return this._observers.filter((observer) => target.hasAllCapabilities(ob
server[this._observerCapabiliesMaskSymbol] || 0)); | 262 return this._observers.filter((observer) => target.hasAllCapabilities(ob
server[this._observerCapabiliesMaskSymbol] || 0)); |
| 277 }, | 263 }, |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 413 */ | 399 */ |
| 414 targetAdded: function(target) { }, | 400 targetAdded: function(target) { }, |
| 415 | 401 |
| 416 /** | 402 /** |
| 417 * @param {!WebInspector.Target} target | 403 * @param {!WebInspector.Target} target |
| 418 */ | 404 */ |
| 419 targetRemoved: function(target) { }, | 405 targetRemoved: function(target) { }, |
| 420 } | 406 } |
| 421 | 407 |
| 422 /** | 408 /** |
| 409 * @interface |
| 410 */ |
| 411 WebInspector.TargetManager.MainChannelInterceptor = function() |
| 412 { |
| 413 } |
| 414 |
| 415 WebInspector.TargetManager.MainChannelInterceptor.prototype = { |
| 416 /** |
| 417 * @return {!Promise<!InspectorBackendClass.Channel>} |
| 418 */ |
| 419 takeMainChannel: function() |
| 420 { |
| 421 }, |
| 422 |
| 423 yieldMainChannel: function() |
| 424 { |
| 425 } |
| 426 } |
| 427 |
| 428 /** |
| 423 * @type {!WebInspector.TargetManager} | 429 * @type {!WebInspector.TargetManager} |
| 424 */ | 430 */ |
| 425 WebInspector.targetManager = new WebInspector.TargetManager(); | 431 WebInspector.targetManager = new WebInspector.TargetManager(); |
| OLD | NEW |