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

Unified Diff: Source/core/inspector/InspectorWorkerAgent.cpp

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/core/inspector/InspectorWorkerAgent.cpp
diff --git a/Source/core/inspector/InspectorWorkerAgent.cpp b/Source/core/inspector/InspectorWorkerAgent.cpp
index 85cd12953b225274b9800d803561f09cb70e764b..ec5b4a34da4acd604bf59ed3b50ba839253b19ac 100644
--- a/Source/core/inspector/InspectorWorkerAgent.cpp
+++ b/Source/core/inspector/InspectorWorkerAgent.cpp
@@ -53,10 +53,10 @@ static const char autoconnectToWorkers[] = "autoconnectToWorkers";
class InspectorWorkerAgent::WorkerFrontendChannel final : public WorkerInspectorProxy::PageInspector {
WTF_MAKE_FAST_ALLOCATED;
public:
- explicit WorkerFrontendChannel(InspectorFrontend::Worker* frontend, WorkerInspectorProxy* proxy)
+ WorkerFrontendChannel(InspectorFrontend::Worker* frontend, WorkerInspectorProxy* proxy, int id)
: m_frontend(frontend)
, m_proxy(proxy)
- , m_id(s_nextId++)
+ , m_id(id)
, m_connected(false)
{
ASSERT(!proxy->pageInspector());
@@ -102,11 +102,8 @@ private:
WorkerInspectorProxy* m_proxy;
int m_id;
bool m_connected;
- static int s_nextId;
};
-int InspectorWorkerAgent::WorkerFrontendChannel::s_nextId = 1;
-
PassOwnPtrWillBeRawPtr<InspectorWorkerAgent> InspectorWorkerAgent::create()
{
return adoptPtrWillBeNoop(new InspectorWorkerAgent());
@@ -115,6 +112,7 @@ PassOwnPtrWillBeRawPtr<InspectorWorkerAgent> InspectorWorkerAgent::create()
InspectorWorkerAgent::InspectorWorkerAgent()
: InspectorBaseAgent<InspectorWorkerAgent>("Worker")
, m_frontend(0)
+ , m_nextId(1)
{
}
@@ -206,8 +204,8 @@ void InspectorWorkerAgent::setTracingSessionId(const String& sessionId)
m_tracingSessionId = sessionId;
if (sessionId.isEmpty())
return;
- for (WorkerIds::iterator it = m_workerIds.begin(); it != m_workerIds.end(); ++it)
- it->key->writeTimelineStartedEvent(sessionId);
+ for (WorkerInfos::iterator it = m_workerInfos.begin(); it != m_workerInfos.end(); ++it)
+ it->key->writeTimelineStartedEvent(sessionId, it->value.id);
}
bool InspectorWorkerAgent::shouldPauseDedicatedWorkerOnStart()
@@ -217,16 +215,17 @@ bool InspectorWorkerAgent::shouldPauseDedicatedWorkerOnStart()
void InspectorWorkerAgent::didStartWorker(WorkerInspectorProxy* workerInspectorProxy, const KURL& url)
{
- m_workerIds.set(workerInspectorProxy, url.string());
+ int id = m_nextId++;
+ m_workerInfos.set(workerInspectorProxy, WorkerInfo(url.string(), id));
if (m_frontend && m_state->getBoolean(WorkerAgentState::workerInspectionEnabled))
- createWorkerFrontendChannel(workerInspectorProxy, url.string());
+ createWorkerFrontendChannel(workerInspectorProxy, url.string(), id);
if (!m_tracingSessionId.isEmpty())
- workerInspectorProxy->writeTimelineStartedEvent(m_tracingSessionId);
+ workerInspectorProxy->writeTimelineStartedEvent(m_tracingSessionId, id);
}
void InspectorWorkerAgent::workerTerminated(WorkerInspectorProxy* proxy)
{
- m_workerIds.remove(proxy);
+ m_workerInfos.remove(proxy);
for (WorkerChannels::iterator it = m_idToChannel.begin(); it != m_idToChannel.end(); ++it) {
if (proxy == it->value->proxy()) {
m_frontend->workerTerminated(it->key);
@@ -239,8 +238,8 @@ void InspectorWorkerAgent::workerTerminated(WorkerInspectorProxy* proxy)
void InspectorWorkerAgent::createWorkerFrontendChannelsForExistingWorkers()
{
- for (WorkerIds::iterator it = m_workerIds.begin(); it != m_workerIds.end(); ++it)
- createWorkerFrontendChannel(it->key, it->value);
+ for (WorkerInfos::iterator it = m_workerInfos.begin(); it != m_workerInfos.end(); ++it)
+ createWorkerFrontendChannel(it->key, it->value.url, it->value.id);
}
void InspectorWorkerAgent::destroyWorkerFrontendChannels()
@@ -252,16 +251,16 @@ void InspectorWorkerAgent::destroyWorkerFrontendChannels()
m_idToChannel.clear();
}
-void InspectorWorkerAgent::createWorkerFrontendChannel(WorkerInspectorProxy* workerInspectorProxy, const String& url)
+void InspectorWorkerAgent::createWorkerFrontendChannel(WorkerInspectorProxy* workerInspectorProxy, const String& url, int id)
{
- WorkerFrontendChannel* channel = new WorkerFrontendChannel(m_frontend, workerInspectorProxy);
- m_idToChannel.set(channel->id(), channel);
+ WorkerFrontendChannel* channel = new WorkerFrontendChannel(m_frontend, workerInspectorProxy, id);
+ m_idToChannel.set(id, channel);
ASSERT(m_frontend);
bool autoconnectToWorkers = m_state->getBoolean(WorkerAgentState::autoconnectToWorkers);
if (autoconnectToWorkers)
channel->connectToWorker();
- m_frontend->workerCreated(channel->id(), url, autoconnectToWorkers);
+ m_frontend->workerCreated(id, url, autoconnectToWorkers);
}
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698