Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(249)

Side by Side Diff: content/renderer/service_worker/service_worker_context_client.cc

Issue 2606303002: [ServiceWorker] Some code clean-up for content::ServiceWorkerContextClient (Closed)
Patch Set: Address falken's comments #38 Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « AUTHORS ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 std::unique_ptr<RequestExtraData> extra_data(new RequestExtraData); 105 std::unique_ptr<RequestExtraData> extra_data(new RequestExtraData);
106 extra_data->set_service_worker_provider_id(provider->provider_id()); 106 extra_data->set_service_worker_provider_id(provider->provider_id());
107 extra_data->set_originated_from_service_worker(true); 107 extra_data->set_originated_from_service_worker(true);
108 // Service workers are only available in secure contexts, so all requests 108 // Service workers are only available in secure contexts, so all requests
109 // are initiated in a secure context. 109 // are initiated in a secure context.
110 extra_data->set_initiated_in_secure_context(true); 110 extra_data->set_initiated_in_secure_context(true);
111 request.setExtraData(extra_data.release()); 111 request.setExtraData(extra_data.release());
112 } 112 }
113 }; 113 };
114 114
115 ServiceWorkerStatusCode EventResultToStatus(
116 blink::WebServiceWorkerEventResult result) {
117 switch (result) {
118 case blink::WebServiceWorkerEventResultCompleted:
119 return SERVICE_WORKER_OK;
120 case blink::WebServiceWorkerEventResultRejected:
121 return SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED;
122 }
123 NOTREACHED() << "Got invalid result: " << result;
124 return SERVICE_WORKER_ERROR_FAILED;
125 }
126
115 void SendPostMessageToClientOnMainThread( 127 void SendPostMessageToClientOnMainThread(
116 ThreadSafeSender* sender, 128 ThreadSafeSender* sender,
117 int routing_id, 129 int routing_id,
118 const std::string& uuid, 130 const std::string& uuid,
119 const base::string16& message, 131 const base::string16& message,
120 std::unique_ptr<blink::WebMessagePortChannelArray> channels) { 132 std::unique_ptr<blink::WebMessagePortChannelArray> channels) {
121 sender->Send(new ServiceWorkerHostMsg_PostMessageToClient( 133 sender->Send(new ServiceWorkerHostMsg_PostMessageToClient(
122 routing_id, uuid, message, 134 routing_id, uuid, message,
123 WebMessagePortChannelImpl::ExtractMessagePortIDs(std::move(channels)))); 135 WebMessagePortChannelImpl::ExtractMessagePortIDs(std::move(channels))));
124 } 136 }
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 base::Time::FromDoubleT(event_dispatch_time))); 688 base::Time::FromDoubleT(event_dispatch_time)));
677 } 689 }
678 690
679 void ServiceWorkerContextClient::didHandleExtendableMessageEvent( 691 void ServiceWorkerContextClient::didHandleExtendableMessageEvent(
680 int request_id, 692 int request_id,
681 blink::WebServiceWorkerEventResult result, 693 blink::WebServiceWorkerEventResult result,
682 double event_dispatch_time) { 694 double event_dispatch_time) {
683 const DispatchExtendableMessageEventCallback* callback = 695 const DispatchExtendableMessageEventCallback* callback =
684 context_->message_event_callbacks.Lookup(request_id); 696 context_->message_event_callbacks.Lookup(request_id);
685 DCHECK(callback); 697 DCHECK(callback);
686 if (result == blink::WebServiceWorkerEventResultCompleted) { 698 callback->Run(EventResultToStatus(result),
687 callback->Run(SERVICE_WORKER_OK, 699 base::Time::FromDoubleT(event_dispatch_time));
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); 700 context_->message_event_callbacks.Remove(request_id);
694 } 701 }
695 702
696 void ServiceWorkerContextClient::didHandleInstallEvent( 703 void ServiceWorkerContextClient::didHandleInstallEvent(
697 int request_id, 704 int request_id,
698 blink::WebServiceWorkerEventResult result, 705 blink::WebServiceWorkerEventResult result,
699 double event_dispatch_time) { 706 double event_dispatch_time) {
700 Send(new ServiceWorkerHostMsg_InstallEventFinished( 707 Send(new ServiceWorkerHostMsg_InstallEventFinished(
701 GetRoutingID(), request_id, result, proxy_->hasFetchEventHandler(), 708 GetRoutingID(), request_id, result, proxy_->hasFetchEventHandler(),
702 base::Time::FromDoubleT(event_dispatch_time))); 709 base::Time::FromDoubleT(event_dispatch_time)));
(...skipping 24 matching lines...) Expand all
727 blink::WebServiceWorkerEventResult result, 734 blink::WebServiceWorkerEventResult result,
728 double event_dispatch_time) { 735 double event_dispatch_time) {
729 if (context_->preload_requests.Lookup(fetch_event_id)) { 736 if (context_->preload_requests.Lookup(fetch_event_id)) {
730 // Deletes NavigationPreloadRequest. If the network request is ongoing, it 737 // Deletes NavigationPreloadRequest. If the network request is ongoing, it
731 // will be canceled by deleting the mojom::URLLoaderPtr in the 738 // will be canceled by deleting the mojom::URLLoaderPtr in the
732 // NavigationPreloadRequest. 739 // NavigationPreloadRequest.
733 context_->preload_requests.Remove(fetch_event_id); 740 context_->preload_requests.Remove(fetch_event_id);
734 } 741 }
735 const FetchCallback* callback = 742 const FetchCallback* callback =
736 context_->fetch_event_callbacks.Lookup(fetch_event_id); 743 context_->fetch_event_callbacks.Lookup(fetch_event_id);
737 if (!callback) 744 DCHECK(callback);
738 return; 745 callback->Run(EventResultToStatus(result),
739
740 callback->Run(result == blink::WebServiceWorkerEventResultCompleted
741 ? SERVICE_WORKER_OK
742 : SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED,
743 base::Time::FromDoubleT(event_dispatch_time)); 746 base::Time::FromDoubleT(event_dispatch_time));
744 context_->fetch_event_callbacks.Remove(fetch_event_id); 747 context_->fetch_event_callbacks.Remove(fetch_event_id);
745 } 748 }
746 749
747 void ServiceWorkerContextClient::didHandleNotificationClickEvent( 750 void ServiceWorkerContextClient::didHandleNotificationClickEvent(
748 int request_id, 751 int request_id,
749 blink::WebServiceWorkerEventResult result, 752 blink::WebServiceWorkerEventResult result,
750 double event_dispatch_time) { 753 double event_dispatch_time) {
751 Send(new ServiceWorkerHostMsg_NotificationClickEventFinished( 754 Send(new ServiceWorkerHostMsg_NotificationClickEventFinished(
752 GetRoutingID(), request_id, result, 755 GetRoutingID(), request_id, result,
(...skipping 17 matching lines...) Expand all
770 GetRoutingID(), request_id, result, 773 GetRoutingID(), request_id, result,
771 base::Time::FromDoubleT(event_dispatch_time))); 774 base::Time::FromDoubleT(event_dispatch_time)));
772 } 775 }
773 776
774 void ServiceWorkerContextClient::didHandleSyncEvent( 777 void ServiceWorkerContextClient::didHandleSyncEvent(
775 int request_id, 778 int request_id,
776 blink::WebServiceWorkerEventResult result, 779 blink::WebServiceWorkerEventResult result,
777 double event_dispatch_time) { 780 double event_dispatch_time) {
778 const SyncCallback* callback = 781 const SyncCallback* callback =
779 context_->sync_event_callbacks.Lookup(request_id); 782 context_->sync_event_callbacks.Lookup(request_id);
780 if (!callback) 783 DCHECK(callback);
781 return; 784 callback->Run(EventResultToStatus(result),
782 if (result == blink::WebServiceWorkerEventResultCompleted) { 785 base::Time::FromDoubleT(event_dispatch_time));
783 callback->Run(SERVICE_WORKER_OK,
784 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); 786 context_->sync_event_callbacks.Remove(request_id);
790 } 787 }
791 788
792 blink::WebServiceWorkerNetworkProvider* 789 blink::WebServiceWorkerNetworkProvider*
793 ServiceWorkerContextClient::createServiceWorkerNetworkProvider( 790 ServiceWorkerContextClient::createServiceWorkerNetworkProvider(
794 blink::WebDataSource* data_source) { 791 blink::WebDataSource* data_source) {
795 DCHECK(main_thread_task_runner_->RunsTasksOnCurrentThread()); 792 DCHECK(main_thread_task_runner_->RunsTasksOnCurrentThread());
796 793
797 // Create a content::ServiceWorkerNetworkProvider for this data source so 794 // Create a content::ServiceWorkerNetworkProvider for this data source so
798 // we can observe its requests. 795 // we can observe its requests.
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after
1286 } 1283 }
1287 1284
1288 base::WeakPtr<ServiceWorkerContextClient> 1285 base::WeakPtr<ServiceWorkerContextClient>
1289 ServiceWorkerContextClient::GetWeakPtr() { 1286 ServiceWorkerContextClient::GetWeakPtr() {
1290 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); 1287 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread());
1291 DCHECK(context_); 1288 DCHECK(context_);
1292 return context_->weak_factory.GetWeakPtr(); 1289 return context_->weak_factory.GetWeakPtr();
1293 } 1290 }
1294 1291
1295 } // namespace content 1292 } // namespace content
OLDNEW
« no previous file with comments | « AUTHORS ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698