| 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 <memory> | 8 #include <memory> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| 11 #include <vector> | 11 #include <vector> |
| 12 | 12 |
| 13 #include "base/atomic_sequence_num.h" | 13 #include "base/atomic_sequence_num.h" |
| 14 #include "base/bind.h" | 14 #include "base/bind.h" |
| 15 #include "base/memory/ptr_util.h" | 15 #include "base/memory/ptr_util.h" |
| 16 #include "base/threading/thread_task_runner_handle.h" | 16 #include "base/threading/thread_task_runner_handle.h" |
| 17 #include "base/time/time.h" | 17 #include "base/time/time.h" |
| 18 #include "content/browser/service_worker/embedded_worker_instance.h" | 18 #include "content/browser/service_worker/embedded_worker_instance.h" |
| 19 #include "content/browser/service_worker/embedded_worker_registry.h" | 19 #include "content/browser/service_worker/embedded_worker_registry.h" |
| 20 #include "content/browser/service_worker/embedded_worker_status.h" | 20 #include "content/browser/service_worker/embedded_worker_status.h" |
| 21 #include "content/browser/service_worker/service_worker_context_core.h" | 21 #include "content/browser/service_worker/service_worker_context_core.h" |
| 22 #include "content/browser/service_worker/service_worker_context_wrapper.h" | 22 #include "content/browser/service_worker/service_worker_context_wrapper.h" |
| 23 #include "content/browser/service_worker/service_worker_dispatcher_host.h" | 23 #include "content/browser/service_worker/service_worker_dispatcher_host.h" |
| 24 #include "content/common/background_fetch/background_fetch_types.h" |
| 24 #include "content/common/service_worker/embedded_worker_messages.h" | 25 #include "content/common/service_worker/embedded_worker_messages.h" |
| 25 #include "content/common/service_worker/embedded_worker_start_params.h" | 26 #include "content/common/service_worker/embedded_worker_start_params.h" |
| 26 #include "content/common/service_worker/service_worker_messages.h" | 27 #include "content/common/service_worker/service_worker_messages.h" |
| 27 #include "content/common/service_worker/service_worker_utils.h" | 28 #include "content/common/service_worker/service_worker_utils.h" |
| 28 #include "content/public/common/push_event_payload.h" | 29 #include "content/public/common/push_event_payload.h" |
| 29 #include "content/public/test/mock_render_process_host.h" | 30 #include "content/public/test/mock_render_process_host.h" |
| 30 #include "content/public/test/test_browser_context.h" | 31 #include "content/public/test/test_browser_context.h" |
| 31 #include "mojo/public/cpp/bindings/interface_request.h" | 32 #include "mojo/public/cpp/bindings/interface_request.h" |
| 32 #include "mojo/public/cpp/bindings/strong_binding.h" | 33 #include "mojo/public/cpp/bindings/strong_binding.h" |
| 33 #include "services/service_manager/public/cpp/interface_provider.h" | 34 #include "services/service_manager/public/cpp/interface_provider.h" |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 | 168 |
| 168 void DispatchBackgroundFetchClickEvent( | 169 void DispatchBackgroundFetchClickEvent( |
| 169 const std::string& tag, | 170 const std::string& tag, |
| 170 mojom::BackgroundFetchState state, | 171 mojom::BackgroundFetchState state, |
| 171 const DispatchBackgroundFetchClickEventCallback& callback) override { | 172 const DispatchBackgroundFetchClickEventCallback& callback) override { |
| 172 if (!helper_) | 173 if (!helper_) |
| 173 return; | 174 return; |
| 174 helper_->OnBackgroundFetchClickEventStub(tag, state, callback); | 175 helper_->OnBackgroundFetchClickEventStub(tag, state, callback); |
| 175 } | 176 } |
| 176 | 177 |
| 178 void DispatchBackgroundFetchFailEvent( |
| 179 const std::string& tag, |
| 180 const std::vector<BackgroundFetchSettledFetch>& fetches, |
| 181 const DispatchBackgroundFetchFailEventCallback& callback) override { |
| 182 if (!helper_) |
| 183 return; |
| 184 helper_->OnBackgroundFetchFailEventStub(tag, fetches, callback); |
| 185 } |
| 186 |
| 187 void DispatchBackgroundFetchedEvent( |
| 188 const std::string& tag, |
| 189 const std::vector<BackgroundFetchSettledFetch>& fetches, |
| 190 const DispatchBackgroundFetchedEventCallback& callback) override { |
| 191 if (!helper_) |
| 192 return; |
| 193 helper_->OnBackgroundFetchedEventStub(tag, fetches, callback); |
| 194 } |
| 195 |
| 177 void DispatchFetchEvent(int fetch_event_id, | 196 void DispatchFetchEvent(int fetch_event_id, |
| 178 const ServiceWorkerFetchRequest& request, | 197 const ServiceWorkerFetchRequest& request, |
| 179 mojom::FetchEventPreloadHandlePtr preload_handle, | 198 mojom::FetchEventPreloadHandlePtr preload_handle, |
| 180 const DispatchFetchEventCallback& callback) override { | 199 const DispatchFetchEventCallback& callback) override { |
| 181 if (!helper_) | 200 if (!helper_) |
| 182 return; | 201 return; |
| 183 helper_->OnFetchEventStub(thread_id_, fetch_event_id, request, | 202 helper_->OnFetchEventStub(thread_id_, fetch_event_id, request, |
| 184 std::move(preload_handle), callback); | 203 std::move(preload_handle), callback); |
| 185 } | 204 } |
| 186 | 205 |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 405 } | 424 } |
| 406 | 425 |
| 407 void EmbeddedWorkerTestHelper::OnBackgroundFetchClickEvent( | 426 void EmbeddedWorkerTestHelper::OnBackgroundFetchClickEvent( |
| 408 const std::string& tag, | 427 const std::string& tag, |
| 409 mojom::BackgroundFetchState state, | 428 mojom::BackgroundFetchState state, |
| 410 const mojom::ServiceWorkerEventDispatcher:: | 429 const mojom::ServiceWorkerEventDispatcher:: |
| 411 DispatchBackgroundFetchClickEventCallback& callback) { | 430 DispatchBackgroundFetchClickEventCallback& callback) { |
| 412 callback.Run(SERVICE_WORKER_OK, base::Time::Now()); | 431 callback.Run(SERVICE_WORKER_OK, base::Time::Now()); |
| 413 } | 432 } |
| 414 | 433 |
| 434 void EmbeddedWorkerTestHelper::OnBackgroundFetchFailEvent( |
| 435 const std::string& tag, |
| 436 const std::vector<BackgroundFetchSettledFetch>& fetches, |
| 437 const mojom::ServiceWorkerEventDispatcher:: |
| 438 DispatchBackgroundFetchFailEventCallback& callback) { |
| 439 callback.Run(SERVICE_WORKER_OK, base::Time::Now()); |
| 440 } |
| 441 |
| 442 void EmbeddedWorkerTestHelper::OnBackgroundFetchedEvent( |
| 443 const std::string& tag, |
| 444 const std::vector<BackgroundFetchSettledFetch>& fetches, |
| 445 const mojom::ServiceWorkerEventDispatcher:: |
| 446 DispatchBackgroundFetchedEventCallback& callback) { |
| 447 callback.Run(SERVICE_WORKER_OK, base::Time::Now()); |
| 448 } |
| 449 |
| 415 void EmbeddedWorkerTestHelper::OnExtendableMessageEvent( | 450 void EmbeddedWorkerTestHelper::OnExtendableMessageEvent( |
| 416 mojom::ExtendableMessageEventPtr event, | 451 mojom::ExtendableMessageEventPtr event, |
| 417 const mojom::ServiceWorkerEventDispatcher:: | 452 const mojom::ServiceWorkerEventDispatcher:: |
| 418 DispatchExtendableMessageEventCallback& callback) { | 453 DispatchExtendableMessageEventCallback& callback) { |
| 419 callback.Run(SERVICE_WORKER_OK, base::Time::Now()); | 454 callback.Run(SERVICE_WORKER_OK, base::Time::Now()); |
| 420 } | 455 } |
| 421 | 456 |
| 422 void EmbeddedWorkerTestHelper::OnInstallEvent(int embedded_worker_id, | 457 void EmbeddedWorkerTestHelper::OnInstallEvent(int embedded_worker_id, |
| 423 int request_id) { | 458 int request_id) { |
| 424 // The installing worker may have been doomed and terminated. | 459 // The installing worker may have been doomed and terminated. |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 621 const std::string& tag, | 656 const std::string& tag, |
| 622 mojom::BackgroundFetchState state, | 657 mojom::BackgroundFetchState state, |
| 623 const mojom::ServiceWorkerEventDispatcher:: | 658 const mojom::ServiceWorkerEventDispatcher:: |
| 624 DispatchBackgroundFetchClickEventCallback& callback) { | 659 DispatchBackgroundFetchClickEventCallback& callback) { |
| 625 base::ThreadTaskRunnerHandle::Get()->PostTask( | 660 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 626 FROM_HERE, | 661 FROM_HERE, |
| 627 base::Bind(&EmbeddedWorkerTestHelper::OnBackgroundFetchClickEvent, | 662 base::Bind(&EmbeddedWorkerTestHelper::OnBackgroundFetchClickEvent, |
| 628 AsWeakPtr(), tag, state, callback)); | 663 AsWeakPtr(), tag, state, callback)); |
| 629 } | 664 } |
| 630 | 665 |
| 666 void EmbeddedWorkerTestHelper::OnBackgroundFetchFailEventStub( |
| 667 const std::string& tag, |
| 668 const std::vector<BackgroundFetchSettledFetch>& fetches, |
| 669 const mojom::ServiceWorkerEventDispatcher:: |
| 670 DispatchBackgroundFetchFailEventCallback& callback) { |
| 671 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 672 FROM_HERE, |
| 673 base::Bind(&EmbeddedWorkerTestHelper::OnBackgroundFetchFailEvent, |
| 674 AsWeakPtr(), tag, fetches, callback)); |
| 675 } |
| 676 |
| 677 void EmbeddedWorkerTestHelper::OnBackgroundFetchedEventStub( |
| 678 const std::string& tag, |
| 679 const std::vector<BackgroundFetchSettledFetch>& fetches, |
| 680 const mojom::ServiceWorkerEventDispatcher:: |
| 681 DispatchBackgroundFetchedEventCallback& callback) { |
| 682 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 683 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnBackgroundFetchedEvent, |
| 684 AsWeakPtr(), tag, fetches, callback)); |
| 685 } |
| 686 |
| 631 void EmbeddedWorkerTestHelper::OnExtendableMessageEventStub( | 687 void EmbeddedWorkerTestHelper::OnExtendableMessageEventStub( |
| 632 mojom::ExtendableMessageEventPtr event, | 688 mojom::ExtendableMessageEventPtr event, |
| 633 const mojom::ServiceWorkerEventDispatcher:: | 689 const mojom::ServiceWorkerEventDispatcher:: |
| 634 DispatchExtendableMessageEventCallback& callback) { | 690 DispatchExtendableMessageEventCallback& callback) { |
| 635 base::ThreadTaskRunnerHandle::Get()->PostTask( | 691 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 636 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnExtendableMessageEvent, | 692 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnExtendableMessageEvent, |
| 637 AsWeakPtr(), base::Passed(&event), callback)); | 693 AsWeakPtr(), base::Passed(&event), callback)); |
| 638 } | 694 } |
| 639 | 695 |
| 640 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) { | 696 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) { |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 719 service_manager::InterfaceProviderSpec()); | 775 service_manager::InterfaceProviderSpec()); |
| 720 | 776 |
| 721 std::unique_ptr<service_manager::InterfaceProvider> remote_interfaces( | 777 std::unique_ptr<service_manager::InterfaceProvider> remote_interfaces( |
| 722 new service_manager::InterfaceProvider); | 778 new service_manager::InterfaceProvider); |
| 723 remote_interfaces->Bind(std::move(interfaces)); | 779 remote_interfaces->Bind(std::move(interfaces)); |
| 724 rph->SetRemoteInterfaces(std::move(remote_interfaces)); | 780 rph->SetRemoteInterfaces(std::move(remote_interfaces)); |
| 725 return registry; | 781 return registry; |
| 726 } | 782 } |
| 727 | 783 |
| 728 } // namespace content | 784 } // namespace content |
| OLD | NEW |