Index: third_party/WebKit/Source/core/inspector/InspectorWorkerAgent.cpp |
diff --git a/third_party/WebKit/Source/core/inspector/InspectorWorkerAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorWorkerAgent.cpp |
index 3ab12a765d9af26e0808b98df49f8f86c6df218e..ce9fef90bc52d72463db51cc46d42e221af3741a 100644 |
--- a/third_party/WebKit/Source/core/inspector/InspectorWorkerAgent.cpp |
+++ b/third_party/WebKit/Source/core/inspector/InspectorWorkerAgent.cpp |
@@ -43,7 +43,7 @@ namespace blink { |
namespace WorkerAgentState { |
static const char workerInspectionEnabled[] = "workerInspectionEnabled"; |
-static const char autoconnectToWorkers[] = "autoconnectToWorkers"; |
+static const char waitForDebuggerOnStart[] = "waitForDebuggerOnStart"; |
}; |
PassOwnPtrWillBeRawPtr<InspectorWorkerAgent> InspectorWorkerAgent::create(InspectedFrames* inspectedFrames, PageConsoleAgent* consoleAgent) |
@@ -61,7 +61,7 @@ InspectorWorkerAgent::InspectorWorkerAgent(InspectedFrames* inspectedFrames, Pag |
InspectorWorkerAgent::~InspectorWorkerAgent() |
{ |
#if !ENABLE(OILPAN) |
- m_instrumentingAgents->setInspectorWorkerAgent(0); |
+ m_instrumentingAgents->setInspectorWorkerAgent(nullptr); |
#endif |
} |
@@ -87,28 +87,10 @@ void InspectorWorkerAgent::enable(ErrorString*) |
void InspectorWorkerAgent::disable(ErrorString*) |
{ |
m_state->setBoolean(WorkerAgentState::workerInspectionEnabled, false); |
- m_state->setBoolean(WorkerAgentState::autoconnectToWorkers, false); |
+ m_state->setBoolean(WorkerAgentState::waitForDebuggerOnStart, false); |
destroyWorkerAgentClients(); |
} |
-void InspectorWorkerAgent::connectToWorker(ErrorString* error, const String& workerId) |
-{ |
- WorkerAgentClient* client = m_idToClient.get(workerId); |
- if (client) |
- client->connectToWorker(); |
- else |
- *error = "Worker is gone"; |
-} |
- |
-void InspectorWorkerAgent::disconnectFromWorker(ErrorString* error, const String& workerId) |
-{ |
- WorkerAgentClient* client = m_idToClient.get(workerId); |
- if (client) |
- client->dispose(); |
- else |
- *error = "Worker is gone"; |
-} |
- |
void InspectorWorkerAgent::sendMessageToWorker(ErrorString* error, const String& workerId, const String& message) |
{ |
WorkerAgentClient* client = m_idToClient.get(workerId); |
@@ -118,9 +100,9 @@ void InspectorWorkerAgent::sendMessageToWorker(ErrorString* error, const String& |
*error = "Worker is gone"; |
} |
-void InspectorWorkerAgent::setAutoconnectToWorkers(ErrorString*, bool value) |
+void InspectorWorkerAgent::setWaitForDebuggerOnStart(ErrorString*, bool value) |
{ |
- m_state->setBoolean(WorkerAgentState::autoconnectToWorkers, value); |
+ m_state->setBoolean(WorkerAgentState::waitForDebuggerOnStart, value); |
} |
void InspectorWorkerAgent::setTracingSessionId(const String& sessionId) |
@@ -132,17 +114,17 @@ void InspectorWorkerAgent::setTracingSessionId(const String& sessionId) |
info.key->writeTimelineStartedEvent(sessionId, info.value.id); |
} |
-bool InspectorWorkerAgent::shouldPauseDedicatedWorkerOnStart() |
+bool InspectorWorkerAgent::shouldWaitForDebuggerOnWorkerStart() |
{ |
- return m_state->booleanProperty(WorkerAgentState::autoconnectToWorkers, false); |
+ return m_state->booleanProperty(WorkerAgentState::workerInspectionEnabled, false) && m_state->booleanProperty(WorkerAgentState::waitForDebuggerOnStart, false); |
} |
-void InspectorWorkerAgent::didStartWorker(WorkerInspectorProxy* workerInspectorProxy, const KURL& url) |
+void InspectorWorkerAgent::didStartWorker(WorkerInspectorProxy* workerInspectorProxy, const KURL& url, bool waitingForDebugger) |
{ |
String id = "dedicated:" + IdentifiersFactory::createIdentifier(); |
m_workerInfos.set(workerInspectorProxy, WorkerInfo(url.getString(), id)); |
if (frontend() && m_state->booleanProperty(WorkerAgentState::workerInspectionEnabled, false)) |
- createWorkerAgentClient(workerInspectorProxy, url.getString(), id); |
+ createWorkerAgentClient(workerInspectorProxy, url.getString(), id, waitingForDebugger); |
if (!m_tracingSessionId.isEmpty()) |
workerInspectorProxy->writeTimelineStartedEvent(m_tracingSessionId, id); |
} |
@@ -163,7 +145,7 @@ void InspectorWorkerAgent::workerTerminated(WorkerInspectorProxy* proxy) |
void InspectorWorkerAgent::createWorkerAgentClientsForExistingWorkers() |
{ |
for (auto& info : m_workerInfos) |
- createWorkerAgentClient(info.key, info.value.url, info.value.id); |
+ createWorkerAgentClient(info.key, info.value.url, info.value.id, false); |
} |
void InspectorWorkerAgent::destroyWorkerAgentClients() |
@@ -189,17 +171,15 @@ void InspectorWorkerAgent::didCommitLoadForLocalFrame(LocalFrame* frame) |
m_workerInfos.clear(); |
} |
-void InspectorWorkerAgent::createWorkerAgentClient(WorkerInspectorProxy* workerInspectorProxy, const String& url, const String& id) |
+void InspectorWorkerAgent::createWorkerAgentClient(WorkerInspectorProxy* workerInspectorProxy, const String& url, const String& id, bool waitingForDebugger) |
{ |
OwnPtrWillBeRawPtr<WorkerAgentClient> client = WorkerAgentClient::create(frontend(), workerInspectorProxy, id, m_consoleAgent); |
WorkerAgentClient* rawClient = client.get(); |
m_idToClient.set(id, client.release()); |
+ rawClient->connectToWorker(); |
ASSERT(frontend()); |
- bool autoconnectToWorkers = m_state->booleanProperty(WorkerAgentState::autoconnectToWorkers, false); |
- if (autoconnectToWorkers) |
- rawClient->connectToWorker(); |
- frontend()->workerCreated(id, url, autoconnectToWorkers); |
+ frontend()->workerCreated(id, url, waitingForDebugger); |
} |
DEFINE_TRACE(InspectorWorkerAgent) |
@@ -257,6 +237,7 @@ void InspectorWorkerAgent::WorkerAgentClient::dispatchMessageFromWorker(const St |
{ |
m_frontend->dispatchMessageFromWorker(m_id, message); |
} |
+ |
void InspectorWorkerAgent::WorkerAgentClient::workerConsoleAgentEnabled(WorkerGlobalScopeProxy* proxy) |
{ |
m_consoleAgent->workerConsoleAgentEnabled(proxy); |