| 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
|
|
|