OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ | 5 #ifndef CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ |
6 #define CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ | 6 #define CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <map> | 10 #include <map> |
(...skipping 11 matching lines...) Expand all Loading... |
22 #include "ipc/ipc_listener.h" | 22 #include "ipc/ipc_listener.h" |
23 #include "ipc/ipc_test_sink.h" | 23 #include "ipc/ipc_test_sink.h" |
24 #include "mojo/public/cpp/bindings/binding.h" | 24 #include "mojo/public/cpp/bindings/binding.h" |
25 #include "services/service_manager/public/interfaces/interface_provider.mojom.h" | 25 #include "services/service_manager/public/interfaces/interface_provider.mojom.h" |
26 #include "testing/gtest/include/gtest/gtest.h" | 26 #include "testing/gtest/include/gtest/gtest.h" |
27 #include "url/gurl.h" | 27 #include "url/gurl.h" |
28 | 28 |
29 class GURL; | 29 class GURL; |
30 struct ServiceWorkerMsg_ExtendableMessageEvent_Params; | 30 struct ServiceWorkerMsg_ExtendableMessageEvent_Params; |
31 | 31 |
32 namespace shell { | 32 namespace service_manager { |
33 class InterfaceProvider; | 33 class InterfaceProvider; |
34 class InterfaceRegistry; | 34 class InterfaceRegistry; |
35 } | 35 } |
36 | 36 |
37 namespace content { | 37 namespace content { |
38 | 38 |
39 class EmbeddedWorkerRegistry; | 39 class EmbeddedWorkerRegistry; |
40 class EmbeddedWorkerTestHelper; | 40 class EmbeddedWorkerTestHelper; |
41 class MessagePortMessageFilter; | 41 class MessagePortMessageFilter; |
42 class MockRenderProcessHost; | 42 class MockRenderProcessHost; |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 const GURL& script_url, | 160 const GURL& script_url, |
161 bool pause_after_download); | 161 bool pause_after_download); |
162 virtual void OnResumeAfterDownload(int embedded_worker_id); | 162 virtual void OnResumeAfterDownload(int embedded_worker_id); |
163 virtual void OnStopWorker(int embedded_worker_id); | 163 virtual void OnStopWorker(int embedded_worker_id); |
164 virtual bool OnMessageToWorker(int thread_id, | 164 virtual bool OnMessageToWorker(int thread_id, |
165 int embedded_worker_id, | 165 int embedded_worker_id, |
166 const IPC::Message& message); | 166 const IPC::Message& message); |
167 | 167 |
168 // Called to setup mojo for a new embedded worker. Override to register | 168 // Called to setup mojo for a new embedded worker. Override to register |
169 // interfaces the worker should expose to the browser. | 169 // interfaces the worker should expose to the browser. |
170 virtual void OnSetupMojo(int thread_id, | 170 virtual void OnSetupMojo( |
171 shell::InterfaceRegistry* interface_registry); | 171 int thread_id, |
| 172 service_manager::InterfaceRegistry* interface_registry); |
172 | 173 |
173 // On*Event handlers. Called by the default implementation of | 174 // On*Event handlers. Called by the default implementation of |
174 // OnMessageToWorker when events are sent to the embedded | 175 // OnMessageToWorker when events are sent to the embedded |
175 // worker. By default they just return success via | 176 // worker. By default they just return success via |
176 // SimulateSendReplyToBrowser. | 177 // SimulateSendReplyToBrowser. |
177 virtual void OnActivateEvent(int embedded_worker_id, int request_id); | 178 virtual void OnActivateEvent(int embedded_worker_id, int request_id); |
178 virtual void OnExtendableMessageEvent(int embedded_worker_id, int request_id); | 179 virtual void OnExtendableMessageEvent(int embedded_worker_id, int request_id); |
179 virtual void OnInstallEvent(int embedded_worker_id, int request_id); | 180 virtual void OnInstallEvent(int embedded_worker_id, int request_id); |
180 virtual void OnFetchEvent(int embedded_worker_id, | 181 virtual void OnFetchEvent(int embedded_worker_id, |
181 int fetch_event_id, | 182 int fetch_event_id, |
(...skipping 11 matching lines...) Expand all Loading... |
193 void SimulateWorkerThreadStarted(int thread_id, int embedded_worker_id); | 194 void SimulateWorkerThreadStarted(int thread_id, int embedded_worker_id); |
194 void SimulateWorkerScriptEvaluated(int embedded_worker_id, bool success); | 195 void SimulateWorkerScriptEvaluated(int embedded_worker_id, bool success); |
195 void SimulateWorkerStarted(int embedded_worker_id); | 196 void SimulateWorkerStarted(int embedded_worker_id); |
196 void SimulateWorkerStopped(int embedded_worker_id); | 197 void SimulateWorkerStopped(int embedded_worker_id); |
197 void SimulateSend(IPC::Message* message); | 198 void SimulateSend(IPC::Message* message); |
198 | 199 |
199 EmbeddedWorkerRegistry* registry(); | 200 EmbeddedWorkerRegistry* registry(); |
200 | 201 |
201 private: | 202 private: |
202 using InterfaceRegistryAndProvider = | 203 using InterfaceRegistryAndProvider = |
203 std::pair<std::unique_ptr<shell::InterfaceRegistry>, | 204 std::pair<std::unique_ptr<service_manager::InterfaceRegistry>, |
204 std::unique_ptr<shell::InterfaceProvider>>; | 205 std::unique_ptr<service_manager::InterfaceProvider>>; |
205 | 206 |
206 class MockEmbeddedWorkerSetup; | 207 class MockEmbeddedWorkerSetup; |
207 class MockFetchEventDispatcher; | 208 class MockFetchEventDispatcher; |
208 | 209 |
209 void OnStartWorkerStub(const EmbeddedWorkerStartParams& params); | 210 void OnStartWorkerStub(const EmbeddedWorkerStartParams& params); |
210 void OnResumeAfterDownloadStub(int embedded_worker_id); | 211 void OnResumeAfterDownloadStub(int embedded_worker_id); |
211 void OnStopWorkerStub(int embedded_worker_id); | 212 void OnStopWorkerStub(int embedded_worker_id); |
212 void OnMessageToWorkerStub(int thread_id, | 213 void OnMessageToWorkerStub(int thread_id, |
213 int embedded_worker_id, | 214 int embedded_worker_id, |
214 const IPC::Message& message); | 215 const IPC::Message& message); |
215 void OnActivateEventStub(int request_id); | 216 void OnActivateEventStub(int request_id); |
216 void OnExtendableMessageEventStub( | 217 void OnExtendableMessageEventStub( |
217 int request_id, | 218 int request_id, |
218 const ServiceWorkerMsg_ExtendableMessageEvent_Params& params); | 219 const ServiceWorkerMsg_ExtendableMessageEvent_Params& params); |
219 void OnInstallEventStub(int request_id); | 220 void OnInstallEventStub(int request_id); |
220 void OnFetchEventStub(int thread_id, | 221 void OnFetchEventStub(int thread_id, |
221 int fetch_event_id, | 222 int fetch_event_id, |
222 const ServiceWorkerFetchRequest& request, | 223 const ServiceWorkerFetchRequest& request, |
223 const FetchCallback& callback); | 224 const FetchCallback& callback); |
224 void OnPushEventStub(int request_id, const PushEventPayload& payload); | 225 void OnPushEventStub(int request_id, const PushEventPayload& payload); |
225 void OnSetupMojoStub(int thread_id, | 226 void OnSetupMojoStub( |
226 shell::mojom::InterfaceProviderRequest services, | 227 int thread_id, |
227 shell::mojom::InterfaceProviderPtr exposed_services); | 228 service_manager::mojom::InterfaceProviderRequest services, |
| 229 service_manager::mojom::InterfaceProviderPtr exposed_services); |
228 | 230 |
229 MessagePortMessageFilter* NewMessagePortMessageFilter(); | 231 MessagePortMessageFilter* NewMessagePortMessageFilter(); |
230 | 232 |
231 std::unique_ptr<shell::InterfaceRegistry> CreateInterfaceRegistry( | 233 std::unique_ptr<service_manager::InterfaceRegistry> CreateInterfaceRegistry( |
232 MockRenderProcessHost* rph); | 234 MockRenderProcessHost* rph); |
233 | 235 |
234 std::unique_ptr<TestBrowserContext> browser_context_; | 236 std::unique_ptr<TestBrowserContext> browser_context_; |
235 std::unique_ptr<MockRenderProcessHost> render_process_host_; | 237 std::unique_ptr<MockRenderProcessHost> render_process_host_; |
236 std::unique_ptr<MockRenderProcessHost> new_render_process_host_; | 238 std::unique_ptr<MockRenderProcessHost> new_render_process_host_; |
237 | 239 |
238 scoped_refptr<ServiceWorkerContextWrapper> wrapper_; | 240 scoped_refptr<ServiceWorkerContextWrapper> wrapper_; |
239 | 241 |
240 IPC::TestSink sink_; | 242 IPC::TestSink sink_; |
241 IPC::TestSink inner_sink_; | 243 IPC::TestSink inner_sink_; |
242 | 244 |
243 std::vector<std::unique_ptr<MockEmbeddedWorkerInstanceClient>> | 245 std::vector<std::unique_ptr<MockEmbeddedWorkerInstanceClient>> |
244 mock_instance_clients_; | 246 mock_instance_clients_; |
245 size_t mock_instance_clients_next_index_; | 247 size_t mock_instance_clients_next_index_; |
246 | 248 |
247 int next_thread_id_; | 249 int next_thread_id_; |
248 int mock_render_process_id_; | 250 int mock_render_process_id_; |
249 int new_mock_render_process_id_; | 251 int new_mock_render_process_id_; |
250 | 252 |
251 std::unique_ptr<shell::InterfaceRegistry> render_process_interface_registry_; | 253 std::unique_ptr<service_manager::InterfaceRegistry> |
252 std::unique_ptr<shell::InterfaceRegistry> | 254 render_process_interface_registry_; |
| 255 std::unique_ptr<service_manager::InterfaceRegistry> |
253 new_render_process_interface_registry_; | 256 new_render_process_interface_registry_; |
254 | 257 |
255 std::map<int, int64_t> embedded_worker_id_service_worker_version_id_map_; | 258 std::map<int, int64_t> embedded_worker_id_service_worker_version_id_map_; |
256 std::map<int /* thread_id */, int /* embedded_worker_id */> | 259 std::map<int /* thread_id */, int /* embedded_worker_id */> |
257 thread_id_embedded_worker_id_map_; | 260 thread_id_embedded_worker_id_map_; |
258 | 261 |
259 // Stores the InterfaceRegistry/InterfaceProviders that are associated with | 262 // Stores the InterfaceRegistry/InterfaceProviders that are associated with |
260 // each individual service worker. | 263 // each individual service worker. |
261 base::hash_map<int, InterfaceRegistryAndProvider> | 264 base::hash_map<int, InterfaceRegistryAndProvider> |
262 thread_id_service_registry_map_; | 265 thread_id_service_registry_map_; |
263 | 266 |
264 // Updated each time MessageToWorker message is received. | 267 // Updated each time MessageToWorker message is received. |
265 int current_embedded_worker_id_; | 268 int current_embedded_worker_id_; |
266 | 269 |
267 std::vector<scoped_refptr<MessagePortMessageFilter>> | 270 std::vector<scoped_refptr<MessagePortMessageFilter>> |
268 message_port_message_filters_; | 271 message_port_message_filters_; |
269 | 272 |
270 base::WeakPtrFactory<EmbeddedWorkerTestHelper> weak_factory_; | 273 base::WeakPtrFactory<EmbeddedWorkerTestHelper> weak_factory_; |
271 | 274 |
272 DISALLOW_COPY_AND_ASSIGN(EmbeddedWorkerTestHelper); | 275 DISALLOW_COPY_AND_ASSIGN(EmbeddedWorkerTestHelper); |
273 }; | 276 }; |
274 | 277 |
275 } // namespace content | 278 } // namespace content |
276 | 279 |
277 #endif // CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ | 280 #endif // CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ |
OLD | NEW |