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 |