Chromium Code Reviews| 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> |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 143 std::move(request)); | 143 std::move(request)); |
| 144 } | 144 } |
| 145 | 145 |
| 146 MockServiceWorkerEventDispatcher( | 146 MockServiceWorkerEventDispatcher( |
| 147 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, | 147 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, |
| 148 int thread_id) | 148 int thread_id) |
| 149 : helper_(helper), thread_id_(thread_id) {} | 149 : helper_(helper), thread_id_(thread_id) {} |
| 150 | 150 |
| 151 ~MockServiceWorkerEventDispatcher() override {} | 151 ~MockServiceWorkerEventDispatcher() override {} |
| 152 | 152 |
| 153 void DispatchInstallEvent( | |
| 154 const DispatchInstallEventCallback& callback) override { | |
| 155 if (!helper_) | |
| 156 return; | |
| 157 helper_->OnInstallEventStub(callback); | |
| 158 } | |
| 159 | |
| 153 void DispatchActivateEvent( | 160 void DispatchActivateEvent( |
| 154 const DispatchActivateEventCallback& callback) override { | 161 const DispatchActivateEventCallback& callback) override { |
| 155 if (!helper_) | 162 if (!helper_) |
| 156 return; | 163 return; |
| 157 helper_->OnActivateEventStub(callback); | 164 helper_->OnActivateEventStub(callback); |
| 158 } | 165 } |
| 159 | 166 |
| 160 void DispatchFetchEvent(int fetch_event_id, | 167 void DispatchFetchEvent(int fetch_event_id, |
| 161 const ServiceWorkerFetchRequest& request, | 168 const ServiceWorkerFetchRequest& request, |
| 162 mojom::FetchEventPreloadHandlePtr preload_handle, | 169 mojom::FetchEventPreloadHandlePtr preload_handle, |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 354 void EmbeddedWorkerTestHelper::OnStopWorker( | 361 void EmbeddedWorkerTestHelper::OnStopWorker( |
| 355 const mojom::EmbeddedWorkerInstanceClient::StopWorkerCallback& callback) { | 362 const mojom::EmbeddedWorkerInstanceClient::StopWorkerCallback& callback) { |
| 356 // By default just notify the sender that the worker is stopped. | 363 // By default just notify the sender that the worker is stopped. |
| 357 callback.Run(); | 364 callback.Run(); |
| 358 } | 365 } |
| 359 | 366 |
| 360 bool EmbeddedWorkerTestHelper::OnMessageToWorker(int thread_id, | 367 bool EmbeddedWorkerTestHelper::OnMessageToWorker(int thread_id, |
| 361 int embedded_worker_id, | 368 int embedded_worker_id, |
| 362 const IPC::Message& message) { | 369 const IPC::Message& message) { |
| 363 bool handled = true; | 370 bool handled = true; |
| 364 current_embedded_worker_id_ = embedded_worker_id; | |
| 365 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerTestHelper, message) | |
| 366 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEventStub) | |
| 367 IPC_MESSAGE_UNHANDLED(handled = false) | |
| 368 IPC_END_MESSAGE_MAP() | |
| 369 // Record all messages directed to inner script context. | 371 // Record all messages directed to inner script context. |
| 370 inner_sink_.OnMessageReceived(message); | 372 inner_sink_.OnMessageReceived(message); |
| 371 return handled; | 373 return handled; |
| 372 } | 374 } |
| 373 | 375 |
| 374 void EmbeddedWorkerTestHelper::OnActivateEvent( | 376 void EmbeddedWorkerTestHelper::OnActivateEvent( |
| 375 const mojom::ServiceWorkerEventDispatcher::DispatchActivateEventCallback& | 377 const mojom::ServiceWorkerEventDispatcher::DispatchActivateEventCallback& |
| 376 callback) { | 378 callback) { |
| 377 dispatched_events()->push_back(Event::Activate); | 379 dispatched_events()->push_back(Event::Activate); |
| 378 callback.Run(SERVICE_WORKER_OK, base::Time::Now()); | 380 callback.Run(SERVICE_WORKER_OK, base::Time::Now()); |
| 379 } | 381 } |
| 380 | 382 |
| 381 void EmbeddedWorkerTestHelper::OnExtendableMessageEvent( | 383 void EmbeddedWorkerTestHelper::OnExtendableMessageEvent( |
| 382 mojom::ExtendableMessageEventPtr event, | 384 mojom::ExtendableMessageEventPtr event, |
| 383 const mojom::ServiceWorkerEventDispatcher:: | 385 const mojom::ServiceWorkerEventDispatcher:: |
| 384 DispatchExtendableMessageEventCallback& callback) { | 386 DispatchExtendableMessageEventCallback& callback) { |
| 385 callback.Run(SERVICE_WORKER_OK, base::Time::Now()); | 387 callback.Run(SERVICE_WORKER_OK, base::Time::Now()); |
| 386 } | 388 } |
| 387 | 389 |
| 388 void EmbeddedWorkerTestHelper::OnInstallEvent(int embedded_worker_id, | 390 void EmbeddedWorkerTestHelper::OnInstallEvent( |
| 389 int request_id) { | 391 const mojom::ServiceWorkerEventDispatcher::DispatchInstallEventCallback& |
| 390 // The installing worker may have been doomed and terminated. | 392 callback) { |
| 391 if (!registry()->GetWorker(embedded_worker_id)) | 393 dispatched_events()->push_back(Event::Install); |
| 392 return; | 394 callback.Run(SERVICE_WORKER_OK, true, base::Time::Now()); |
|
falken
2017/03/14 08:49:26
true /* has_fetch_handler */
xiaofengzhang
2017/04/01 02:27:21
Done.
| |
| 393 SimulateSend(new ServiceWorkerHostMsg_InstallEventFinished( | |
| 394 embedded_worker_id, request_id, | |
| 395 blink::WebServiceWorkerEventResultCompleted, true, base::Time::Now())); | |
| 396 } | 395 } |
| 397 | 396 |
| 398 void EmbeddedWorkerTestHelper::OnFetchEvent( | 397 void EmbeddedWorkerTestHelper::OnFetchEvent( |
| 399 int embedded_worker_id, | 398 int embedded_worker_id, |
| 400 int fetch_event_id, | 399 int fetch_event_id, |
| 401 const ServiceWorkerFetchRequest& request, | 400 const ServiceWorkerFetchRequest& request, |
| 402 mojom::FetchEventPreloadHandlePtr preload_handle, | 401 mojom::FetchEventPreloadHandlePtr preload_handle, |
| 403 const FetchCallback& callback) { | 402 const FetchCallback& callback) { |
| 404 SimulateSend(new ServiceWorkerHostMsg_FetchEventResponse( | 403 SimulateSend(new ServiceWorkerHostMsg_FetchEventResponse( |
| 405 embedded_worker_id, fetch_event_id, | 404 embedded_worker_id, fetch_event_id, |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 572 | 571 |
| 573 void EmbeddedWorkerTestHelper::OnExtendableMessageEventStub( | 572 void EmbeddedWorkerTestHelper::OnExtendableMessageEventStub( |
| 574 mojom::ExtendableMessageEventPtr event, | 573 mojom::ExtendableMessageEventPtr event, |
| 575 const mojom::ServiceWorkerEventDispatcher:: | 574 const mojom::ServiceWorkerEventDispatcher:: |
| 576 DispatchExtendableMessageEventCallback& callback) { | 575 DispatchExtendableMessageEventCallback& callback) { |
| 577 base::ThreadTaskRunnerHandle::Get()->PostTask( | 576 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 578 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnExtendableMessageEvent, | 577 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnExtendableMessageEvent, |
| 579 AsWeakPtr(), base::Passed(&event), callback)); | 578 AsWeakPtr(), base::Passed(&event), callback)); |
| 580 } | 579 } |
| 581 | 580 |
| 582 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) { | 581 void EmbeddedWorkerTestHelper::OnInstallEventStub( |
| 582 const mojom::ServiceWorkerEventDispatcher::DispatchInstallEventCallback& | |
| 583 callback) { | |
| 583 base::ThreadTaskRunnerHandle::Get()->PostTask( | 584 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 584 FROM_HERE, | 585 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, |
| 585 base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, AsWeakPtr(), | 586 AsWeakPtr(), callback)); |
| 586 current_embedded_worker_id_, request_id)); | |
| 587 } | 587 } |
| 588 | 588 |
| 589 void EmbeddedWorkerTestHelper::OnFetchEventStub( | 589 void EmbeddedWorkerTestHelper::OnFetchEventStub( |
| 590 int thread_id, | 590 int thread_id, |
| 591 int fetch_event_id, | 591 int fetch_event_id, |
| 592 const ServiceWorkerFetchRequest& request, | 592 const ServiceWorkerFetchRequest& request, |
| 593 mojom::FetchEventPreloadHandlePtr preload_handle, | 593 mojom::FetchEventPreloadHandlePtr preload_handle, |
| 594 const FetchCallback& callback) { | 594 const FetchCallback& callback) { |
| 595 base::ThreadTaskRunnerHandle::Get()->PostTask( | 595 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 596 FROM_HERE, | 596 FROM_HERE, |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 661 service_manager::InterfaceProviderSpec()); | 661 service_manager::InterfaceProviderSpec()); |
| 662 | 662 |
| 663 std::unique_ptr<service_manager::InterfaceProvider> remote_interfaces( | 663 std::unique_ptr<service_manager::InterfaceProvider> remote_interfaces( |
| 664 new service_manager::InterfaceProvider); | 664 new service_manager::InterfaceProvider); |
| 665 remote_interfaces->Bind(std::move(interfaces)); | 665 remote_interfaces->Bind(std::move(interfaces)); |
| 666 rph->SetRemoteInterfaces(std::move(remote_interfaces)); | 666 rph->SetRemoteInterfaces(std::move(remote_interfaces)); |
| 667 return registry; | 667 return registry; |
| 668 } | 668 } |
| 669 | 669 |
| 670 } // namespace content | 670 } // namespace content |
| OLD | NEW |