| Index: Source/core/workers/Worker.cpp
|
| diff --git a/Source/core/workers/Worker.cpp b/Source/core/workers/Worker.cpp
|
| index dd2f758658f9fe766b86417a8c51187623f223ac..66670b2ec208a157a94250ac3b618b1035cac303 100644
|
| --- a/Source/core/workers/Worker.cpp
|
| +++ b/Source/core/workers/Worker.cpp
|
| @@ -29,12 +29,15 @@
|
| #include "core/workers/Worker.h"
|
|
|
| #include "bindings/core/v8/ExceptionState.h"
|
| +#include "core/dom/CrossThreadTask.h"
|
| #include "core/dom/Document.h"
|
| #include "core/events/MessageEvent.h"
|
| #include "core/fetch/ResourceFetcher.h"
|
| #include "core/inspector/InspectorInstrumentation.h"
|
| #include "core/frame/LocalDOMWindow.h"
|
| #include "core/frame/UseCounter.h"
|
| +#include "core/page/Page.h"
|
| +#include "core/workers/WorkerGlobalScope.h"
|
| #include "core/workers/WorkerGlobalScopeProxy.h"
|
| #include "core/workers/WorkerGlobalScopeProxyProvider.h"
|
| #include "core/workers/WorkerScriptLoader.h"
|
| @@ -73,9 +76,13 @@ PassRefPtrWillBeRawPtr<Worker> Worker::create(ExecutionContext* context, const S
|
| worker->m_scriptLoader = WorkerScriptLoader::create();
|
| worker->m_scriptLoader->loadAsynchronously(*context, scriptURL, DenyCrossOriginRequests, worker.get());
|
| worker->m_contextProxy = proxyProvider->createWorkerGlobalScopeProxy(worker.get());
|
| + worker->context = context;
|
| +
|
| +
|
| return worker.release();
|
| }
|
|
|
| +
|
| Worker::~Worker()
|
| {
|
| ASSERT(isMainThread());
|
| @@ -142,4 +149,13 @@ void Worker::trace(Visitor* visitor)
|
| AbstractWorker::trace(visitor);
|
| }
|
|
|
| +void Worker::processRAF(double monotonicAnimationStartTime)
|
| +{
|
| + WorkerMessagingProxy* mp = static_cast<WorkerMessagingProxy*>(m_contextProxy);
|
| + WorkerGlobalScope* hold = mp->passObject();
|
| + if (hold) {
|
| + mp->postTaskToWorkerGlobalScope(createCrossThreadTask(&WorkerGlobalScope::processRAF, AllowCrossThreadAccess(hold), monotonicAnimationStartTime));
|
| + }
|
| +}
|
| +
|
| } // namespace blink
|
|
|