OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef CONTENT_WORKER_WEBWORKERCLIENT_PROXY_H_ | |
6 #define CONTENT_WORKER_WEBWORKERCLIENT_PROXY_H_ | |
7 | |
8 #include "base/basictypes.h" | |
9 #include "base/memory/weak_ptr.h" | |
10 #include "ipc/ipc_channel.h" | |
11 #include "third_party/WebKit/public/web/WebSharedWorkerClient.h" | |
12 | |
13 namespace blink { | |
14 class WebApplicationCacheHost; | |
15 class WebApplicationCacheHostClient; | |
16 class WebFrame; | |
17 class WebSecurityOrigin; | |
18 } | |
19 | |
20 namespace content { | |
21 | |
22 class SharedWorkerDevToolsAgent; | |
23 class WebSharedWorkerStub; | |
24 class WorkerWebApplicationCacheHostImpl; | |
25 | |
26 // This class receives IPCs from the renderer and calls the WebCore::Worker | |
27 // implementation (after the data types have been converted by glue code). It | |
28 // is also called by the worker code and converts these function calls into | |
29 // IPCs that are sent to the renderer, where they're converted back to function | |
30 // calls by WebWorkerProxy. | |
31 class WebSharedWorkerClientProxy : public blink::WebSharedWorkerClient { | |
32 public: | |
33 WebSharedWorkerClientProxy(int route_id, WebSharedWorkerStub* stub); | |
34 virtual ~WebSharedWorkerClientProxy(); | |
35 | |
36 // WebSharedWorkerClient implementation. | |
37 virtual void workerContextClosed(); | |
38 virtual void workerContextDestroyed(); | |
39 virtual void workerScriptLoaded(); | |
40 virtual void workerScriptLoadFailed(); | |
41 virtual void selectAppCacheID(long long app_cache_id); | |
42 | |
43 virtual blink::WebNotificationPresenter* notificationPresenter(); | |
44 | |
45 virtual blink::WebApplicationCacheHost* createApplicationCacheHost( | |
46 blink::WebApplicationCacheHostClient* client); | |
47 virtual blink::WebWorkerPermissionClientProxy* | |
48 createWorkerPermissionClientProxy( | |
49 const blink::WebSecurityOrigin& origin); | |
50 | |
51 virtual void dispatchDevToolsMessage(const blink::WebString&); | |
52 virtual void saveDevToolsAgentState(const blink::WebString&); | |
53 | |
54 void EnsureWorkerContextTerminates(); | |
55 | |
56 void set_devtools_agent(SharedWorkerDevToolsAgent* devtools_agent) { | |
57 devtools_agent_ = devtools_agent; | |
58 } | |
59 | |
60 private: | |
61 bool Send(IPC::Message* message); | |
62 | |
63 int route_id_; | |
64 int appcache_host_id_; | |
65 WebSharedWorkerStub* stub_; | |
66 base::WeakPtrFactory<WebSharedWorkerClientProxy> weak_factory_; | |
67 SharedWorkerDevToolsAgent* devtools_agent_; | |
68 WorkerWebApplicationCacheHostImpl* app_cache_host_; | |
69 | |
70 DISALLOW_COPY_AND_ASSIGN(WebSharedWorkerClientProxy); | |
71 }; | |
72 | |
73 } // namespace content | |
74 | |
75 #endif // CONTENT_WORKER_WEBWORKERCLIENT_PROXY_H_ | |
OLD | NEW |