summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
Diffstat (limited to 'webkit')
-rw-r--r--webkit/api/WebKit.gyp5
-rw-r--r--webkit/api/public/WebCommonWorkerClient.h77
-rw-r--r--webkit/api/public/WebSharedWorker.h15
-rw-r--r--webkit/api/public/WebWorkerClient.h25
-rw-r--r--webkit/api/src/SharedWorkerRepository.cpp24
-rw-r--r--webkit/api/src/WebSharedWorkerImpl.cpp49
-rw-r--r--webkit/api/src/WebSharedWorkerImpl.h78
7 files changed, 35 insertions, 238 deletions
diff --git a/webkit/api/WebKit.gyp b/webkit/api/WebKit.gyp
index 1efd323..49c8966 100644
--- a/webkit/api/WebKit.gyp
+++ b/webkit/api/WebKit.gyp
@@ -76,7 +76,6 @@
'public/WebColor.h',
'public/WebColorName.h',
'public/WebCommon.h',
- 'public/WebCommonWorkerClient.h',
'public/WebCompositionCommand.h',
'public/WebConsoleMessage.h',
'public/WebContextMenuData.h',
@@ -135,8 +134,6 @@
'public/WebSecurityOrigin.h',
'public/WebSecurityPolicy.h',
'public/WebSettings.h',
- 'public/WebSharedWorker.h'
- 'public/WebSharedWorkerRepository.h',
'public/WebSize.h',
'public/WebSocketStreamError.h',
'public/WebSocketStreamHandle.h',
@@ -262,8 +259,6 @@
'src/WebSecurityPolicy.cpp',
'src/WebSettingsImpl.cpp',
'src/WebSettingsImpl.h',
- 'src/WebSharedWorkerImpl.cpp',
- 'src/WebSharedWorkerImpl.h',
'src/WebStorageAreaImpl.cpp',
'src/WebStorageAreaImpl.h',
'src/WebStorageEventDispatcherImpl.cpp',
diff --git a/webkit/api/public/WebCommonWorkerClient.h b/webkit/api/public/WebCommonWorkerClient.h
deleted file mode 100644
index fd7e399..0000000
--- a/webkit/api/public/WebCommonWorkerClient.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * 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:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * 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.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "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 THE COPYRIGHT
- * OWNER 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.
- */
-
-#ifndef WebCommonWorkerClient_h
-#define WebCommonWorkerClient_h
-
-namespace WebKit {
- class WebNotificationPresenter;
- class WebString;
- class WebWorker;
- class WebWorkerClient;
-
- // Provides an interface back to the in-page script object for a worker.
- // This interface contains common APIs used by both shared and dedicated
- // workers.
- // All functions are expected to be called back on the thread that created
- // the Worker object, unless noted.
- class WebCommonWorkerClient {
- public:
- virtual void postExceptionToWorkerObject(
- const WebString& errorString, int lineNumber,
- const WebString& sourceURL) = 0;
-
- virtual void postConsoleMessageToWorkerObject(
- int destinationIdentifier,
- int sourceIdentifier,
- int messageType,
- int messageLevel,
- const WebString& message,
- int lineNumber,
- const WebString& sourceURL) = 0;
-
- virtual void workerContextDestroyed() = 0;
-
- // Returns the notification presenter for this worker context. Pointer
- // is owned by the object implementing WebCommonWorkerClient.
- virtual WebNotificationPresenter* notificationPresenter() = 0;
-
- // This can be called on any thread to create a nested WebWorker.
- // WebSharedWorkers are not instantiated via this API - instead
- // they are created via the WebSharedWorkerRepository.
- virtual WebWorker* createWorker(WebWorkerClient* client) = 0;
-
- protected:
- ~WebCommonWorkerClient() { }
- };
-
-} // namespace WebKit
-
-#endif
diff --git a/webkit/api/public/WebSharedWorker.h b/webkit/api/public/WebSharedWorker.h
index a580882..37f0ad6 100644
--- a/webkit/api/public/WebSharedWorker.h
+++ b/webkit/api/public/WebSharedWorker.h
@@ -37,35 +37,24 @@ namespace WebKit {
class ScriptExecutionContext;
class WebString;
class WebMessagePortChannel;
- class WebCommonWorkerClient;
class WebURL;
// This is the interface to a SharedWorker thread.
// Since SharedWorkers communicate entirely through MessagePorts this interface only contains APIs for starting up a SharedWorker.
class WebSharedWorker {
public:
- // Invoked from the worker thread to instantiate a WebSharedWorker that interacts with the WebKit worker components.
- WEBKIT_API static WebSharedWorker* create(WebCommonWorkerClient*);
-
- virtual ~WebSharedWorker() {};
+ virtual ~WebSharedWorker() {}
// Returns false if the thread hasn't been started yet (script loading has not taken place).
// FIXME(atwilson): Remove this when we move the initial script loading into the worker process.
virtual bool isStarted() = 0;
virtual void startWorkerContext(const WebURL& scriptURL,
- const WebString& name,
const WebString& userAgent,
const WebString& sourceCode) = 0;
- // Sends a connect event to the SharedWorker context.
+ // Sends a connect event to the SharedWorker thread.
virtual void connect(WebMessagePortChannel*) = 0;
-
- // Invoked to shutdown the worker when there are no more associated documents.
- virtual void terminateWorkerContext() = 0;
-
- // Notification when the WebCommonWorkerClient is destroyed.
- virtual void clientDestroyed() = 0;
};
} // namespace WebKit
diff --git a/webkit/api/public/WebWorkerClient.h b/webkit/api/public/WebWorkerClient.h
index 044ba52..c0aa1bd 100644
--- a/webkit/api/public/WebWorkerClient.h
+++ b/webkit/api/public/WebWorkerClient.h
@@ -32,7 +32,6 @@
#define WebWorkerClient_h
#include "WebMessagePortChannel.h"
-#include "WebCommonWorkerClient.h"
namespace WebKit {
class WebNotificationPresenter;
@@ -42,15 +41,37 @@ namespace WebKit {
// Provides an interface back to the in-page script object for a worker.
// All functions are expected to be called back on the thread that created
// the Worker object, unless noted.
- class WebWorkerClient : public WebCommonWorkerClient {
+ class WebWorkerClient {
public:
virtual void postMessageToWorkerObject(
const WebString&,
const WebMessagePortChannelArray&) = 0;
+ virtual void postExceptionToWorkerObject(
+ const WebString& errorString, int lineNumber,
+ const WebString& sourceURL) = 0;
+
+ virtual void postConsoleMessageToWorkerObject(
+ int destinationIdentifier,
+ int sourceIdentifier,
+ int messageType,
+ int messageLevel,
+ const WebString& message,
+ int lineNumber,
+ const WebString& sourceURL) = 0;
+
virtual void confirmMessageFromWorkerObject(bool hasPendingActivity) = 0;
virtual void reportPendingActivity(bool hasPendingActivity) = 0;
+ virtual void workerContextDestroyed() = 0;
+
+ // Returns the notification presenter for this worker context. Pointer
+ // is owned by the object implementing WebWorkerClient.
+ virtual WebNotificationPresenter* notificationPresenter() = 0;
+
+ // This can be called on any thread to create a nested worker.
+ virtual WebWorker* createWorker(WebWorkerClient* client) = 0;
+
protected:
~WebWorkerClient() { }
};
diff --git a/webkit/api/src/SharedWorkerRepository.cpp b/webkit/api/src/SharedWorkerRepository.cpp
index 32e8fd7..ddc6238 100644
--- a/webkit/api/src/SharedWorkerRepository.cpp
+++ b/webkit/api/src/SharedWorkerRepository.cpp
@@ -60,32 +60,28 @@ using WebKit::WebSharedWorkerRepository;
// Callback class that keeps the Worker object alive while loads are potentially happening, and also translates load errors into error events on the worker.
class SharedWorkerScriptLoader : public RefCounted<SharedWorkerScriptLoader>, private WorkerScriptLoaderClient {
public:
- SharedWorkerScriptLoader(PassRefPtr<SharedWorker> worker, const KURL& url, const String& name, PassOwnPtr<MessagePortChannel> port, PassOwnPtr<WebSharedWorker> webWorker)
- : m_worker(worker),
- m_url(url),
- m_name(name),
- m_webWorker(webWorker),
- m_port(port)
+ SharedWorkerScriptLoader(PassRefPtr<SharedWorker> worker, PassOwnPtr<MessagePortChannel> port, PassOwnPtr<WebSharedWorker> webWorker)
+ : m_worker(worker)
+ , m_webWorker(webWorker)
+ , m_port(port)
{
}
- void load();
+ void load(const KURL&);
private:
// WorkerScriptLoaderClient callback
virtual void notifyFinished();
RefPtr<SharedWorker> m_worker;
- KURL m_url;
- String m_name;
OwnPtr<WebSharedWorker> m_webWorker;
OwnPtr<MessagePortChannel> m_port;
WorkerScriptLoader m_scriptLoader;
};
-void SharedWorkerScriptLoader::load()
+void SharedWorkerScriptLoader::load(const KURL& url)
{
- m_scriptLoader.loadAsynchronously(m_worker->scriptExecutionContext(), m_url, DenyCrossOriginRequests, this);
+ m_scriptLoader.loadAsynchronously(m_worker->scriptExecutionContext(), url, DenyCrossOriginRequests, this);
}
// Extracts a WebMessagePortChannel from a MessagePortChannel.
@@ -103,7 +99,7 @@ void SharedWorkerScriptLoader::notifyFinished()
if (m_scriptLoader.failed())
m_worker->dispatchEvent(Event::create(eventNames().errorEvent, false, true));
else {
- m_webWorker->startWorkerContext(m_url, m_name, m_worker->scriptExecutionContext()->userAgent(m_url), m_scriptLoader.script());
+ m_webWorker->startWorkerContext(m_scriptLoader.url(), m_worker->scriptExecutionContext()->userAgent(m_scriptLoader.url()), m_scriptLoader.script());
m_webWorker->connect(getWebPort(m_port.release()));
}
@@ -142,8 +138,8 @@ void SharedWorkerRepository::connect(PassRefPtr<SharedWorker> worker, PassOwnPtr
if (!webWorker->isStarted()) {
// Need to kick off a load for the worker. The loader will connect to the worker once the script has been loaded, then free itself.
- SharedWorkerScriptLoader* loader = new SharedWorkerScriptLoader(worker, url, name, port.release(), webWorker.release());
- loader->load();
+ SharedWorkerScriptLoader* loader = new SharedWorkerScriptLoader(worker, port.release(), webWorker.release());
+ loader->load(url);
} else
webWorker->connect(getWebPort(port.release()));
}
diff --git a/webkit/api/src/WebSharedWorkerImpl.cpp b/webkit/api/src/WebSharedWorkerImpl.cpp
deleted file mode 100644
index e5c9fc5..0000000
--- a/webkit/api/src/WebSharedWorkerImpl.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * 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.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "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 THE COPYRIGHT
- * OWNER 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.
- */
-
-#include "config.h"
-#include "WebSharedWorkerImpl.h"
-
-using namespace WebCore;
-
-namespace WebKit {
-
-#if ENABLE(SHARED_WORKERS)
-
-WebSharedWorker* WebSharedWorker::create(WebCommonWorkerClient* client)
-{
- // FIXME: Return an instance of WebSharedWorkerImpl once the implementation is complete.
- ASSERT_NOT_REACHED();
- return NULL;
-}
-
-#endif // ENABLE(SHARED_WORKERS)
-
-} // namespace WebKit
diff --git a/webkit/api/src/WebSharedWorkerImpl.h b/webkit/api/src/WebSharedWorkerImpl.h
deleted file mode 100644
index fad0f5a..0000000
--- a/webkit/api/src/WebSharedWorkerImpl.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * 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:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * 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.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "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 THE COPYRIGHT
- * OWNER 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.
- */
-
-#ifndef WebSharedWorkerImpl_h
-#define WebSharedWorkerImpl_h
-
-#include "WebSharedWorker.h"
-
-#if ENABLE(SHARED_WORKERS)
-
-#include "ScriptExecutionContext.h"
-#include "WorkerLoaderProxy.h"
-#include "WorkerObjectProxy.h"
-#include <wtf/PassOwnPtr.h>
-#include <wtf/RefPtr.h>
-
-namespace WebCore {
-class SharedWorkerThread;
-}
-
-namespace WebKit {
-class WebView;
-
-// This class is used by the worker process code to talk to the WebCore::SharedWorker implementation.
-// It can't use it directly since it uses WebKit types, so this class converts the data types.
-// When the WebCore::SharedWorker object wants to call WebCore::WorkerReportingProxy, this class will
-// convert to Chrome data types first and then call the supplied WebCommonWorkerClient.
-class WebSharedWorkerImpl : public WebCore::WorkerLoaderProxy {
-public:
- explicit WebSharedWorkerImpl(WebCommonWorkerClient* client);
-
- // WebSharedWorker methods:
- virtual bool isStarted();
- virtual void startWorkerContext(const WebURL&, const WebString& name, const WebString& userAgent, const WebString& sourceCode);
- virtual void connect(WebMessagePortChannel*);
-
- WebCommonWorkerClient* client() { return m_client; }
-
-private:
- virtual ~WebSharedWorkerImpl();
-
- WebCommonWorkerClient* m_client;
-
- RefPtr<WebCore::SharedWorkerThread> m_workerThread;
-};
-
-} // namespace WebKit
-
-#endif // ENABLE(SHARED_WORKERS)
-
-#endif