| Index: Source/core/workers/WorkerMessagingProxy.cpp
|
| diff --git a/Source/core/workers/WorkerMessagingProxy.cpp b/Source/core/workers/WorkerMessagingProxy.cpp
|
| index d6352bcac522d9e0f59d1b7582d3954e54fb34aa..8935d1144f997f59df403a62bd573fbf15dcd266 100644
|
| --- a/Source/core/workers/WorkerMessagingProxy.cpp
|
| +++ b/Source/core/workers/WorkerMessagingProxy.cpp
|
| @@ -106,6 +106,8 @@ WorkerMessagingProxy::~WorkerMessagingProxy()
|
| ASSERT(!m_workerObject);
|
| ASSERT((m_executionContext->isDocument() && isMainThread())
|
| || (m_executionContext->isWorkerGlobalScope() && toWorkerGlobalScope(m_executionContext.get())->thread()->isCurrentThread()));
|
| + if (m_loaderProxy)
|
| + m_loaderProxy->detachProvider(this);
|
| }
|
|
|
| void WorkerMessagingProxy::startWorkerGlobalScope(const KURL& scriptURL, const String& userAgent, const String& sourceCode, WorkerThreadStartMode startMode)
|
| @@ -122,7 +124,8 @@ void WorkerMessagingProxy::startWorkerGlobalScope(const KURL& scriptURL, const S
|
| OwnPtrWillBeRawPtr<WorkerThreadStartupData> startupData = WorkerThreadStartupData::create(scriptURL, userAgent, sourceCode, startMode, document->contentSecurityPolicy()->deprecatedHeader(), document->contentSecurityPolicy()->deprecatedHeaderType(), starterOrigin, m_workerClients.release());
|
| double originTime = document->loader() ? document->loader()->timing()->referenceMonotonicTime() : monotonicallyIncreasingTime();
|
|
|
| - RefPtr<DedicatedWorkerThread> thread = DedicatedWorkerThread::create(*this, *m_workerObjectProxy.get(), originTime, startupData.release());
|
| + m_loaderProxy = WorkerLoaderProxy::create(this);
|
| + RefPtr<DedicatedWorkerThread> thread = DedicatedWorkerThread::create(m_loaderProxy, *m_workerObjectProxy.get(), originTime, startupData.release());
|
| thread->start();
|
| workerThreadCreated(thread);
|
| m_workerInspectorProxy->workerThreadCreated(m_executionContext.get(), m_workerThread.get(), scriptURL);
|
|
|