| Index: Source/core/workers/Worker.cpp
|
| diff --git a/Source/core/workers/Worker.cpp b/Source/core/workers/Worker.cpp
|
| index caf255e8eca1920c5408419c73edd18dad9b4db1..79b3190abe9cbd7792f2c398afe6d61e88a1199e 100644
|
| --- a/Source/core/workers/Worker.cpp
|
| +++ b/Source/core/workers/Worker.cpp
|
| @@ -1,29 +1,6 @@
|
| -/*
|
| - * Copyright (C) 2008, 2010 Apple Inc. All Rights Reserved.
|
| - * Copyright (C) 2009 Google Inc. All Rights Reserved.
|
| - *
|
| - * Redistribution and use in source and binary forms, with or without
|
| - * modification, are permitted provided that the following conditions
|
| - * are met:
|
| - * 1. Redistributions of source code must retain the above copyright
|
| - * notice, this list of conditions and the following disclaimer.
|
| - * 2. Redistributions in binary form must reproduce the above copyright
|
| - * notice, this list of conditions and the following disclaimer in the
|
| - * documentation and/or other materials provided with the distribution.
|
| - *
|
| - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
|
| - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
| - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
| - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
|
| - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
| - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
| - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
| - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
| - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| - *
|
| - */
|
| +// 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 "core/workers/Worker.h"
|
| @@ -31,22 +8,14 @@
|
| #include "bindings/core/v8/ExceptionState.h"
|
| #include "core/dom/Document.h"
|
| #include "core/dom/ExceptionCode.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/workers/WorkerGlobalScopeProxy.h"
|
| #include "core/workers/WorkerGlobalScopeProxyProvider.h"
|
| -#include "core/workers/WorkerScriptLoader.h"
|
| -#include "core/workers/WorkerThread.h"
|
| -#include "wtf/MainThread.h"
|
|
|
| namespace blink {
|
|
|
| Worker::Worker(ExecutionContext* context)
|
| - : AbstractWorker(context)
|
| - , m_contextProxy(nullptr)
|
| + : InProcessWorkerBase(context)
|
| {
|
| }
|
|
|
| @@ -68,9 +37,6 @@ PassRefPtrWillBeRawPtr<Worker> Worker::create(ExecutionContext* context, const S
|
| Worker::~Worker()
|
| {
|
| ASSERT(isMainThread());
|
| - if (!m_contextProxy)
|
| - return;
|
| - m_contextProxy->workerObjectDestroyed();
|
| }
|
|
|
| const AtomicString& Worker::interfaceName() const
|
| @@ -78,32 +44,6 @@ const AtomicString& Worker::interfaceName() const
|
| return EventTargetNames::Worker;
|
| }
|
|
|
| -void Worker::postMessage(ExecutionContext*, PassRefPtr<SerializedScriptValue> message, const MessagePortArray* ports, ExceptionState& exceptionState)
|
| -{
|
| - ASSERT(m_contextProxy);
|
| - // Disentangle the port in preparation for sending it to the remote context.
|
| - OwnPtr<MessagePortChannelArray> channels = MessagePort::disentanglePorts(ports, exceptionState);
|
| - if (exceptionState.hadException())
|
| - return;
|
| - m_contextProxy->postMessageToWorkerGlobalScope(message, channels.release());
|
| -}
|
| -
|
| -bool Worker::initialize(ExecutionContext* context, const String& url, ExceptionState& exceptionState)
|
| -{
|
| - suspendIfNeeded();
|
| -
|
| - KURL scriptURL = resolveURL(url, exceptionState);
|
| - if (scriptURL.isEmpty())
|
| - return false;
|
| -
|
| - m_scriptLoader = WorkerScriptLoader::create();
|
| - m_scriptLoader->loadAsynchronously(*context, scriptURL, DenyCrossOriginRequests, this);
|
| -
|
| - m_contextProxy = createWorkerGlobalScopeProxy(context);
|
| -
|
| - return true;
|
| -}
|
| -
|
| WorkerGlobalScopeProxy* Worker::createWorkerGlobalScopeProxy(ExecutionContext* context)
|
| {
|
| Document* document = toDocument(context);
|
| @@ -112,46 +52,4 @@ WorkerGlobalScopeProxy* Worker::createWorkerGlobalScopeProxy(ExecutionContext* c
|
| return proxyProvider->createWorkerGlobalScopeProxy(this);
|
| }
|
|
|
| -void Worker::terminate()
|
| -{
|
| - if (m_contextProxy)
|
| - m_contextProxy->terminateWorkerGlobalScope();
|
| -}
|
| -
|
| -void Worker::stop()
|
| -{
|
| - terminate();
|
| -}
|
| -
|
| -bool Worker::hasPendingActivity() const
|
| -{
|
| - // The worker context does not exist while loading, so we must ensure that the worker object is not collected, nor are its event listeners.
|
| - return (m_contextProxy && m_contextProxy->hasPendingActivity()) || m_scriptLoader;
|
| -}
|
| -
|
| -void Worker::didReceiveResponse(unsigned long identifier, const ResourceResponse&)
|
| -{
|
| - InspectorInstrumentation::didReceiveScriptResponse(executionContext(), identifier);
|
| -}
|
| -
|
| -void Worker::notifyFinished()
|
| -{
|
| - if (m_scriptLoader->failed()) {
|
| - dispatchEvent(Event::createCancelable(EventTypeNames::error));
|
| - } else {
|
| - ASSERT(m_contextProxy);
|
| - WorkerThreadStartMode startMode = DontPauseWorkerGlobalScopeOnStart;
|
| - if (InspectorInstrumentation::shouldPauseDedicatedWorkerOnStart(executionContext()))
|
| - startMode = PauseWorkerGlobalScopeOnStart;
|
| - m_contextProxy->startWorkerGlobalScope(m_scriptLoader->url(), executionContext()->userAgent(m_scriptLoader->url()), m_scriptLoader->script(), startMode);
|
| - InspectorInstrumentation::scriptImported(executionContext(), m_scriptLoader->identifier(), m_scriptLoader->script());
|
| - }
|
| - m_scriptLoader = nullptr;
|
| -}
|
| -
|
| -DEFINE_TRACE(Worker)
|
| -{
|
| - AbstractWorker::trace(visitor);
|
| -}
|
| -
|
| } // namespace blink
|
|
|