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

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

Issue 2441933002: [DevTools] Refactor connection-related classes. (Closed)
Patch Set: tests.js Created 4 years, 1 month 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 */
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 */ 176 */
177 unobserveTargets: function(targetObserver) 177 unobserveTargets: function(targetObserver)
178 { 178 {
179 delete targetObserver[this._observerCapabiliesMaskSymbol]; 179 delete targetObserver[this._observerCapabiliesMaskSymbol];
180 this._observers.remove(targetObserver); 180 this._observers.remove(targetObserver);
181 }, 181 },
182 182
183 /** 183 /**
184 * @param {string} name 184 * @param {string} name
185 * @param {number} capabilitiesMask 185 * @param {number} capabilitiesMask
186 * @param {!InspectorBackendClass.Connection} connection 186 * @param {!InspectorBackendClass.Connection.Factory} connectionFactory
187 * @param {?WebInspector.Target} parentTarget 187 * @param {?WebInspector.Target} parentTarget
188 * @return {!WebInspector.Target} 188 * @return {!WebInspector.Target}
189 */ 189 */
190 createTarget: function(name, capabilitiesMask, connection, parentTarget) 190 createTarget: function(name, capabilitiesMask, connectionFactory, parentTarg et)
191 { 191 {
192 var target = new WebInspector.Target(this, name, capabilitiesMask, conne ction, parentTarget); 192 var target = new WebInspector.Target(this, name, capabilitiesMask, conne ctionFactory, parentTarget);
193 193
194 var logAgent = target.hasLogCapability() ? target.logAgent() : null; 194 var logAgent = target.hasLogCapability() ? target.logAgent() : null;
195 195
196 /** @type {!WebInspector.ConsoleModel} */ 196 /** @type {!WebInspector.ConsoleModel} */
197 target.consoleModel = new WebInspector.ConsoleModel(target, logAgent); 197 target.consoleModel = new WebInspector.ConsoleModel(target, logAgent);
198 198
199 var networkManager = null; 199 var networkManager = null;
200 var resourceTreeModel = null; 200 var resourceTreeModel = null;
201 if (target.hasNetworkCapability()) 201 if (target.hasNetworkCapability())
202 networkManager = new WebInspector.NetworkManager(target); 202 networkManager = new WebInspector.NetworkManager(target);
(...skipping 26 matching lines...) Expand all
229 if (target.hasBrowserCapability()) { 229 if (target.hasBrowserCapability()) {
230 target.subTargetsManager = new WebInspector.SubTargetsManager(target ); 230 target.subTargetsManager = new WebInspector.SubTargetsManager(target );
231 target.serviceWorkerManager = new WebInspector.ServiceWorkerManager( target, target.subTargetsManager); 231 target.serviceWorkerManager = new WebInspector.ServiceWorkerManager( target, target.subTargetsManager);
232 } 232 }
233 233
234 this.addTarget(target); 234 this.addTarget(target);
235 return target; 235 return target;
236 }, 236 },
237 237
238 /** 238 /**
239 * @param {function()} factory 239 * @param {function(function(string)):!Promise<!InspectorBackendClass.Connec tion>} interceptor
240 */ 240 */
241 setMainTargetFactory: function(factory) 241 setMainConnectionInterceptor: function(interceptor)
242 { 242 {
243 this._mainTargetFactory = factory; 243 this._mainConnectionInterceptor = interceptor;
244 }, 244 },
245 245
246 /** 246 /**
247 * @param {function(string)} dispatch 247 * @param {function(string)} onMessage
248 * @return {!Promise<!WebInspector.RawProtocolConnection>} 248 * @return {!Promise<!InspectorBackendClass.Connection>}
249 */ 249 */
250 interceptMainConnection: function(dispatch) 250 interceptMainConnection: function(onMessage)
251 { 251 {
252 var target = WebInspector.targetManager.mainTarget(); 252 return this._mainConnectionInterceptor.call(null, onMessage);
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 }, 253 },
269 254
270 /** 255 /**
271 * @param {!WebInspector.Target} target 256 * @param {!WebInspector.Target} target
272 * @return {!Array<!WebInspector.TargetManager.Observer>} 257 * @return {!Array<!WebInspector.TargetManager.Observer>}
273 */ 258 */
274 _observersForTarget: function(target) 259 _observersForTarget: function(target)
275 { 260 {
276 return this._observers.filter((observer) => target.hasAllCapabilities(ob server[this._observerCapabiliesMaskSymbol] || 0)); 261 return this._observers.filter((observer) => target.hasAllCapabilities(ob server[this._observerCapabiliesMaskSymbol] || 0));
277 }, 262 },
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 /** 401 /**
417 * @param {!WebInspector.Target} target 402 * @param {!WebInspector.Target} target
418 */ 403 */
419 targetRemoved: function(target) { }, 404 targetRemoved: function(target) { },
420 }; 405 };
421 406
422 /** 407 /**
423 * @type {!WebInspector.TargetManager} 408 * @type {!WebInspector.TargetManager}
424 */ 409 */
425 WebInspector.targetManager = new WebInspector.TargetManager(); 410 WebInspector.targetManager = new WebInspector.TargetManager();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698