OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 | 5 |
6 /** | 6 /** |
7 * @constructor | 7 * @constructor |
8 * @param {!WebInspector.Target} mainTarget | 8 * @param {!WebInspector.Target} mainTarget |
9 * @param {!WebInspector.TargetManager} targetManager | 9 * @param {!WebInspector.TargetManager} targetManager |
10 */ | 10 */ |
11 WebInspector.WorkerTargetManager = function(mainTarget, targetManager) | 11 WebInspector.WorkerTargetManager = function(mainTarget, targetManager) |
12 { | 12 { |
13 this._mainTarget = mainTarget; | 13 this._mainTarget = mainTarget; |
14 this._targetManager = targetManager; | 14 this._targetManager = targetManager; |
15 mainTarget.workerManager.addEventListener(WebInspector.WorkerManager.Events.
WorkerAdded, this._onWorkerAdded, this); | 15 mainTarget.workerManager.addEventListener(WebInspector.WorkerManager.Events.
WorkerAdded, this._onWorkerAdded, this); |
| 16 mainTarget.workerManager.addEventListener(WebInspector.WorkerManager.Events.
WorkersCleared, this._onWorkersCleared, this); |
16 WebInspector.profilingLock().addEventListener(WebInspector.Lock.Events.State
Changed, this._onProfilingStateChanged, this); | 17 WebInspector.profilingLock().addEventListener(WebInspector.Lock.Events.State
Changed, this._onProfilingStateChanged, this); |
17 this._onProfilingStateChanged(); | 18 this._onProfilingStateChanged(); |
| 19 this._lastAnonymousTargetId = 0; |
18 } | 20 } |
19 | 21 |
20 WebInspector.WorkerTargetManager.prototype = { | 22 WebInspector.WorkerTargetManager.prototype = { |
21 _onProfilingStateChanged: function() | 23 _onProfilingStateChanged: function() |
22 { | 24 { |
23 var acquired = WebInspector.profilingLock().isAcquired(); | 25 var acquired = WebInspector.profilingLock().isAcquired(); |
24 this._mainTarget.workerAgent().setAutoconnectToWorkers(!acquired); | 26 this._mainTarget.workerAgent().setAutoconnectToWorkers(!acquired); |
25 }, | 27 }, |
26 | 28 |
27 /** | 29 /** |
28 * @param {!WebInspector.Event} event | 30 * @param {!WebInspector.Event} event |
29 */ | 31 */ |
30 _onWorkerAdded: function(event) | 32 _onWorkerAdded: function(event) |
31 { | 33 { |
32 var data = /** @type {{workerId: number, url: string, inspectorConnected
: boolean}} */ (event.data); | 34 var data = /** @type {{workerId: number, url: string, inspectorConnected
: boolean}} */ (event.data); |
33 new WebInspector.WorkerConnection(this._mainTarget, data.workerId, data.
inspectorConnected, onConnectionReady.bind(this)); | 35 new WebInspector.WorkerConnection(this._mainTarget, data.workerId, data.
inspectorConnected, onConnectionReady.bind(this)); |
34 | 36 |
35 /** | 37 /** |
36 * @this {WebInspector.WorkerTargetManager} | 38 * @this {WebInspector.WorkerTargetManager} |
37 * @param {!InspectorBackendClass.Connection} connection | 39 * @param {!InspectorBackendClass.Connection} connection |
38 */ | 40 */ |
39 function onConnectionReady(connection) | 41 function onConnectionReady(connection) |
40 { | 42 { |
41 this._targetManager.createTarget(WebInspector.UIString("Worker %s",
data.url.asParsedURL().lastPathComponent), connection, targetCreated) | 43 var parsedURL = data.url.asParsedURL(); |
| 44 var workerId = parsedURL ? parsedURL.lastPathComponent : "#" + (++th
is._lastAnonymousTargetId); |
| 45 this._targetManager.createTarget(WebInspector.UIString("Worker %s",
workerId), connection, targetCreated); |
42 } | 46 } |
43 | 47 |
44 /** | 48 /** |
45 * @param {!WebInspector.Target} target | 49 * @param {!WebInspector.Target} target |
46 */ | 50 */ |
47 function targetCreated(target) | 51 function targetCreated(target) |
48 { | 52 { |
49 if (data.inspectorConnected) | 53 if (data.inspectorConnected) |
50 target.runtimeAgent().run(); | 54 target.runtimeAgent().run(); |
51 } | 55 } |
| 56 }, |
| 57 |
| 58 _onWorkersCleared: function() |
| 59 { |
| 60 this._lastAnonymousTargetId = 0; |
52 } | 61 } |
53 } | 62 } |
54 | 63 |
55 /** | 64 /** |
56 * @constructor | 65 * @constructor |
57 * @extends {InspectorBackendClass.Connection} | 66 * @extends {InspectorBackendClass.Connection} |
58 * @param {!WebInspector.Target} target | 67 * @param {!WebInspector.Target} target |
59 * @param {number} workerId | 68 * @param {number} workerId |
60 * @param {boolean} inspectorConnected | 69 * @param {boolean} inspectorConnected |
61 * @param {!function(!InspectorBackendClass.Connection)} onConnectionReady | 70 * @param {!function(!InspectorBackendClass.Connection)} onConnectionReady |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 _close: function() | 119 _close: function() |
111 { | 120 { |
112 this._target.workerManager.removeEventListener(WebInspector.WorkerManage
r.Events.MessageFromWorker, this._dispatchMessageFromWorker, this); | 121 this._target.workerManager.removeEventListener(WebInspector.WorkerManage
r.Events.MessageFromWorker, this._dispatchMessageFromWorker, this); |
113 this._target.workerManager.removeEventListener(WebInspector.WorkerManage
r.Events.WorkerRemoved, this._onWorkerRemoved, this); | 122 this._target.workerManager.removeEventListener(WebInspector.WorkerManage
r.Events.WorkerRemoved, this._onWorkerRemoved, this); |
114 this._target.workerManager.removeEventListener(WebInspector.WorkerManage
r.Events.WorkersCleared, this._close, this); | 123 this._target.workerManager.removeEventListener(WebInspector.WorkerManage
r.Events.WorkersCleared, this._close, this); |
115 this.connectionClosed("worker_terminated"); | 124 this.connectionClosed("worker_terminated"); |
116 }, | 125 }, |
117 | 126 |
118 __proto__: InspectorBackendClass.Connection.prototype | 127 __proto__: InspectorBackendClass.Connection.prototype |
119 } | 128 } |
OLD | NEW |