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

Unified Diff: Source/devtools/front_end/sdk/WorkerTargetManager.js

Issue 724013003: DevTools: Connect worker cpu profiles to worker tracing threads. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Addressing comments. Created 6 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 side-by-side diff with in-line comments
Download patch
Index: Source/devtools/front_end/sdk/WorkerTargetManager.js
diff --git a/Source/devtools/front_end/sdk/WorkerTargetManager.js b/Source/devtools/front_end/sdk/WorkerTargetManager.js
index 9215cb608709d194b33868790b87dea6b912a008..c2f6a0b3cfb96d78154cd172e4c97c3a77494552 100644
--- a/Source/devtools/front_end/sdk/WorkerTargetManager.js
+++ b/Source/devtools/front_end/sdk/WorkerTargetManager.js
@@ -12,7 +12,9 @@ WebInspector.WorkerTargetManager = function(mainTarget, targetManager)
{
this._mainTarget = mainTarget;
this._targetManager = targetManager;
+ this._targetsByWorkerId = new Map();
mainTarget.workerManager.addEventListener(WebInspector.WorkerManager.Events.WorkerAdded, this._onWorkerAdded, this);
yurys 2014/11/17 12:51:36 Please make sure there is 1-1 relationship between
alph 2014/11/17 13:36:12 Acknowledged.
+ mainTarget.workerManager.addEventListener(WebInspector.WorkerManager.Events.WorkerRemoved, this._onWorkerRemoved, this);
mainTarget.workerManager.addEventListener(WebInspector.WorkerManager.Events.WorkersCleared, this._onWorkersCleared, this);
WebInspector.targetManager.addEventListener(WebInspector.TargetManager.Events.SuspendStateChanged, this._onSuspendStateChanged, this);
this._onSuspendStateChanged();
@@ -35,27 +37,31 @@ WebInspector.WorkerTargetManager.prototype = {
_onWorkerAdded: function(event)
{
var data = /** @type {{workerId: number, url: string, inspectorConnected: boolean}} */ (event.data);
- new WebInspector.WorkerConnection(this._mainTarget, data.workerId, data.inspectorConnected, onConnectionReady.bind(this));
+ new WebInspector.WorkerConnection(this._mainTarget, data.workerId, data.inspectorConnected, onConnectionReady.bind(this, data.workerId));
/**
* @this {WebInspector.WorkerTargetManager}
+ * @param {number} workerId
* @param {!InspectorBackendClass.Connection} connection
*/
- function onConnectionReady(connection)
+ function onConnectionReady(workerId, connection)
{
var parsedURL = data.url.asParsedURL();
- var workerId = parsedURL ? parsedURL.lastPathComponent : "#" + (++this._lastAnonymousTargetId);
- this._targetManager.createTarget(WebInspector.UIString("Worker %s", workerId), connection, targetCreated.bind(this));
+ var workerName = parsedURL ? parsedURL.lastPathComponent : "#" + (++this._lastAnonymousTargetId);
+ this._targetManager.createTarget(WebInspector.UIString("Worker %s", workerName), connection, targetCreated.bind(this, workerId));
}
/**
* @this {WebInspector.WorkerTargetManager}
+ * @param {number} workerId
* @param {?WebInspector.Target} target
*/
- function targetCreated(target)
+ function targetCreated(workerId, target)
{
if (!target)
return;
+ if (workerId)
+ this._targetsByWorkerId.set(workerId, target);
if (data.inspectorConnected) {
if (this._shouldPauseWorkerOnStart)
target.debuggerAgent().pause();
@@ -105,6 +111,25 @@ WebInspector.WorkerTargetManager.prototype = {
_onWorkersCleared: function()
{
this._lastAnonymousTargetId = 0;
+ this._targetsByWorkerId.clear();
+ },
+
+ /**
+ * @param {!WebInspector.Event} event
+ */
+ _onWorkerRemoved: function(event)
+ {
+ var workerId = /** @type {number} */ (event.data);
+ this._targetsByWorkerId.delete(workerId);
+ },
+
+ /**
+ * @param {number} workerId
+ * @return {?WebInspector.Target}
+ */
+ targetByWorkerId: function(workerId)
+ {
+ return this._targetsByWorkerId.get(workerId) || null;
}
}
@@ -173,3 +198,8 @@ WebInspector.WorkerConnection.prototype = {
__proto__: InspectorBackendClass.Connection.prototype
}
+
+/**
+ * @type {?WebInspector.WorkerTargetManager}
+ */
+WebInspector.workerTargetManager;

Powered by Google App Engine
This is Rietveld 408576698