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 #include "content/browser/service_worker/embedded_worker_test_helper.h" | 5 #include "content/browser/service_worker/embedded_worker_test_helper.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 std::move(preload_handle), callback); | 179 std::move(preload_handle), callback); |
180 } | 180 } |
181 | 181 |
182 void DispatchSyncEvent( | 182 void DispatchSyncEvent( |
183 const std::string& tag, | 183 const std::string& tag, |
184 blink::mojom::BackgroundSyncEventLastChance last_chance, | 184 blink::mojom::BackgroundSyncEventLastChance last_chance, |
185 const DispatchSyncEventCallback& callback) override { | 185 const DispatchSyncEventCallback& callback) override { |
186 NOTIMPLEMENTED(); | 186 NOTIMPLEMENTED(); |
187 } | 187 } |
188 | 188 |
| 189 void DispatchExtendableMessageEvent( |
| 190 mojom::ExtendableMessageEventPtr event, |
| 191 const DispatchExtendableMessageEventCallback& callback) override { |
| 192 if (!helper_) |
| 193 return; |
| 194 helper_->OnExtendableMessageEventStub(std::move(event), callback); |
| 195 } |
| 196 |
189 private: | 197 private: |
190 base::WeakPtr<EmbeddedWorkerTestHelper> helper_; | 198 base::WeakPtr<EmbeddedWorkerTestHelper> helper_; |
191 const int thread_id_; | 199 const int thread_id_; |
192 }; | 200 }; |
193 | 201 |
194 EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper( | 202 EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper( |
195 const base::FilePath& user_data_directory) | 203 const base::FilePath& user_data_directory) |
196 : browser_context_(new TestBrowserContext), | 204 : browser_context_(new TestBrowserContext), |
197 render_process_host_(new MockRenderProcessHost(browser_context_.get())), | 205 render_process_host_(new MockRenderProcessHost(browser_context_.get())), |
198 new_render_process_host_( | 206 new_render_process_host_( |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
297 SimulateWorkerStopped(embedded_worker_id); | 305 SimulateWorkerStopped(embedded_worker_id); |
298 } | 306 } |
299 | 307 |
300 bool EmbeddedWorkerTestHelper::OnMessageToWorker(int thread_id, | 308 bool EmbeddedWorkerTestHelper::OnMessageToWorker(int thread_id, |
301 int embedded_worker_id, | 309 int embedded_worker_id, |
302 const IPC::Message& message) { | 310 const IPC::Message& message) { |
303 bool handled = true; | 311 bool handled = true; |
304 current_embedded_worker_id_ = embedded_worker_id; | 312 current_embedded_worker_id_ = embedded_worker_id; |
305 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerTestHelper, message) | 313 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerTestHelper, message) |
306 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEventStub) | 314 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEventStub) |
307 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ExtendableMessageEvent, | |
308 OnExtendableMessageEventStub) | |
309 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEventStub) | 315 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEventStub) |
310 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEventStub) | 316 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEventStub) |
311 IPC_MESSAGE_UNHANDLED(handled = false) | 317 IPC_MESSAGE_UNHANDLED(handled = false) |
312 IPC_END_MESSAGE_MAP() | 318 IPC_END_MESSAGE_MAP() |
313 // Record all messages directed to inner script context. | 319 // Record all messages directed to inner script context. |
314 inner_sink_.OnMessageReceived(message); | 320 inner_sink_.OnMessageReceived(message); |
315 return handled; | 321 return handled; |
316 } | 322 } |
317 | 323 |
318 void EmbeddedWorkerTestHelper::OnSetupMojo( | 324 void EmbeddedWorkerTestHelper::OnSetupMojo( |
319 int thread_id, | 325 int thread_id, |
320 mojom::ServiceWorkerEventDispatcherRequest dispatcher_request) { | 326 mojom::ServiceWorkerEventDispatcherRequest dispatcher_request) { |
321 MockServiceWorkerEventDispatcher::Create(AsWeakPtr(), thread_id, | 327 MockServiceWorkerEventDispatcher::Create(AsWeakPtr(), thread_id, |
322 std::move(dispatcher_request)); | 328 std::move(dispatcher_request)); |
323 } | 329 } |
324 | 330 |
325 void EmbeddedWorkerTestHelper::OnActivateEvent(int embedded_worker_id, | 331 void EmbeddedWorkerTestHelper::OnActivateEvent(int embedded_worker_id, |
326 int request_id) { | 332 int request_id) { |
327 SimulateSend(new ServiceWorkerHostMsg_ActivateEventFinished( | 333 SimulateSend(new ServiceWorkerHostMsg_ActivateEventFinished( |
328 embedded_worker_id, request_id, | 334 embedded_worker_id, request_id, |
329 blink::WebServiceWorkerEventResultCompleted, base::Time::Now())); | 335 blink::WebServiceWorkerEventResultCompleted, base::Time::Now())); |
330 } | 336 } |
331 | 337 |
332 void EmbeddedWorkerTestHelper::OnExtendableMessageEvent(int embedded_worker_id, | 338 void EmbeddedWorkerTestHelper::OnExtendableMessageEvent( |
333 int request_id) { | 339 mojom::ExtendableMessageEventPtr event, |
334 SimulateSend(new ServiceWorkerHostMsg_ExtendableMessageEventFinished( | 340 const mojom::ServiceWorkerEventDispatcher:: |
335 embedded_worker_id, request_id, | 341 DispatchExtendableMessageEventCallback& callback) { |
336 blink::WebServiceWorkerEventResultCompleted, base::Time::Now())); | 342 callback.Run(SERVICE_WORKER_OK, base::Time::Now()); |
337 } | 343 } |
338 | 344 |
339 void EmbeddedWorkerTestHelper::OnInstallEvent(int embedded_worker_id, | 345 void EmbeddedWorkerTestHelper::OnInstallEvent(int embedded_worker_id, |
340 int request_id) { | 346 int request_id) { |
341 // The installing worker may have been doomed and terminated. | 347 // The installing worker may have been doomed and terminated. |
342 if (!registry()->GetWorker(embedded_worker_id)) | 348 if (!registry()->GetWorker(embedded_worker_id)) |
343 return; | 349 return; |
344 SimulateSend(new ServiceWorkerHostMsg_InstallEventFinished( | 350 SimulateSend(new ServiceWorkerHostMsg_InstallEventFinished( |
345 embedded_worker_id, request_id, | 351 embedded_worker_id, request_id, |
346 blink::WebServiceWorkerEventResultCompleted, true, base::Time::Now())); | 352 blink::WebServiceWorkerEventResultCompleted, true, base::Time::Now())); |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
488 } | 494 } |
489 | 495 |
490 void EmbeddedWorkerTestHelper::OnActivateEventStub(int request_id) { | 496 void EmbeddedWorkerTestHelper::OnActivateEventStub(int request_id) { |
491 base::ThreadTaskRunnerHandle::Get()->PostTask( | 497 base::ThreadTaskRunnerHandle::Get()->PostTask( |
492 FROM_HERE, | 498 FROM_HERE, |
493 base::Bind(&EmbeddedWorkerTestHelper::OnActivateEvent, AsWeakPtr(), | 499 base::Bind(&EmbeddedWorkerTestHelper::OnActivateEvent, AsWeakPtr(), |
494 current_embedded_worker_id_, request_id)); | 500 current_embedded_worker_id_, request_id)); |
495 } | 501 } |
496 | 502 |
497 void EmbeddedWorkerTestHelper::OnExtendableMessageEventStub( | 503 void EmbeddedWorkerTestHelper::OnExtendableMessageEventStub( |
498 int request_id, | 504 mojom::ExtendableMessageEventPtr event, |
499 const ServiceWorkerMsg_ExtendableMessageEvent_Params& params) { | 505 const mojom::ServiceWorkerEventDispatcher:: |
| 506 DispatchExtendableMessageEventCallback& callback) { |
500 base::ThreadTaskRunnerHandle::Get()->PostTask( | 507 base::ThreadTaskRunnerHandle::Get()->PostTask( |
501 FROM_HERE, | 508 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnExtendableMessageEvent, |
502 base::Bind(&EmbeddedWorkerTestHelper::OnExtendableMessageEvent, | 509 AsWeakPtr(), base::Passed(&event), callback)); |
503 AsWeakPtr(), current_embedded_worker_id_, request_id)); | |
504 } | 510 } |
505 | 511 |
506 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) { | 512 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) { |
507 base::ThreadTaskRunnerHandle::Get()->PostTask( | 513 base::ThreadTaskRunnerHandle::Get()->PostTask( |
508 FROM_HERE, | 514 FROM_HERE, |
509 base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, AsWeakPtr(), | 515 base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, AsWeakPtr(), |
510 current_embedded_worker_id_, request_id)); | 516 current_embedded_worker_id_, request_id)); |
511 } | 517 } |
512 | 518 |
513 void EmbeddedWorkerTestHelper::OnFetchEventStub( | 519 void EmbeddedWorkerTestHelper::OnFetchEventStub( |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
560 service_manager::InterfaceProviderSpec()); | 566 service_manager::InterfaceProviderSpec()); |
561 | 567 |
562 std::unique_ptr<service_manager::InterfaceProvider> remote_interfaces( | 568 std::unique_ptr<service_manager::InterfaceProvider> remote_interfaces( |
563 new service_manager::InterfaceProvider); | 569 new service_manager::InterfaceProvider); |
564 remote_interfaces->Bind(std::move(interfaces)); | 570 remote_interfaces->Bind(std::move(interfaces)); |
565 rph->SetRemoteInterfaces(std::move(remote_interfaces)); | 571 rph->SetRemoteInterfaces(std::move(remote_interfaces)); |
566 return registry; | 572 return registry; |
567 } | 573 } |
568 | 574 |
569 } // namespace content | 575 } // namespace content |
OLD | NEW |