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

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

Issue 307943002: Oilpan: Prepare moving InspectorController and InspectorAgents to oilpan. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Separated out all non InspectorAgent and InspectorController classes Created 6 years, 6 months 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/WorkerDebuggerAgent.cpp
diff --git a/Source/core/inspector/WorkerDebuggerAgent.cpp b/Source/core/inspector/WorkerDebuggerAgent.cpp
index 52d2b4d4f5c01e4badba956ba1125f152e94843d..adcacce4c06c65d6b851dc5e50c311d0f2d1e51c 100644
--- a/Source/core/inspector/WorkerDebuggerAgent.cpp
+++ b/Source/core/inspector/WorkerDebuggerAgent.cpp
@@ -46,7 +46,11 @@ Mutex& workerDebuggerAgentsMutex()
return mutex;
}
+#if ENABLE(OILPAN)
+typedef HashMap<WorkerThread*, OwnPtr<CrossThreadPersistent<WorkerDebuggerAgent> > > WorkerDebuggerAgents;
+#else
typedef HashMap<WorkerThread*, WorkerDebuggerAgent*> WorkerDebuggerAgents;
+#endif
WorkerDebuggerAgents& workerDebuggerAgents()
{
@@ -54,7 +58,6 @@ WorkerDebuggerAgents& workerDebuggerAgents()
return agents;
}
-
class RunInspectorCommandsTask FINAL : public ScriptDebugServer::Task {
public:
explicit RunInspectorCommandsTask(WorkerThread* thread)
@@ -73,35 +76,57 @@ private:
} // namespace
-PassOwnPtr<WorkerDebuggerAgent> WorkerDebuggerAgent::create(WorkerScriptDebugServer* scriptDebugServer, WorkerGlobalScope* inspectedWorkerGlobalScope, InjectedScriptManager* injectedScriptManager)
+PassOwnPtrWillBeRawPtr<WorkerDebuggerAgent> WorkerDebuggerAgent::create(WorkerScriptDebugServer* scriptDebugServer, WorkerGlobalScope* inspectedWorkerGlobalScope, InjectedScriptManager* injectedScriptManager)
{
- return adoptPtr(new WorkerDebuggerAgent(scriptDebugServer, inspectedWorkerGlobalScope, injectedScriptManager));
+ return adoptPtrWillBeNoop(new WorkerDebuggerAgent(scriptDebugServer, inspectedWorkerGlobalScope, injectedScriptManager));
}
WorkerDebuggerAgent::WorkerDebuggerAgent(WorkerScriptDebugServer* scriptDebugServer, WorkerGlobalScope* inspectedWorkerGlobalScope, InjectedScriptManager* injectedScriptManager)
: InspectorDebuggerAgent(injectedScriptManager)
, m_scriptDebugServer(scriptDebugServer)
, m_inspectedWorkerGlobalScope(inspectedWorkerGlobalScope)
+ , m_thread(inspectedWorkerGlobalScope->thread())
{
MutexLocker lock(workerDebuggerAgentsMutex());
- workerDebuggerAgents().set(inspectedWorkerGlobalScope->thread(), this);
+#if ENABLE(OILPAN)
+ workerDebuggerAgents().set(m_thread, adoptPtr(new CrossThreadPersistent<WorkerDebuggerAgent>(this)));
+#else
+ workerDebuggerAgents().set(m_thread, this);
+#endif
}
WorkerDebuggerAgent::~WorkerDebuggerAgent()
{
- MutexLocker lock(workerDebuggerAgentsMutex());
- ASSERT(workerDebuggerAgents().contains(m_inspectedWorkerGlobalScope->thread()));
- workerDebuggerAgents().remove(m_inspectedWorkerGlobalScope->thread());
+}
+
+void WorkerDebuggerAgent::trace(Visitor* visitor)
+{
+ visitor->trace(m_inspectedWorkerGlobalScope);
+ InspectorDebuggerAgent::trace(visitor);
}
void WorkerDebuggerAgent::interruptAndDispatchInspectorCommands(WorkerThread* thread)
{
MutexLocker lock(workerDebuggerAgentsMutex());
+#if ENABLE(OILPAN)
+ CrossThreadPersistent<WorkerDebuggerAgent>* agentHandle = workerDebuggerAgents().get(thread);
+ if (!agentHandle)
+ return;
+ WorkerDebuggerAgent* agent = agentHandle->get();
+#else
WorkerDebuggerAgent* agent = workerDebuggerAgents().get(thread);
+#endif
if (agent)
agent->m_scriptDebugServer->interruptAndRunTask(adoptPtr(new RunInspectorCommandsTask(thread)));
}
+void WorkerDebuggerAgent::discard()
+{
+ MutexLocker lock(workerDebuggerAgentsMutex());
+ ASSERT(workerDebuggerAgents().contains(m_thread));
+ workerDebuggerAgents().remove(m_thread);
+}
+
void WorkerDebuggerAgent::startListeningScriptDebugServer()
{
scriptDebugServer().addListener(this);

Powered by Google App Engine
This is Rietveld 408576698