Index: Source/core/workers/Worker.cpp |
diff --git a/Source/core/workers/Worker.cpp b/Source/core/workers/Worker.cpp |
index dd2f758658f9fe766b86417a8c51187623f223ac..b800eec54077973ea83cfde5637a5e03b4ee6c31 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) |
dstockwell
2014/08/29 01:05:44
RAF -> RequestAnimationFrame
nainar1
2014/08/29 06:01:40
Acknowledged.
|
+{ |
+ WorkerMessagingProxy* mp = static_cast<WorkerMessagingProxy*>(m_contextProxy); |
+ WorkerGlobalScope* hold = mp->extractWorkerGlobalScope(); |
+ if (hold) { |
+ mp->postTaskToWorkerGlobalScope(createCrossThreadTask(&WorkerGlobalScope::processRAF, AllowCrossThreadAccess(hold), monotonicAnimationStartTime)); |
+ } |
+} |
+ |
} // namespace blink |