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 664 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
675 GetRoutingID(), request_id, result, | 675 GetRoutingID(), request_id, result, |
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 ServiceWorkerStatusCode status = SERVICE_WORKER_OK; | |
686 switch (result) { | |
687 case blink::WebServiceWorkerEventResultCompleted: | |
688 break; | |
689 case blink::WebServiceWorkerEventResultRejected: | |
690 status = SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED; | |
691 break; | |
692 } | |
falken
2017/01/06 08:27:32
Since this is repeated in other functions, how abo
xiaofengzhang
2017/01/09 02:55:22
Nice, thanks
xiaofengzhang
2017/01/09 02:55:22
Acknowledged.
| |
685 DCHECK(callback); | 693 DCHECK(callback); |
686 if (result == blink::WebServiceWorkerEventResultCompleted) { | 694 callback->Run(status, base::Time::FromDoubleT(event_dispatch_time)); |
687 callback->Run(SERVICE_WORKER_OK, | |
688 base::Time::FromDoubleT(event_dispatch_time)); | |
689 } else { | |
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); | 695 context_->message_event_callbacks.Remove(request_id); |
694 } | 696 } |
695 | 697 |
696 void ServiceWorkerContextClient::didHandleInstallEvent( | 698 void ServiceWorkerContextClient::didHandleInstallEvent( |
697 int request_id, | 699 int request_id, |
698 blink::WebServiceWorkerEventResult result, | 700 blink::WebServiceWorkerEventResult result, |
699 double event_dispatch_time) { | 701 double event_dispatch_time) { |
700 Send(new ServiceWorkerHostMsg_InstallEventFinished( | 702 Send(new ServiceWorkerHostMsg_InstallEventFinished( |
701 GetRoutingID(), request_id, result, proxy_->hasFetchEventHandler(), | 703 GetRoutingID(), request_id, result, proxy_->hasFetchEventHandler(), |
702 base::Time::FromDoubleT(event_dispatch_time))); | 704 base::Time::FromDoubleT(event_dispatch_time))); |
(...skipping 24 matching lines...) Expand all Loading... | |
727 blink::WebServiceWorkerEventResult result, | 729 blink::WebServiceWorkerEventResult result, |
728 double event_dispatch_time) { | 730 double event_dispatch_time) { |
729 if (context_->preload_requests.Lookup(fetch_event_id)) { | 731 if (context_->preload_requests.Lookup(fetch_event_id)) { |
730 // Deletes NavigationPreloadRequest. If the network request is ongoing, it | 732 // Deletes NavigationPreloadRequest. If the network request is ongoing, it |
731 // will be canceled by deleting the mojom::URLLoaderPtr in the | 733 // will be canceled by deleting the mojom::URLLoaderPtr in the |
732 // NavigationPreloadRequest. | 734 // NavigationPreloadRequest. |
733 context_->preload_requests.Remove(fetch_event_id); | 735 context_->preload_requests.Remove(fetch_event_id); |
734 } | 736 } |
735 const FetchCallback* callback = | 737 const FetchCallback* callback = |
736 context_->fetch_event_callbacks.Lookup(fetch_event_id); | 738 context_->fetch_event_callbacks.Lookup(fetch_event_id); |
737 if (!callback) | 739 ServiceWorkerStatusCode status = SERVICE_WORKER_OK; |
738 return; | 740 switch (result) { |
739 | 741 case blink::WebServiceWorkerEventResultCompleted: |
740 callback->Run(result == blink::WebServiceWorkerEventResultCompleted | 742 break; |
741 ? SERVICE_WORKER_OK | 743 case blink::WebServiceWorkerEventResultRejected: |
742 : SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, | 744 status = SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED; |
743 base::Time::FromDoubleT(event_dispatch_time)); | 745 break; |
746 } | |
747 DCHECK(callback); | |
748 callback->Run(status, base::Time::FromDoubleT(event_dispatch_time)); | |
744 context_->fetch_event_callbacks.Remove(fetch_event_id); | 749 context_->fetch_event_callbacks.Remove(fetch_event_id); |
745 } | 750 } |
746 | 751 |
747 void ServiceWorkerContextClient::didHandleNotificationClickEvent( | 752 void ServiceWorkerContextClient::didHandleNotificationClickEvent( |
748 int request_id, | 753 int request_id, |
749 blink::WebServiceWorkerEventResult result, | 754 blink::WebServiceWorkerEventResult result, |
750 double event_dispatch_time) { | 755 double event_dispatch_time) { |
751 Send(new ServiceWorkerHostMsg_NotificationClickEventFinished( | 756 Send(new ServiceWorkerHostMsg_NotificationClickEventFinished( |
752 GetRoutingID(), request_id, result, | 757 GetRoutingID(), request_id, result, |
753 base::Time::FromDoubleT(event_dispatch_time))); | 758 base::Time::FromDoubleT(event_dispatch_time))); |
(...skipping 16 matching lines...) Expand all Loading... | |
770 GetRoutingID(), request_id, result, | 775 GetRoutingID(), request_id, result, |
771 base::Time::FromDoubleT(event_dispatch_time))); | 776 base::Time::FromDoubleT(event_dispatch_time))); |
772 } | 777 } |
773 | 778 |
774 void ServiceWorkerContextClient::didHandleSyncEvent( | 779 void ServiceWorkerContextClient::didHandleSyncEvent( |
775 int request_id, | 780 int request_id, |
776 blink::WebServiceWorkerEventResult result, | 781 blink::WebServiceWorkerEventResult result, |
777 double event_dispatch_time) { | 782 double event_dispatch_time) { |
778 const SyncCallback* callback = | 783 const SyncCallback* callback = |
779 context_->sync_event_callbacks.Lookup(request_id); | 784 context_->sync_event_callbacks.Lookup(request_id); |
780 if (!callback) | 785 ServiceWorkerStatusCode status = SERVICE_WORKER_OK; |
781 return; | 786 switch (result) { |
782 if (result == blink::WebServiceWorkerEventResultCompleted) { | 787 case blink::WebServiceWorkerEventResultCompleted: |
783 callback->Run(SERVICE_WORKER_OK, | 788 break; |
784 base::Time::FromDoubleT(event_dispatch_time)); | 789 case blink::WebServiceWorkerEventResultRejected: |
785 } else { | 790 status = SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED; |
786 callback->Run(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, | 791 break; |
787 base::Time::FromDoubleT(event_dispatch_time)); | |
788 } | 792 } |
793 DCHECK(callback); | |
794 callback->Run(status, base::Time::FromDoubleT(event_dispatch_time)); | |
789 context_->sync_event_callbacks.Remove(request_id); | 795 context_->sync_event_callbacks.Remove(request_id); |
790 } | 796 } |
791 | 797 |
792 blink::WebServiceWorkerNetworkProvider* | 798 blink::WebServiceWorkerNetworkProvider* |
793 ServiceWorkerContextClient::createServiceWorkerNetworkProvider( | 799 ServiceWorkerContextClient::createServiceWorkerNetworkProvider( |
794 blink::WebDataSource* data_source) { | 800 blink::WebDataSource* data_source) { |
795 DCHECK(main_thread_task_runner_->RunsTasksOnCurrentThread()); | 801 DCHECK(main_thread_task_runner_->RunsTasksOnCurrentThread()); |
796 | 802 |
797 // Create a content::ServiceWorkerNetworkProvider for this data source so | 803 // Create a content::ServiceWorkerNetworkProvider for this data source so |
798 // we can observe its requests. | 804 // we can observe its requests. |
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1280 } | 1286 } |
1281 | 1287 |
1282 base::WeakPtr<ServiceWorkerContextClient> | 1288 base::WeakPtr<ServiceWorkerContextClient> |
1283 ServiceWorkerContextClient::GetWeakPtr() { | 1289 ServiceWorkerContextClient::GetWeakPtr() { |
1284 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); | 1290 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); |
1285 DCHECK(context_); | 1291 DCHECK(context_); |
1286 return context_->weak_factory.GetWeakPtr(); | 1292 return context_->weak_factory.GetWeakPtr(); |
1287 } | 1293 } |
1288 | 1294 |
1289 } // namespace content | 1295 } // namespace content |
OLD | NEW |