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

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

Issue 2441933002: [DevTools] Refactor connection-related classes. (Closed)
Patch Set: test fixes Created 4 years, 2 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 */
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
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
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
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();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698