Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / Source / modules / compositorworker / CompositorWorkerThread.cpp
blobfa420027933081e3485cf6dce85ce7dc3144510f
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "config.h"
6 #include "modules/compositorworker/CompositorWorkerThread.h"
8 #include "bindings/core/v8/V8Initializer.h"
9 #include "core/workers/WorkerObjectProxy.h"
10 #include "core/workers/WorkerThreadStartupData.h"
11 #include "modules/compositorworker/CompositorWorkerGlobalScope.h"
12 #include "modules/compositorworker/CompositorWorkerManager.h"
13 #include "public/platform/Platform.h"
15 namespace blink {
17 PassRefPtr<CompositorWorkerThread> CompositorWorkerThread::create(PassRefPtr<WorkerLoaderProxy> workerLoaderProxy, WorkerObjectProxy& workerObjectProxy, double timeOrigin)
19 ASSERT(isMainThread());
20 return adoptRef(new CompositorWorkerThread(workerLoaderProxy, workerObjectProxy, timeOrigin));
23 CompositorWorkerThread::CompositorWorkerThread(PassRefPtr<WorkerLoaderProxy> workerLoaderProxy, WorkerObjectProxy& workerObjectProxy, double timeOrigin)
24 : WorkerThread(workerLoaderProxy, workerObjectProxy)
25 , m_workerObjectProxy(workerObjectProxy)
26 , m_timeOrigin(timeOrigin)
30 CompositorWorkerThread::~CompositorWorkerThread()
34 PassRefPtrWillBeRawPtr<WorkerGlobalScope> CompositorWorkerThread::createWorkerGlobalScope(PassOwnPtr<WorkerThreadStartupData> startupData)
36 return CompositorWorkerGlobalScope::create(this, startupData, m_timeOrigin);
39 WebThreadSupportingGC& CompositorWorkerThread::backingThread()
41 return CompositorWorkerManager::instance()->compositorWorkerThread();
44 void CompositorWorkerThread::initializeBackingThread()
46 CompositorWorkerManager::instance()->initializeBackingThread();
49 void CompositorWorkerThread::shutdownBackingThread()
51 CompositorWorkerManager::instance()->shutdownBackingThread();
54 v8::Isolate* CompositorWorkerThread::initializeIsolate()
56 return CompositorWorkerManager::instance()->initializeIsolate();
59 void CompositorWorkerThread::willDestroyIsolate()
61 CompositorWorkerManager::instance()->willDestroyIsolate();
64 void CompositorWorkerThread::destroyIsolate()
66 CompositorWorkerManager::instance()->destroyIsolate();
69 void CompositorWorkerThread::terminateV8Execution()
71 CompositorWorkerManager::instance()->terminateV8Execution();
74 } // namespace blink