| Index: Source/core/workers/WorkerMessagingProxy.cpp
|
| diff --git a/Source/core/workers/WorkerMessagingProxy.cpp b/Source/core/workers/WorkerMessagingProxy.cpp
|
| index 6d4598bd32d1ad6af536ddd5eaf5c5ed07f28877..8973e914994f2874b8e96870ddb4c97ba7005308 100644
|
| --- a/Source/core/workers/WorkerMessagingProxy.cpp
|
| +++ b/Source/core/workers/WorkerMessagingProxy.cpp
|
| @@ -42,13 +42,18 @@
|
| #include "core/inspector/WorkerDebuggerAgent.h"
|
| #include "core/loader/DocumentLoadTiming.h"
|
| #include "core/loader/DocumentLoader.h"
|
| +#include "core/page/Chrome.h"
|
| +#include "core/page/ChromeClient.h"
|
| +#include "core/page/Page.h"
|
| #include "core/workers/DedicatedWorkerGlobalScope.h"
|
| #include "core/workers/DedicatedWorkerThread.h"
|
| +#include "core/workers/UIWorkerThread.h"
|
| #include "core/workers/Worker.h"
|
| #include "core/workers/WorkerClients.h"
|
| #include "core/workers/WorkerInspectorProxy.h"
|
| #include "core/workers/WorkerObjectProxy.h"
|
| #include "core/workers/WorkerThreadStartupData.h"
|
| +#include "platform/TraceEvent.h"
|
| #include "platform/heap/Handle.h"
|
| #include "wtf/Functional.h"
|
| #include "wtf/MainThread.h"
|
| @@ -108,6 +113,7 @@ WorkerMessagingProxy::~WorkerMessagingProxy()
|
|
|
| void WorkerMessagingProxy::startWorkerGlobalScope(const KURL& scriptURL, const String& userAgent, const String& sourceCode, WorkerThreadStartMode startMode)
|
| {
|
| + TRACE_EVENT0("teleport", "WorkerMessagingProxy::startWorkerGlobalScope");
|
| // FIXME: This need to be revisited when we support nested worker one day
|
| ASSERT(m_executionContext->isDocument());
|
| if (m_askedToTerminate) {
|
| @@ -118,9 +124,15 @@ void WorkerMessagingProxy::startWorkerGlobalScope(const KURL& scriptURL, const S
|
| SecurityOrigin* starterOrigin = document->securityOrigin();
|
|
|
| OwnPtrWillBeRawPtr<WorkerThreadStartupData> startupData = WorkerThreadStartupData::create(scriptURL, userAgent, sourceCode, startMode, document->contentSecurityPolicy()->deprecatedHeader(), document->contentSecurityPolicy()->deprecatedHeaderType(), starterOrigin, m_workerClients.release());
|
| + startupData->m_compositorId = document->page()->chrome().client().compositorId();
|
| double originTime = document->loader() ? document->loader()->timing()->referenceMonotonicTime() : monotonicallyIncreasingTime();
|
|
|
| - RefPtr<DedicatedWorkerThread> thread = DedicatedWorkerThread::create(*this, *m_workerObjectProxy.get(), originTime, startupData.release());
|
| + RefPtr<DedicatedWorkerThread> thread;
|
| + if (m_workerObject->isUIWorker())
|
| + thread = UIWorkerThread::create(*this, *m_workerObjectProxy.get(), originTime, startupData.release());
|
| + else
|
| + thread = DedicatedWorkerThread::create(*this, *m_workerObjectProxy.get(), originTime, startupData.release());
|
| +
|
| thread->start();
|
| workerThreadCreated(thread);
|
| m_workerInspectorProxy->workerThreadCreated(m_executionContext.get(), m_workerThread.get(), scriptURL);
|
|
|