| Index: Source/core/workers/WorkerGlobalScope.cpp
|
| diff --git a/Source/core/workers/WorkerGlobalScope.cpp b/Source/core/workers/WorkerGlobalScope.cpp
|
| index 62529dfb043ba36301adffc8ef54fa7e93ef0fda..216deba3e7b2e6311255ce920084b1770533242b 100644
|
| --- a/Source/core/workers/WorkerGlobalScope.cpp
|
| +++ b/Source/core/workers/WorkerGlobalScope.cpp
|
| @@ -82,7 +82,7 @@ WorkerGlobalScope::WorkerGlobalScope(const KURL& url, const String& userAgent, W
|
| , m_userAgent(userAgent)
|
| , m_script(adoptPtr(new WorkerScriptController(*this)))
|
| , m_thread(thread)
|
| - , m_workerInspectorController(adoptPtr(new WorkerInspectorController(this)))
|
| + , m_workerInspectorController(adoptRefWillBeNoop(new WorkerInspectorController(this)))
|
| , m_closing(false)
|
| , m_eventQueue(WorkerEventQueue::create(this))
|
| , m_workerClients(workerClients)
|
| @@ -93,6 +93,7 @@ WorkerGlobalScope::WorkerGlobalScope(const KURL& url, const String& userAgent, W
|
| setClient(this);
|
| setSecurityOrigin(SecurityOrigin::create(url));
|
| m_workerClients->reattachThread();
|
| + m_thread->setWorkerInspectorController(m_workerInspectorController.get());
|
| }
|
|
|
| WorkerGlobalScope::~WorkerGlobalScope()
|
| @@ -183,8 +184,13 @@ void WorkerGlobalScope::postTask(PassOwnPtr<ExecutionContextTask> task)
|
| thread()->postTask(task);
|
| }
|
|
|
| +// FIXME: Called twice, from WorkerThreadShutdownFinishTask and WorkerGlobalScope::dispose.
|
| void WorkerGlobalScope::clearInspector()
|
| {
|
| + if (!m_workerInspectorController)
|
| + return;
|
| + thread()->setWorkerInspectorController(nullptr);
|
| + m_workerInspectorController->dispose();
|
| m_workerInspectorController.clear();
|
| }
|
|
|
| @@ -339,6 +345,7 @@ void WorkerGlobalScope::trace(Visitor* visitor)
|
| visitor->trace(m_console);
|
| visitor->trace(m_location);
|
| visitor->trace(m_navigator);
|
| + visitor->trace(m_workerInspectorController);
|
| visitor->trace(m_eventQueue);
|
| visitor->trace(m_workerClients);
|
| WillBeHeapSupplementable<WorkerGlobalScope>::trace(visitor);
|
|
|