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

Side by Side Diff: content/browser/service_worker/embedded_worker_test_helper.h

Issue 2746783002: [ServiceWorker] Mojofy InstallEvent of Service Worker (Closed)
Patch Set: Just delete a useless line Created 3 years, 7 months 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
« no previous file with comments | « no previous file | content/browser/service_worker/embedded_worker_test_helper.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 // also returns success for event messages (e.g. InstallEvent, FetchEvent). 55 // also returns success for event messages (e.g. InstallEvent, FetchEvent).
56 // 56 //
57 // Alternatively consumers can subclass this helper and override On*() 57 // Alternatively consumers can subclass this helper and override On*()
58 // methods to add their own logic/verification code. 58 // methods to add their own logic/verification code.
59 // 59 //
60 // See embedded_worker_instance_unittest.cc for example usages. 60 // See embedded_worker_instance_unittest.cc for example usages.
61 // 61 //
62 class EmbeddedWorkerTestHelper : public IPC::Sender, 62 class EmbeddedWorkerTestHelper : public IPC::Sender,
63 public IPC::Listener { 63 public IPC::Listener {
64 public: 64 public:
65 enum class Event { Activate }; 65 enum class Event { Install, Activate };
66 using FetchCallback = 66 using FetchCallback =
67 base::OnceCallback<void(ServiceWorkerStatusCode, 67 base::OnceCallback<void(ServiceWorkerStatusCode,
68 base::Time /* dispatch_event_time */)>; 68 base::Time /* dispatch_event_time */)>;
69 69
70 class MockEmbeddedWorkerInstanceClient 70 class MockEmbeddedWorkerInstanceClient
71 : public mojom::EmbeddedWorkerInstanceClient { 71 : public mojom::EmbeddedWorkerInstanceClient {
72 public: 72 public:
73 explicit MockEmbeddedWorkerInstanceClient( 73 explicit MockEmbeddedWorkerInstanceClient(
74 base::WeakPtr<EmbeddedWorkerTestHelper> helper); 74 base::WeakPtr<EmbeddedWorkerTestHelper> helper);
75 ~MockEmbeddedWorkerInstanceClient() override; 75 ~MockEmbeddedWorkerInstanceClient() override;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 // Register a mojo endpoint object derived from 116 // Register a mojo endpoint object derived from
117 // MockEmbeddedWorkerInstanceClient. 117 // MockEmbeddedWorkerInstanceClient.
118 void RegisterMockInstanceClient( 118 void RegisterMockInstanceClient(
119 std::unique_ptr<MockEmbeddedWorkerInstanceClient> client); 119 std::unique_ptr<MockEmbeddedWorkerInstanceClient> client);
120 120
121 template <typename MockType, typename... Args> 121 template <typename MockType, typename... Args>
122 MockType* CreateAndRegisterMockInstanceClient(Args&&... args); 122 MockType* CreateAndRegisterMockInstanceClient(Args&&... args);
123 123
124 // IPC sink for EmbeddedWorker messages. 124 // IPC sink for EmbeddedWorker messages.
125 IPC::TestSink* ipc_sink() { return &sink_; } 125 IPC::TestSink* ipc_sink() { return &sink_; }
126 // Inner IPC sink for script context messages sent via EmbeddedWorker.
127 IPC::TestSink* inner_ipc_sink() { return &inner_sink_; }
128 126
129 std::vector<Event>* dispatched_events() { return &events_; } 127 std::vector<Event>* dispatched_events() { return &events_; }
130 128
131 std::vector<std::unique_ptr<MockEmbeddedWorkerInstanceClient>>* 129 std::vector<std::unique_ptr<MockEmbeddedWorkerInstanceClient>>*
132 mock_instance_clients() { 130 mock_instance_clients() {
133 return &mock_instance_clients_; 131 return &mock_instance_clients_;
134 } 132 }
135 133
136 ServiceWorkerContextCore* context(); 134 ServiceWorkerContextCore* context();
137 ServiceWorkerContextWrapper* context_wrapper() { return wrapper_.get(); } 135 ServiceWorkerContextWrapper* context_wrapper() { return wrapper_.get(); }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 int64_t service_worker_version_id, 167 int64_t service_worker_version_id,
170 const GURL& scope, 168 const GURL& scope,
171 const GURL& script_url, 169 const GURL& script_url,
172 bool pause_after_download, 170 bool pause_after_download,
173 mojom::ServiceWorkerEventDispatcherRequest request, 171 mojom::ServiceWorkerEventDispatcherRequest request,
174 mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host); 172 mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host);
175 virtual void OnResumeAfterDownload(int embedded_worker_id); 173 virtual void OnResumeAfterDownload(int embedded_worker_id);
176 // StopWorker IPC handler routed through MockEmbeddedWorkerInstanceClient. 174 // StopWorker IPC handler routed through MockEmbeddedWorkerInstanceClient.
177 // This calls SimulateWorkerStopped() by default. 175 // This calls SimulateWorkerStopped() by default.
178 virtual void OnStopWorker(int embedded_worker_id); 176 virtual void OnStopWorker(int embedded_worker_id);
179 // The legacy IPC message handler. This passes the messages to their
180 // respective On*Event handler by default.
181 virtual bool OnMessageToWorker(int thread_id,
182 int embedded_worker_id,
183 const IPC::Message& message);
184 177
185 // On*Event handlers. Called by the default implementation of 178 // On*Event handlers. By default they just return success via
186 // OnMessageToWorker when events are sent to the embedded
187 // worker. By default they just return success via
188 // SimulateSendReplyToBrowser. 179 // SimulateSendReplyToBrowser.
189 virtual void OnActivateEvent( 180 virtual void OnActivateEvent(
190 mojom::ServiceWorkerEventDispatcher::DispatchActivateEventCallback 181 mojom::ServiceWorkerEventDispatcher::DispatchActivateEventCallback
191 callback); 182 callback);
192 virtual void OnBackgroundFetchAbortEvent( 183 virtual void OnBackgroundFetchAbortEvent(
193 const std::string& tag, 184 const std::string& tag,
194 mojom::ServiceWorkerEventDispatcher:: 185 mojom::ServiceWorkerEventDispatcher::
195 DispatchBackgroundFetchAbortEventCallback callback); 186 DispatchBackgroundFetchAbortEventCallback callback);
196 virtual void OnBackgroundFetchClickEvent( 187 virtual void OnBackgroundFetchClickEvent(
197 const std::string& tag, 188 const std::string& tag,
198 mojom::BackgroundFetchState state, 189 mojom::BackgroundFetchState state,
199 mojom::ServiceWorkerEventDispatcher:: 190 mojom::ServiceWorkerEventDispatcher::
200 DispatchBackgroundFetchClickEventCallback callback); 191 DispatchBackgroundFetchClickEventCallback callback);
201 virtual void OnBackgroundFetchFailEvent( 192 virtual void OnBackgroundFetchFailEvent(
202 const std::string& tag, 193 const std::string& tag,
203 const std::vector<BackgroundFetchSettledFetch>& fetches, 194 const std::vector<BackgroundFetchSettledFetch>& fetches,
204 mojom::ServiceWorkerEventDispatcher:: 195 mojom::ServiceWorkerEventDispatcher::
205 DispatchBackgroundFetchFailEventCallback callback); 196 DispatchBackgroundFetchFailEventCallback callback);
206 virtual void OnBackgroundFetchedEvent( 197 virtual void OnBackgroundFetchedEvent(
207 const std::string& tag, 198 const std::string& tag,
208 const std::vector<BackgroundFetchSettledFetch>& fetches, 199 const std::vector<BackgroundFetchSettledFetch>& fetches,
209 mojom::ServiceWorkerEventDispatcher:: 200 mojom::ServiceWorkerEventDispatcher::
210 DispatchBackgroundFetchedEventCallback callback); 201 DispatchBackgroundFetchedEventCallback callback);
211 virtual void OnExtendableMessageEvent( 202 virtual void OnExtendableMessageEvent(
212 mojom::ExtendableMessageEventPtr event, 203 mojom::ExtendableMessageEventPtr event,
213 mojom::ServiceWorkerEventDispatcher:: 204 mojom::ServiceWorkerEventDispatcher::
214 DispatchExtendableMessageEventCallback callback); 205 DispatchExtendableMessageEventCallback callback);
215 virtual void OnInstallEvent(int embedded_worker_id, int request_id); 206 virtual void OnInstallEvent(
207 mojom::ServiceWorkerInstallEventMethodsAssociatedPtrInfo client,
208 mojom::ServiceWorkerEventDispatcher::DispatchInstallEventCallback
209 callback);
216 virtual void OnFetchEvent( 210 virtual void OnFetchEvent(
217 int embedded_worker_id, 211 int embedded_worker_id,
218 int fetch_event_id, 212 int fetch_event_id,
219 const ServiceWorkerFetchRequest& request, 213 const ServiceWorkerFetchRequest& request,
220 mojom::FetchEventPreloadHandlePtr preload_handle, 214 mojom::FetchEventPreloadHandlePtr preload_handle,
221 mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, 215 mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
222 FetchCallback finish_callback); 216 FetchCallback finish_callback);
223 virtual void OnNotificationClickEvent( 217 virtual void OnNotificationClickEvent(
224 const std::string& notification_id, 218 const std::string& notification_id,
225 const PlatformNotificationData& notification_data, 219 const PlatformNotificationData& notification_data,
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 DispatchBackgroundFetchFailEventCallback callback); 281 DispatchBackgroundFetchFailEventCallback callback);
288 void OnBackgroundFetchedEventStub( 282 void OnBackgroundFetchedEventStub(
289 const std::string& tag, 283 const std::string& tag,
290 const std::vector<BackgroundFetchSettledFetch>& fetches, 284 const std::vector<BackgroundFetchSettledFetch>& fetches,
291 mojom::ServiceWorkerEventDispatcher:: 285 mojom::ServiceWorkerEventDispatcher::
292 DispatchBackgroundFetchedEventCallback callback); 286 DispatchBackgroundFetchedEventCallback callback);
293 void OnExtendableMessageEventStub( 287 void OnExtendableMessageEventStub(
294 mojom::ExtendableMessageEventPtr event, 288 mojom::ExtendableMessageEventPtr event,
295 mojom::ServiceWorkerEventDispatcher:: 289 mojom::ServiceWorkerEventDispatcher::
296 DispatchExtendableMessageEventCallback callback); 290 DispatchExtendableMessageEventCallback callback);
297 void OnInstallEventStub(int request_id); 291 void OnInstallEventStub(
292 mojom::ServiceWorkerInstallEventMethodsAssociatedPtrInfo client,
293 mojom::ServiceWorkerEventDispatcher::DispatchInstallEventCallback
294 callback);
298 void OnFetchEventStub( 295 void OnFetchEventStub(
299 int thread_id, 296 int thread_id,
300 int fetch_event_id, 297 int fetch_event_id,
301 const ServiceWorkerFetchRequest& request, 298 const ServiceWorkerFetchRequest& request,
302 mojom::FetchEventPreloadHandlePtr preload_handle, 299 mojom::FetchEventPreloadHandlePtr preload_handle,
303 mojom::ServiceWorkerFetchResponseCallbackPtr response_callback, 300 mojom::ServiceWorkerFetchResponseCallbackPtr response_callback,
304 FetchCallback finish_callback); 301 FetchCallback finish_callback);
305 void OnNotificationClickEventStub( 302 void OnNotificationClickEventStub(
306 const std::string& notification_id, 303 const std::string& notification_id,
307 const PlatformNotificationData& notification_data, 304 const PlatformNotificationData& notification_data,
(...skipping 15 matching lines...) Expand all
323 mojom::ServiceWorkerEventDispatcher::DispatchPaymentRequestEventCallback 320 mojom::ServiceWorkerEventDispatcher::DispatchPaymentRequestEventCallback
324 callback); 321 callback);
325 322
326 std::unique_ptr<TestBrowserContext> browser_context_; 323 std::unique_ptr<TestBrowserContext> browser_context_;
327 std::unique_ptr<MockRenderProcessHost> render_process_host_; 324 std::unique_ptr<MockRenderProcessHost> render_process_host_;
328 std::unique_ptr<MockRenderProcessHost> new_render_process_host_; 325 std::unique_ptr<MockRenderProcessHost> new_render_process_host_;
329 326
330 scoped_refptr<ServiceWorkerContextWrapper> wrapper_; 327 scoped_refptr<ServiceWorkerContextWrapper> wrapper_;
331 328
332 IPC::TestSink sink_; 329 IPC::TestSink sink_;
333 IPC::TestSink inner_sink_;
334 330
335 std::vector<std::unique_ptr<MockEmbeddedWorkerInstanceClient>> 331 std::vector<std::unique_ptr<MockEmbeddedWorkerInstanceClient>>
336 mock_instance_clients_; 332 mock_instance_clients_;
337 size_t mock_instance_clients_next_index_; 333 size_t mock_instance_clients_next_index_;
338 334
339 int next_thread_id_; 335 int next_thread_id_;
340 int next_provider_id_; 336 int next_provider_id_;
341 int mock_render_process_id_; 337 int mock_render_process_id_;
342 int new_mock_render_process_id_; 338 int new_mock_render_process_id_;
343 339
344 std::map<int /* process_id */, scoped_refptr<ServiceWorkerDispatcherHost>> 340 std::map<int /* process_id */, scoped_refptr<ServiceWorkerDispatcherHost>>
345 dispatcher_hosts_; 341 dispatcher_hosts_;
346 342
347 std::map<int, int64_t> embedded_worker_id_service_worker_version_id_map_; 343 std::map<int, int64_t> embedded_worker_id_service_worker_version_id_map_;
348 std::map<int /* thread_id */, int /* embedded_worker_id */> 344 std::map<int /* thread_id */, int /* embedded_worker_id */>
349 thread_id_embedded_worker_id_map_; 345 thread_id_embedded_worker_id_map_;
350 346
351 std::map< 347 std::map<
352 int /* embedded_worker_id */, 348 int /* embedded_worker_id */,
353 mojom::EmbeddedWorkerInstanceHostAssociatedPtr /* instance_host_ptr */> 349 mojom::EmbeddedWorkerInstanceHostAssociatedPtr /* instance_host_ptr */>
354 embedded_worker_id_instance_host_ptr_map_; 350 embedded_worker_id_instance_host_ptr_map_;
355 351
356 // Updated each time MessageToWorker message is received.
357 int current_embedded_worker_id_;
358
359 std::vector<Event> events_; 352 std::vector<Event> events_;
360 353
361 base::WeakPtrFactory<EmbeddedWorkerTestHelper> weak_factory_; 354 base::WeakPtrFactory<EmbeddedWorkerTestHelper> weak_factory_;
362 355
363 DISALLOW_COPY_AND_ASSIGN(EmbeddedWorkerTestHelper); 356 DISALLOW_COPY_AND_ASSIGN(EmbeddedWorkerTestHelper);
364 }; 357 };
365 358
366 template <typename MockType, typename... Args> 359 template <typename MockType, typename... Args>
367 MockType* EmbeddedWorkerTestHelper::CreateAndRegisterMockInstanceClient( 360 MockType* EmbeddedWorkerTestHelper::CreateAndRegisterMockInstanceClient(
368 Args&&... args) { 361 Args&&... args) {
369 std::unique_ptr<MockType> mock = 362 std::unique_ptr<MockType> mock =
370 base::MakeUnique<MockType>(std::forward<Args>(args)...); 363 base::MakeUnique<MockType>(std::forward<Args>(args)...);
371 MockType* mock_rawptr = mock.get(); 364 MockType* mock_rawptr = mock.get();
372 RegisterMockInstanceClient(std::move(mock)); 365 RegisterMockInstanceClient(std::move(mock));
373 return mock_rawptr; 366 return mock_rawptr;
374 } 367 }
375 368
376 } // namespace content 369 } // namespace content
377 370
378 #endif // CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_ 371 #endif // CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_
OLDNEW
« no previous file with comments | « no previous file | content/browser/service_worker/embedded_worker_test_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698