OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/renderer/service_worker/service_worker_context_client.h" | 5 #include "content/renderer/service_worker/service_worker_context_client.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
(...skipping 665 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
676 base::Time::FromDoubleT(event_dispatch_time))); | 676 base::Time::FromDoubleT(event_dispatch_time))); |
677 } | 677 } |
678 | 678 |
679 void ServiceWorkerContextClient::didHandleExtendableMessageEvent( | 679 void ServiceWorkerContextClient::didHandleExtendableMessageEvent( |
680 int request_id, | 680 int request_id, |
681 blink::WebServiceWorkerEventResult result, | 681 blink::WebServiceWorkerEventResult result, |
682 double event_dispatch_time) { | 682 double event_dispatch_time) { |
683 const DispatchExtendableMessageEventCallback* callback = | 683 const DispatchExtendableMessageEventCallback* callback = |
684 context_->message_event_callbacks.Lookup(request_id); | 684 context_->message_event_callbacks.Lookup(request_id); |
685 DCHECK(callback); | 685 DCHECK(callback); |
686 if (result == blink::WebServiceWorkerEventResultCompleted) { | 686 callback->Run(result == blink::WebServiceWorkerEventResultCompleted |
687 callback->Run(SERVICE_WORKER_OK, | 687 ? SERVICE_WORKER_OK |
688 base::Time::FromDoubleT(event_dispatch_time)); | 688 : SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, |
689 } else { | 689 base::Time::FromDoubleT(event_dispatch_time)); |
falken
2017/01/05 01:53:00
If we're rewriting this code I'd actually prefer i
xiaofengzhang
2017/01/05 02:07:49
yes, agree, the best option would be to use a swit
falken
2017/01/05 02:20:28
Yes, we should change to switch everywhere here. I
| |
690 callback->Run(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, | |
691 base::Time::FromDoubleT(event_dispatch_time)); | |
692 } | |
693 context_->message_event_callbacks.Remove(request_id); | 690 context_->message_event_callbacks.Remove(request_id); |
694 } | 691 } |
695 | 692 |
696 void ServiceWorkerContextClient::didHandleInstallEvent( | 693 void ServiceWorkerContextClient::didHandleInstallEvent( |
697 int request_id, | 694 int request_id, |
698 blink::WebServiceWorkerEventResult result, | 695 blink::WebServiceWorkerEventResult result, |
699 double event_dispatch_time) { | 696 double event_dispatch_time) { |
700 Send(new ServiceWorkerHostMsg_InstallEventFinished( | 697 Send(new ServiceWorkerHostMsg_InstallEventFinished( |
701 GetRoutingID(), request_id, result, proxy_->hasFetchEventHandler(), | 698 GetRoutingID(), request_id, result, proxy_->hasFetchEventHandler(), |
702 base::Time::FromDoubleT(event_dispatch_time))); | 699 base::Time::FromDoubleT(event_dispatch_time))); |
(...skipping 24 matching lines...) Expand all Loading... | |
727 blink::WebServiceWorkerEventResult result, | 724 blink::WebServiceWorkerEventResult result, |
728 double event_dispatch_time) { | 725 double event_dispatch_time) { |
729 if (context_->preload_requests.Lookup(fetch_event_id)) { | 726 if (context_->preload_requests.Lookup(fetch_event_id)) { |
730 // Deletes NavigationPreloadRequest. If the network request is ongoing, it | 727 // Deletes NavigationPreloadRequest. If the network request is ongoing, it |
731 // will be canceled by deleting the mojom::URLLoaderPtr in the | 728 // will be canceled by deleting the mojom::URLLoaderPtr in the |
732 // NavigationPreloadRequest. | 729 // NavigationPreloadRequest. |
733 context_->preload_requests.Remove(fetch_event_id); | 730 context_->preload_requests.Remove(fetch_event_id); |
734 } | 731 } |
735 const FetchCallback* callback = | 732 const FetchCallback* callback = |
736 context_->fetch_event_callbacks.Lookup(fetch_event_id); | 733 context_->fetch_event_callbacks.Lookup(fetch_event_id); |
737 if (!callback) | 734 DCHECK(callback); |
falken
2017/01/05 01:53:00
How do you know this DCHECK is safe? I assume the
xiaofengzhang
2017/01/05 02:07:48
thanks a lot for your kindly review.
This is come
falken
2017/01/05 02:20:28
OK I'll defer to horo/shimazu. We also should conf
xiaofengzhang
2017/01/05 02:58:11
@iclelland
How do you think this change?
horo
2017/01/05 03:00:14
l-g-t-m for DCHECKs.
iclelland
2017/01/06 18:07:49
Agreed -- it would be a bug here if callback was n
xiaofengzhang
2017/01/09 02:55:22
Thanks iclelland for your kindly review.
For "it w
| |
738 return; | |
739 | |
740 callback->Run(result == blink::WebServiceWorkerEventResultCompleted | 735 callback->Run(result == blink::WebServiceWorkerEventResultCompleted |
741 ? SERVICE_WORKER_OK | 736 ? SERVICE_WORKER_OK |
742 : SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, | 737 : SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, |
743 base::Time::FromDoubleT(event_dispatch_time)); | 738 base::Time::FromDoubleT(event_dispatch_time)); |
744 context_->fetch_event_callbacks.Remove(fetch_event_id); | 739 context_->fetch_event_callbacks.Remove(fetch_event_id); |
745 } | 740 } |
746 | 741 |
747 void ServiceWorkerContextClient::didHandleNotificationClickEvent( | 742 void ServiceWorkerContextClient::didHandleNotificationClickEvent( |
748 int request_id, | 743 int request_id, |
749 blink::WebServiceWorkerEventResult result, | 744 blink::WebServiceWorkerEventResult result, |
(...skipping 20 matching lines...) Expand all Loading... | |
770 GetRoutingID(), request_id, result, | 765 GetRoutingID(), request_id, result, |
771 base::Time::FromDoubleT(event_dispatch_time))); | 766 base::Time::FromDoubleT(event_dispatch_time))); |
772 } | 767 } |
773 | 768 |
774 void ServiceWorkerContextClient::didHandleSyncEvent( | 769 void ServiceWorkerContextClient::didHandleSyncEvent( |
775 int request_id, | 770 int request_id, |
776 blink::WebServiceWorkerEventResult result, | 771 blink::WebServiceWorkerEventResult result, |
777 double event_dispatch_time) { | 772 double event_dispatch_time) { |
778 const SyncCallback* callback = | 773 const SyncCallback* callback = |
779 context_->sync_event_callbacks.Lookup(request_id); | 774 context_->sync_event_callbacks.Lookup(request_id); |
780 if (!callback) | 775 DCHECK(callback); |
falken
2017/01/05 01:53:00
Ditto.
| |
781 return; | 776 callback->Run(result == blink::WebServiceWorkerEventResultCompleted |
782 if (result == blink::WebServiceWorkerEventResultCompleted) { | 777 ? SERVICE_WORKER_OK |
783 callback->Run(SERVICE_WORKER_OK, | 778 : SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, |
784 base::Time::FromDoubleT(event_dispatch_time)); | 779 base::Time::FromDoubleT(event_dispatch_time)); |
785 } else { | |
786 callback->Run(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, | |
787 base::Time::FromDoubleT(event_dispatch_time)); | |
788 } | |
789 context_->sync_event_callbacks.Remove(request_id); | 780 context_->sync_event_callbacks.Remove(request_id); |
790 } | 781 } |
791 | 782 |
792 blink::WebServiceWorkerNetworkProvider* | 783 blink::WebServiceWorkerNetworkProvider* |
793 ServiceWorkerContextClient::createServiceWorkerNetworkProvider( | 784 ServiceWorkerContextClient::createServiceWorkerNetworkProvider( |
794 blink::WebDataSource* data_source) { | 785 blink::WebDataSource* data_source) { |
795 DCHECK(main_thread_task_runner_->RunsTasksOnCurrentThread()); | 786 DCHECK(main_thread_task_runner_->RunsTasksOnCurrentThread()); |
796 | 787 |
797 // Create a content::ServiceWorkerNetworkProvider for this data source so | 788 // Create a content::ServiceWorkerNetworkProvider for this data source so |
798 // we can observe its requests. | 789 // we can observe its requests. |
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1280 } | 1271 } |
1281 | 1272 |
1282 base::WeakPtr<ServiceWorkerContextClient> | 1273 base::WeakPtr<ServiceWorkerContextClient> |
1283 ServiceWorkerContextClient::GetWeakPtr() { | 1274 ServiceWorkerContextClient::GetWeakPtr() { |
1284 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); | 1275 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); |
1285 DCHECK(context_); | 1276 DCHECK(context_); |
1286 return context_->weak_factory.GetWeakPtr(); | 1277 return context_->weak_factory.GetWeakPtr(); |
1287 } | 1278 } |
1288 | 1279 |
1289 } // namespace content | 1280 } // namespace content |
OLD | NEW |