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

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

Issue 2421913003: DevTools: allow reattaching main target live. (Closed)
Patch Set: same 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 */
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 if (target.hasBrowserCapability()) { 228 if (target.hasBrowserCapability()) {
229 target.subTargetsManager = new WebInspector.SubTargetsManager(target ); 229 target.subTargetsManager = new WebInspector.SubTargetsManager(target );
230 target.serviceWorkerManager = new WebInspector.ServiceWorkerManager( target, target.subTargetsManager); 230 target.serviceWorkerManager = new WebInspector.ServiceWorkerManager( target, target.subTargetsManager);
231 } 231 }
232 232
233 this.addTarget(target); 233 this.addTarget(target);
234 return target; 234 return target;
235 }, 235 },
236 236
237 /** 237 /**
238 * @param {function()} factory
239 */
240 setMainTargetFactory: function(factory)
241 {
242 this._mainTargetFactory = factory;
243 },
244
245 /**
246 * @param {function(string)} dispatch
247 * @return {!Promise<!WebInspector.RawProtocolConnection>}
248 */
249 interceptMainConnection: function(dispatch)
dgozman 2016/10/15 00:26:26 Let's rework TargetDisposed event.
250 {
251 var targets = this._targets.slice();
252 for (var i = targets.length - 1; i >=0 ; --i)
253 targets[i].connection().close();
254
255 var yeld = InspectorFrontendHost.reattach.bind(InspectorFrontendHost, th is._mainTargetFactory);
dgozman 2016/10/15 00:26:26 yield
256
257 var fulfill;
258 var result = new Promise(resolve => fulfill = resolve);
259 InspectorFrontendHost.reattach(() => fulfill(new WebInspector.RawProtoco lConnection(dispatch, yeld)));
260 return result;
261 },
262
263 /**
238 * @param {!WebInspector.Target} target 264 * @param {!WebInspector.Target} target
239 * @return {!Array<!WebInspector.TargetManager.Observer>} 265 * @return {!Array<!WebInspector.TargetManager.Observer>}
240 */ 266 */
241 _observersForTarget: function(target) 267 _observersForTarget: function(target)
242 { 268 {
243 return this._observers.filter((observer) => target.hasAllCapabilities(ob server[this._observerCapabiliesMaskSymbol] || 0)); 269 return this._observers.filter((observer) => target.hasAllCapabilities(ob server[this._observerCapabiliesMaskSymbol] || 0));
244 }, 270 },
245 271
246 /** 272 /**
247 * @param {!WebInspector.Target} target 273 * @param {!WebInspector.Target} target
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 { 307 {
282 return resourceTreeModel.addEventListener(sourceEvent, this._redispa tchEvent.bind(this, targetEvent)); 308 return resourceTreeModel.addEventListener(sourceEvent, this._redispa tchEvent.bind(this, targetEvent));
283 } 309 }
284 }, 310 },
285 311
286 /** 312 /**
287 * @param {!WebInspector.Target} target 313 * @param {!WebInspector.Target} target
288 */ 314 */
289 removeTarget: function(target) 315 removeTarget: function(target)
290 { 316 {
317 if (!this._targets.includes(target))
dgozman 2016/10/15 00:26:26 Let's try to only remove main.
318 return;
291 this._targets.remove(target); 319 this._targets.remove(target);
292 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target ); 320 var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target );
293 var treeModelListeners = resourceTreeModel && resourceTreeModel[WebInspe ctor.TargetManager._listenersSymbol]; 321 var treeModelListeners = resourceTreeModel && resourceTreeModel[WebInspe ctor.TargetManager._listenersSymbol];
294 if (treeModelListeners) 322 if (treeModelListeners)
295 WebInspector.EventTarget.removeEventListeners(treeModelListeners); 323 WebInspector.EventTarget.removeEventListeners(treeModelListeners);
296 324
297 var copy = this._observersForTarget(target); 325 var copy = this._observersForTarget(target);
298 for (var i = 0; i < copy.length; ++i) 326 for (var i = 0; i < copy.length; ++i)
299 copy[i].targetRemoved(target); 327 copy[i].targetRemoved(target);
300 328
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 /** 417 /**
390 * @param {!WebInspector.Target} target 418 * @param {!WebInspector.Target} target
391 */ 419 */
392 targetRemoved: function(target) { }, 420 targetRemoved: function(target) { },
393 } 421 }
394 422
395 /** 423 /**
396 * @type {!WebInspector.TargetManager} 424 * @type {!WebInspector.TargetManager}
397 */ 425 */
398 WebInspector.targetManager = new WebInspector.TargetManager(); 426 WebInspector.targetManager = new WebInspector.TargetManager();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698