| Index: Source/modules/compositorworker/CompositorWorker.cpp
|
| diff --git a/Source/modules/compositorworker/CompositorWorker.cpp b/Source/modules/compositorworker/CompositorWorker.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..be7d5b2e277ee1814ac71c777c8a87df04ab0586
|
| --- /dev/null
|
| +++ b/Source/modules/compositorworker/CompositorWorker.cpp
|
| @@ -0,0 +1,54 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "config.h"
|
| +#include "modules/compositorworker/CompositorWorker.h"
|
| +
|
| +#include "bindings/core/v8/ExceptionState.h"
|
| +#include "core/dom/Document.h"
|
| +#include "core/dom/ExceptionCode.h"
|
| +#include "core/workers/WorkerClients.h"
|
| +#include "modules/EventTargetModules.h"
|
| +#include "modules/compositorworker/CompositorWorkerMessagingProxy.h"
|
| +#include "wtf/MainThread.h"
|
| +
|
| +namespace blink {
|
| +
|
| +inline CompositorWorker::CompositorWorker(ExecutionContext* context)
|
| + : Worker(context)
|
| +{
|
| +}
|
| +
|
| +PassRefPtrWillBeRawPtr<CompositorWorker> CompositorWorker::create(ExecutionContext* context, const String& url, ExceptionState& exceptionState)
|
| +{
|
| + ASSERT(isMainThread());
|
| + Document* document = toDocument(context);
|
| + if (!document->page()) {
|
| + exceptionState.throwDOMException(InvalidAccessError, "The context provided is invalid.");
|
| + return nullptr;
|
| + }
|
| + RefPtrWillBeRawPtr<CompositorWorker> worker = adoptRefWillBeNoop(new CompositorWorker(context));
|
| + if (worker->initialize(context, url, exceptionState))
|
| + return worker.release();
|
| + return nullptr;
|
| +}
|
| +
|
| +CompositorWorker::~CompositorWorker()
|
| +{
|
| + ASSERT(isMainThread());
|
| +}
|
| +
|
| +const AtomicString& CompositorWorker::interfaceName() const
|
| +{
|
| + return EventTargetNames::CompositorWorker;
|
| +}
|
| +
|
| +WorkerGlobalScopeProxy* CompositorWorker::createWorkerGlobalScopeProxy(ExecutionContext* worker)
|
| +{
|
| + ASSERT(executionContext()->isDocument());
|
| + OwnPtrWillBeRawPtr<WorkerClients> workerClients = WorkerClients::create();
|
| + return new CompositorWorkerMessagingProxy(this, workerClients.release());
|
| +}
|
| +
|
| +} // namespace blink
|
|
|