diff options
author | horo@chromium.org <horo@chromium.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2013-12-11 14:19:40 +0000 |
---|---|---|
committer | horo@chromium.org <horo@chromium.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2013-12-11 14:19:40 +0000 |
commit | c002bf5ff3babd63a7787702889434d58322f6b9 (patch) | |
tree | f07c87adf576ef66f629e608371af1f9791e6938 /third_party/WebKit/public | |
parent | be6100d506a475729eeeef1ed6699439d44a6097 (diff) | |
download | chromium_src-c002bf5ff3babd63a7787702889434d58322f6b9.zip chromium_src-c002bf5ff3babd63a7787702889434d58322f6b9.tar.gz chromium_src-c002bf5ff3babd63a7787702889434d58322f6b9.tar.bz2 |
Split blink::WebSharedWorker interface into two in blink side (phase:1/3)
This is one of cleanup patches.
Goal:
Split blink::WebSharedWorker interface into two interfaces(WebSharedWorker, WebSharedWorkerConnector)
WebSharedWorkerConnector will be used in parent-context side.
WebSharedWorker will be used in worker-context side
Phase 1: in blink (this patch)
- Introduce blink::WebSharedWorkerConnector
- Make blink::WebSharedWorker to be a subclass of blink::WebSharedWorkerConnector
- Move isStarted(), startWorkerContext() and ConnectListener and connect() from blink::WebSharedWorker to blink::WebSharedWorkerConnector.
- Set default value of connect()'s 2nd argument(ConnectListener) to 0.
- Add blink:WebSharedWorkerRepositoryClient::createSharedWorkerConnector() which calls createSharedWorker()
Phase 2: in Chrome
- Change content::WebSharedWorkerProxy to be a subclass of blink::WebSharedWorkerConnector, which is currently a subclass of blink::WebSharedWorker.
- Remove content::WebSharedWorkerProxy::terminateWorkerContext() and content::WebSharedWorkerProxy::clientDestroyed().
- Remove "WebSharedWorker* SharedWorkerRepository::createSharedWorker()"
- Introduce "WebSharedWorkerConnector* SharedWorkerRepository::createSharedWorkerConnector()"
Phase 3: in blink
- Make blink::WebSharedWorker independent from blink::WebSharedWorkerConnector.
- Remove blink::WebSharedWorkerImpl::isStarted()
- Add startWorkerContext() and connect() to blink::WebSharedWorker.
- Remove blink:WebSharedWorkerRepositoryClient::createSharedWorker()
- Remove default value of blink::WebSharedWorkerConnector::connect()'s 2nd argument.
BUG=327600
Review URL: https://codereview.chromium.org/104943005
git-svn-id: svn://svn.chromium.org/blink/trunk@163707 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Diffstat (limited to 'third_party/WebKit/public')
3 files changed, 85 insertions, 24 deletions
diff --git a/third_party/WebKit/public/web/WebSharedWorker.h b/third_party/WebKit/public/web/WebSharedWorker.h index 3983d46..377a8fa 100644 --- a/third_party/WebKit/public/web/WebSharedWorker.h +++ b/third_party/WebKit/public/web/WebSharedWorker.h @@ -33,6 +33,7 @@ #include "../platform/WebCommon.h" #include "WebContentSecurityPolicy.h" +#include "WebSharedWorkerConnector.h" namespace WebCore { class ScriptExecutionContext; @@ -46,35 +47,14 @@ class WebSharedWorkerClient; 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 { +// FIXME(horo): Make WebSharedWorker independent from WebSharedWorkerConnector. +class WebSharedWorker : public WebSharedWorkerConnector { public: // Invoked from the worker thread to instantiate a WebSharedWorker that interacts with the WebKit worker components. BLINK_EXPORT static WebSharedWorker* create(WebSharedWorkerClient*); 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, - const WebString& contentSecurityPolicy, - WebContentSecurityPolicyType, - long long scriptResourceAppCacheID) = 0; - - class ConnectListener { - public: - // Invoked once the connect event has been sent so the caller can free this object. - virtual void connected() = 0; - }; - - // Sends a connect event to the SharedWorker context. The listener is invoked when this async operation completes. - virtual void connect(WebMessagePortChannel*, ConnectListener*) = 0; - // Invoked to shutdown the worker when there are no more associated documents. virtual void terminateWorkerContext() = 0; diff --git a/third_party/WebKit/public/web/WebSharedWorkerConnector.h b/third_party/WebKit/public/web/WebSharedWorkerConnector.h new file mode 100644 index 0000000..8e1d2d6 --- /dev/null +++ b/third_party/WebKit/public/web/WebSharedWorkerConnector.h @@ -0,0 +1,73 @@ +/* + * 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 WebSharedWorkerConnector_h +#define WebSharedWorkerConnector_h + +#include "WebContentSecurityPolicy.h" + +namespace blink { + +class WebString; +class WebMessagePortChannel; +class WebURL; + +// This is the interface to conncect to SharedWorker. +// Since SharedWorkers communicate entirely through MessagePorts this interface only contains APIs for starting up a SharedWorker. +class WebSharedWorkerConnector { +public: + virtual ~WebSharedWorkerConnector() { } + + // 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, + const WebString& contentSecurityPolicy, + WebContentSecurityPolicyType, + long long scriptResourceAppCacheID) = 0; + + class ConnectListener { + public: + // Invoked once the connect event has been sent so the caller can free this object. + virtual void connected() = 0; + }; + + // Sends a connect event to the SharedWorker context. The listener is invoked when this async operation completes. + virtual void connect(WebMessagePortChannel*, ConnectListener* = 0) = 0; +}; + +} // namespace blink + +#endif diff --git a/third_party/WebKit/public/web/WebSharedWorkerRepositoryClient.h b/third_party/WebKit/public/web/WebSharedWorkerRepositoryClient.h index e961a73..97129a3 100644 --- a/third_party/WebKit/public/web/WebSharedWorkerRepositoryClient.h +++ b/third_party/WebKit/public/web/WebSharedWorkerRepositoryClient.h @@ -31,10 +31,11 @@ #ifndef WebSharedWorkerRepositoryClient_h #define WebSharedWorkerRepositoryClient_h +#include "WebSharedWorker.h" + namespace blink { class WebString; -class WebSharedWorker; class WebURL; class WebSharedWorkerRepositoryClient { @@ -43,8 +44,15 @@ public: typedef unsigned long long DocumentID; // Creates a new shared worker. This may return null. + // FIXME(horo):Remove this method. virtual WebSharedWorker* createSharedWorker(const WebURL&, const WebString&, DocumentID) { return 0; } + // Creates a new shared worker connector. This may return null. + virtual WebSharedWorkerConnector* createSharedWorkerConnector(const WebURL& url, const WebString& name, DocumentID id) + { + return createSharedWorker(url, name, id); + } + // Invoked when a document has been detached. DocumentID can be re-used after documentDetached() is invoked. virtual void documentDetached(DocumentID) { } }; |