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 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 } | 492 } |
487 | 493 |
488 void EmbeddedWorkerTestHelper::OnActivateEventStub(int request_id) { | 494 void EmbeddedWorkerTestHelper::OnActivateEventStub(int request_id) { |
489 base::ThreadTaskRunnerHandle::Get()->PostTask( | 495 base::ThreadTaskRunnerHandle::Get()->PostTask( |
490 FROM_HERE, | 496 FROM_HERE, |
491 base::Bind(&EmbeddedWorkerTestHelper::OnActivateEvent, AsWeakPtr(), | 497 base::Bind(&EmbeddedWorkerTestHelper::OnActivateEvent, AsWeakPtr(), |
492 current_embedded_worker_id_, request_id)); | 498 current_embedded_worker_id_, request_id)); |
493 } | 499 } |
494 | 500 |
495 void EmbeddedWorkerTestHelper::OnExtendableMessageEventStub( | 501 void EmbeddedWorkerTestHelper::OnExtendableMessageEventStub( |
496 int request_id, | 502 mojom::ExtendableMessageEventPtr event, |
497 const ServiceWorkerMsg_ExtendableMessageEvent_Params& params) { | 503 const mojom::ServiceWorkerEventDispatcher:: |
| 504 DispatchExtendableMessageEventCallback& callback) { |
498 base::ThreadTaskRunnerHandle::Get()->PostTask( | 505 base::ThreadTaskRunnerHandle::Get()->PostTask( |
499 FROM_HERE, | 506 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnExtendableMessageEvent, |
500 base::Bind(&EmbeddedWorkerTestHelper::OnExtendableMessageEvent, | 507 AsWeakPtr(), base::Passed(&event), callback)); |
501 AsWeakPtr(), current_embedded_worker_id_, request_id)); | |
502 } | 508 } |
503 | 509 |
504 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) { | 510 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) { |
505 base::ThreadTaskRunnerHandle::Get()->PostTask( | 511 base::ThreadTaskRunnerHandle::Get()->PostTask( |
506 FROM_HERE, | 512 FROM_HERE, |
507 base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, AsWeakPtr(), | 513 base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, AsWeakPtr(), |
508 current_embedded_worker_id_, request_id)); | 514 current_embedded_worker_id_, request_id)); |
509 } | 515 } |
510 | 516 |
511 void EmbeddedWorkerTestHelper::OnFetchEventStub( | 517 void EmbeddedWorkerTestHelper::OnFetchEventStub( |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
558 service_manager::InterfaceProviderSpec()); | 564 service_manager::InterfaceProviderSpec()); |
559 | 565 |
560 std::unique_ptr<service_manager::InterfaceProvider> remote_interfaces( | 566 std::unique_ptr<service_manager::InterfaceProvider> remote_interfaces( |
561 new service_manager::InterfaceProvider); | 567 new service_manager::InterfaceProvider); |
562 remote_interfaces->Bind(std::move(interfaces)); | 568 remote_interfaces->Bind(std::move(interfaces)); |
563 rph->SetRemoteInterfaces(std::move(remote_interfaces)); | 569 rph->SetRemoteInterfaces(std::move(remote_interfaces)); |
564 return registry; | 570 return registry; |
565 } | 571 } |
566 | 572 |
567 } // namespace content | 573 } // namespace content |
OLD | NEW |