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.
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"
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();