Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Side by Side Diff: chrome/renderer/websharedworker_proxy.h

Issue 390017: Added lifecycle management and sharing support for SharedWorkers. SharedWorkers (Closed)
Patch Set: Changed WebWorkerBase not not call a virtual function from the destructor Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_RENDERER_WEBSHAREDWORKER_PROXY_H_ 5 #ifndef CHROME_RENDERER_WEBSHAREDWORKER_PROXY_H_
6 #define CHROME_RENDERER_WEBSHAREDWORKER_PROXY_H_ 6 #define CHROME_RENDERER_WEBSHAREDWORKER_PROXY_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "chrome/renderer/webworker_base.h" 9 #include "chrome/renderer/webworker_base.h"
10 #include "googleurl/src/gurl.h" 10 #include "googleurl/src/gurl.h"
11 #include "third_party/WebKit/WebKit/chromium/public/WebSharedWorker.h" 11 #include "third_party/WebKit/WebKit/chromium/public/WebSharedWorker.h"
12 12
13 class ChildThread; 13 class ChildThread;
14 14
15 // Implementation of the WebSharedWorker APIs. This object is intended to only 15 // Implementation of the WebSharedWorker APIs. This object is intended to only
16 // live long enough to allow the caller to send a "connect" event to the worker 16 // live long enough to allow the caller to send a "connect" event to the worker
17 // thread. Once the connect event has been sent, all future communication will 17 // thread. Once the connect event has been sent, all future communication will
18 // happen via the WebMessagePortChannel, and the WebSharedWorker instance will 18 // happen via the WebMessagePortChannel, and the WebSharedWorker instance will
19 // be freed. 19 // be freed.
20 class WebSharedWorkerProxy : public WebKit::WebSharedWorker, 20 class WebSharedWorkerProxy : public WebKit::WebSharedWorker,
21 private WebWorkerBase { 21 private WebWorkerBase {
22 public: 22 public:
23 // If the worker not loaded yet, route_id == MSG_ROUTING_NONE
23 WebSharedWorkerProxy(ChildThread* child_thread, 24 WebSharedWorkerProxy(ChildThread* child_thread,
24 int route_id, 25 int route_id,
25 int render_view_route_id); 26 int render_view_route_id);
26 27
27 // Implementations of WebSharedWorker APIs 28 // Implementations of WebSharedWorker APIs
28 virtual bool isStarted(); 29 virtual bool isStarted();
29 virtual void connect(WebKit::WebMessagePortChannel* channel, 30 virtual void connect(WebKit::WebMessagePortChannel* channel,
30 ConnectListener* listener); 31 ConnectListener* listener);
31 virtual void startWorkerContext(const WebKit::WebURL& script_url, 32 virtual void startWorkerContext(const WebKit::WebURL& script_url,
32 const WebKit::WebString& name, 33 const WebKit::WebString& name,
33 const WebKit::WebString& user_agent, 34 const WebKit::WebString& user_agent,
34 const WebKit::WebString& source_code); 35 const WebKit::WebString& source_code);
35 virtual void terminateWorkerContext(); 36 virtual void terminateWorkerContext();
36 virtual void clientDestroyed(); 37 virtual void clientDestroyed();
37 38
38 // IPC::Channel::Listener proxyementation. 39 // IPC::Channel::Listener implementation.
39 void OnMessageReceived(const IPC::Message& message); 40 void OnMessageReceived(const IPC::Message& message);
40 41
41 private: 42 private:
42 void OnWorkerCreated(); 43 void OnWorkerCreated();
43 44
44 ConnectListener* m_connectListener; 45 ConnectListener* connect_listener_;
45 46
46 DISALLOW_COPY_AND_ASSIGN(WebSharedWorkerProxy); 47 DISALLOW_COPY_AND_ASSIGN(WebSharedWorkerProxy);
47 }; 48 };
48 49
49 #endif // CHROME_RENDERER_WEBSHAREDWORKER_PROXY_H_ 50 #endif // CHROME_RENDERER_WEBSHAREDWORKER_PROXY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698