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

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

Issue 1873783003: Convert //content/renderer from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
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 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 class WebServiceWorkerNetworkProviderImpl 90 class WebServiceWorkerNetworkProviderImpl
91 : public blink::WebServiceWorkerNetworkProvider { 91 : public blink::WebServiceWorkerNetworkProvider {
92 public: 92 public:
93 // Blink calls this method for each request starting with the main script, 93 // Blink calls this method for each request starting with the main script,
94 // we tag them with the provider id. 94 // we tag them with the provider id.
95 void willSendRequest(blink::WebDataSource* data_source, 95 void willSendRequest(blink::WebDataSource* data_source,
96 blink::WebURLRequest& request) override { 96 blink::WebURLRequest& request) override {
97 ServiceWorkerNetworkProvider* provider = 97 ServiceWorkerNetworkProvider* provider =
98 ServiceWorkerNetworkProvider::FromDocumentState( 98 ServiceWorkerNetworkProvider::FromDocumentState(
99 static_cast<DataSourceExtraData*>(data_source->getExtraData())); 99 static_cast<DataSourceExtraData*>(data_source->getExtraData()));
100 scoped_ptr<RequestExtraData> extra_data(new RequestExtraData); 100 std::unique_ptr<RequestExtraData> extra_data(new RequestExtraData);
101 extra_data->set_service_worker_provider_id(provider->provider_id()); 101 extra_data->set_service_worker_provider_id(provider->provider_id());
102 extra_data->set_originated_from_service_worker(true); 102 extra_data->set_originated_from_service_worker(true);
103 request.setExtraData(extra_data.release()); 103 request.setExtraData(extra_data.release());
104 } 104 }
105 }; 105 };
106 106
107 void SendPostMessageToClientOnMainThread( 107 void SendPostMessageToClientOnMainThread(
108 ThreadSafeSender* sender, 108 ThreadSafeSender* sender,
109 int routing_id, 109 int routing_id,
110 const std::string& uuid, 110 const std::string& uuid,
111 const base::string16& message, 111 const base::string16& message,
112 scoped_ptr<blink::WebMessagePortChannelArray> channels) { 112 std::unique_ptr<blink::WebMessagePortChannelArray> channels) {
113 sender->Send(new ServiceWorkerHostMsg_PostMessageToClient( 113 sender->Send(new ServiceWorkerHostMsg_PostMessageToClient(
114 routing_id, uuid, message, 114 routing_id, uuid, message,
115 WebMessagePortChannelImpl::ExtractMessagePortIDs(std::move(channels)))); 115 WebMessagePortChannelImpl::ExtractMessagePortIDs(std::move(channels))));
116 } 116 }
117 117
118 blink::WebURLRequest::FetchRequestMode GetBlinkFetchRequestMode( 118 blink::WebURLRequest::FetchRequestMode GetBlinkFetchRequestMode(
119 FetchRequestMode mode) { 119 FetchRequestMode mode) {
120 return static_cast<blink::WebURLRequest::FetchRequestMode>(mode); 120 return static_cast<blink::WebURLRequest::FetchRequestMode>(mode);
121 } 121 }
122 122
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 context_->sync_event_callbacks.Remove(request_id); 560 context_->sync_event_callbacks.Remove(request_id);
561 } 561 }
562 562
563 blink::WebServiceWorkerNetworkProvider* 563 blink::WebServiceWorkerNetworkProvider*
564 ServiceWorkerContextClient::createServiceWorkerNetworkProvider( 564 ServiceWorkerContextClient::createServiceWorkerNetworkProvider(
565 blink::WebDataSource* data_source) { 565 blink::WebDataSource* data_source) {
566 DCHECK(main_thread_task_runner_->RunsTasksOnCurrentThread()); 566 DCHECK(main_thread_task_runner_->RunsTasksOnCurrentThread());
567 567
568 // Create a content::ServiceWorkerNetworkProvider for this data source so 568 // Create a content::ServiceWorkerNetworkProvider for this data source so
569 // we can observe its requests. 569 // we can observe its requests.
570 scoped_ptr<ServiceWorkerNetworkProvider> provider( 570 std::unique_ptr<ServiceWorkerNetworkProvider> provider(
571 new ServiceWorkerNetworkProvider( 571 new ServiceWorkerNetworkProvider(MSG_ROUTING_NONE,
572 MSG_ROUTING_NONE, SERVICE_WORKER_PROVIDER_FOR_CONTROLLER)); 572 SERVICE_WORKER_PROVIDER_FOR_CONTROLLER));
573 provider_context_ = provider->context(); 573 provider_context_ = provider->context();
574 574
575 // Tell the network provider about which version to load. 575 // Tell the network provider about which version to load.
576 provider->SetServiceWorkerVersionId(service_worker_version_id_); 576 provider->SetServiceWorkerVersionId(service_worker_version_id_);
577 577
578 // The provider is kept around for the lifetime of the DataSource 578 // The provider is kept around for the lifetime of the DataSource
579 // and ownership is transferred to the DataSource. 579 // and ownership is transferred to the DataSource.
580 DataSourceExtraData* extra_data = new DataSourceExtraData(); 580 DataSourceExtraData* extra_data = new DataSourceExtraData();
581 data_source->setExtraData(extra_data); 581 data_source->setExtraData(extra_data);
582 ServiceWorkerNetworkProvider::AttachToDocumentState(extra_data, 582 ServiceWorkerNetworkProvider::AttachToDocumentState(extra_data,
(...skipping 14 matching lines...) Expand all
597 } 597 }
598 598
599 void ServiceWorkerContextClient::postMessageToClient( 599 void ServiceWorkerContextClient::postMessageToClient(
600 const blink::WebString& uuid, 600 const blink::WebString& uuid,
601 const blink::WebString& message, 601 const blink::WebString& message,
602 blink::WebMessagePortChannelArray* channels) { 602 blink::WebMessagePortChannelArray* channels) {
603 // This may send channels for MessagePorts, and all internal book-keeping 603 // This may send channels for MessagePorts, and all internal book-keeping
604 // messages for MessagePort (e.g. QueueMessages) are sent from main thread 604 // messages for MessagePort (e.g. QueueMessages) are sent from main thread
605 // (with thread hopping), so we need to do the same thread hopping here not 605 // (with thread hopping), so we need to do the same thread hopping here not
606 // to overtake those messages. 606 // to overtake those messages.
607 scoped_ptr<blink::WebMessagePortChannelArray> channel_array(channels); 607 std::unique_ptr<blink::WebMessagePortChannelArray> channel_array(channels);
608 main_thread_task_runner_->PostTask( 608 main_thread_task_runner_->PostTask(
609 FROM_HERE, base::Bind(&SendPostMessageToClientOnMainThread, 609 FROM_HERE, base::Bind(&SendPostMessageToClientOnMainThread,
610 base::RetainedRef(sender_), GetRoutingID(), 610 base::RetainedRef(sender_), GetRoutingID(),
611 base::UTF16ToUTF8(base::StringPiece16(uuid)), 611 base::UTF16ToUTF8(base::StringPiece16(uuid)),
612 static_cast<base::string16>(message), 612 static_cast<base::string16>(message),
613 base::Passed(&channel_array))); 613 base::Passed(&channel_array)));
614 } 614 }
615 615
616 void ServiceWorkerContextClient::postMessageToCrossOriginClient( 616 void ServiceWorkerContextClient::postMessageToCrossOriginClient(
617 const blink::WebCrossOriginServiceWorkerClient&, 617 const blink::WebCrossOriginServiceWorkerClient&,
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 main_thread_task_runner_); 724 main_thread_task_runner_);
725 if (params.source.client_info.IsValid()) { 725 if (params.source.client_info.IsValid()) {
726 blink::WebServiceWorkerClientInfo web_client = 726 blink::WebServiceWorkerClientInfo web_client =
727 ToWebServiceWorkerClientInfo(params.source.client_info); 727 ToWebServiceWorkerClientInfo(params.source.client_info);
728 proxy_->dispatchExtendableMessageEvent( 728 proxy_->dispatchExtendableMessageEvent(
729 request_id, params.message, params.source_origin, ports, web_client); 729 request_id, params.message, params.source_origin, ports, web_client);
730 return; 730 return;
731 } 731 }
732 732
733 DCHECK(params.source.service_worker_info.IsValid()); 733 DCHECK(params.source.service_worker_info.IsValid());
734 scoped_ptr<ServiceWorkerHandleReference> handle = 734 std::unique_ptr<ServiceWorkerHandleReference> handle =
735 ServiceWorkerHandleReference::Adopt(params.source.service_worker_info, 735 ServiceWorkerHandleReference::Adopt(params.source.service_worker_info,
736 sender_.get()); 736 sender_.get());
737 ServiceWorkerDispatcher* dispatcher = 737 ServiceWorkerDispatcher* dispatcher =
738 ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance( 738 ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance(
739 sender_.get(), main_thread_task_runner_.get()); 739 sender_.get(), main_thread_task_runner_.get());
740 scoped_refptr<WebServiceWorkerImpl> worker = 740 scoped_refptr<WebServiceWorkerImpl> worker =
741 dispatcher->GetOrCreateServiceWorker(std::move(handle)); 741 dispatcher->GetOrCreateServiceWorker(std::move(handle));
742 proxy_->dispatchExtendableMessageEvent( 742 proxy_->dispatchExtendableMessageEvent(
743 request_id, params.message, params.source_origin, ports, 743 request_id, params.message, params.source_origin, ports,
744 WebServiceWorkerImpl::CreateHandle(worker)); 744 WebServiceWorkerImpl::CreateHandle(worker));
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
860 void ServiceWorkerContextClient::OnDidGetClient( 860 void ServiceWorkerContextClient::OnDidGetClient(
861 int request_id, 861 int request_id,
862 const ServiceWorkerClientInfo& client) { 862 const ServiceWorkerClientInfo& client) {
863 TRACE_EVENT0("ServiceWorker", "ServiceWorkerContextClient::OnDidGetClient"); 863 TRACE_EVENT0("ServiceWorker", "ServiceWorkerContextClient::OnDidGetClient");
864 blink::WebServiceWorkerClientCallbacks* callbacks = 864 blink::WebServiceWorkerClientCallbacks* callbacks =
865 context_->client_callbacks.Lookup(request_id); 865 context_->client_callbacks.Lookup(request_id);
866 if (!callbacks) { 866 if (!callbacks) {
867 NOTREACHED() << "Got stray response: " << request_id; 867 NOTREACHED() << "Got stray response: " << request_id;
868 return; 868 return;
869 } 869 }
870 scoped_ptr<blink::WebServiceWorkerClientInfo> web_client; 870 std::unique_ptr<blink::WebServiceWorkerClientInfo> web_client;
871 if (!client.IsEmpty()) { 871 if (!client.IsEmpty()) {
872 DCHECK(client.IsValid()); 872 DCHECK(client.IsValid());
873 web_client.reset(new blink::WebServiceWorkerClientInfo( 873 web_client.reset(new blink::WebServiceWorkerClientInfo(
874 ToWebServiceWorkerClientInfo(client))); 874 ToWebServiceWorkerClientInfo(client)));
875 } 875 }
876 callbacks->onSuccess(std::move(web_client)); 876 callbacks->onSuccess(std::move(web_client));
877 context_->client_callbacks.Remove(request_id); 877 context_->client_callbacks.Remove(request_id);
878 } 878 }
879 879
880 void ServiceWorkerContextClient::OnDidGetClients( 880 void ServiceWorkerContextClient::OnDidGetClients(
(...skipping 20 matching lines...) Expand all
901 int request_id, 901 int request_id,
902 const ServiceWorkerClientInfo& client) { 902 const ServiceWorkerClientInfo& client) {
903 TRACE_EVENT0("ServiceWorker", 903 TRACE_EVENT0("ServiceWorker",
904 "ServiceWorkerContextClient::OnOpenWindowResponse"); 904 "ServiceWorkerContextClient::OnOpenWindowResponse");
905 blink::WebServiceWorkerClientCallbacks* callbacks = 905 blink::WebServiceWorkerClientCallbacks* callbacks =
906 context_->client_callbacks.Lookup(request_id); 906 context_->client_callbacks.Lookup(request_id);
907 if (!callbacks) { 907 if (!callbacks) {
908 NOTREACHED() << "Got stray response: " << request_id; 908 NOTREACHED() << "Got stray response: " << request_id;
909 return; 909 return;
910 } 910 }
911 scoped_ptr<blink::WebServiceWorkerClientInfo> web_client; 911 std::unique_ptr<blink::WebServiceWorkerClientInfo> web_client;
912 if (!client.IsEmpty()) { 912 if (!client.IsEmpty()) {
913 DCHECK(client.IsValid()); 913 DCHECK(client.IsValid());
914 web_client.reset(new blink::WebServiceWorkerClientInfo( 914 web_client.reset(new blink::WebServiceWorkerClientInfo(
915 ToWebServiceWorkerClientInfo(client))); 915 ToWebServiceWorkerClientInfo(client)));
916 } 916 }
917 callbacks->onSuccess(std::move(web_client)); 917 callbacks->onSuccess(std::move(web_client));
918 context_->client_callbacks.Remove(request_id); 918 context_->client_callbacks.Remove(request_id);
919 } 919 }
920 920
921 void ServiceWorkerContextClient::OnOpenWindowError( 921 void ServiceWorkerContextClient::OnOpenWindowError(
(...skipping 18 matching lines...) Expand all
940 TRACE_EVENT0("ServiceWorker", 940 TRACE_EVENT0("ServiceWorker",
941 "ServiceWorkerContextClient::OnFocusClientResponse"); 941 "ServiceWorkerContextClient::OnFocusClientResponse");
942 blink::WebServiceWorkerClientCallbacks* callback = 942 blink::WebServiceWorkerClientCallbacks* callback =
943 context_->client_callbacks.Lookup(request_id); 943 context_->client_callbacks.Lookup(request_id);
944 if (!callback) { 944 if (!callback) {
945 NOTREACHED() << "Got stray response: " << request_id; 945 NOTREACHED() << "Got stray response: " << request_id;
946 return; 946 return;
947 } 947 }
948 if (!client.IsEmpty()) { 948 if (!client.IsEmpty()) {
949 DCHECK(client.IsValid()); 949 DCHECK(client.IsValid());
950 scoped_ptr<blink::WebServiceWorkerClientInfo> web_client ( 950 std::unique_ptr<blink::WebServiceWorkerClientInfo> web_client(
951 new blink::WebServiceWorkerClientInfo( 951 new blink::WebServiceWorkerClientInfo(
952 ToWebServiceWorkerClientInfo(client))); 952 ToWebServiceWorkerClientInfo(client)));
953 callback->onSuccess(std::move(web_client)); 953 callback->onSuccess(std::move(web_client));
954 } else { 954 } else {
955 callback->onError(blink::WebServiceWorkerError( 955 callback->onError(blink::WebServiceWorkerError(
956 blink::WebServiceWorkerError::ErrorTypeNotFound, 956 blink::WebServiceWorkerError::ErrorTypeNotFound,
957 "The WindowClient was not found.")); 957 "The WindowClient was not found."));
958 } 958 }
959 959
960 context_->client_callbacks.Remove(request_id); 960 context_->client_callbacks.Remove(request_id);
961 } 961 }
962 962
963 void ServiceWorkerContextClient::OnNavigateClientResponse( 963 void ServiceWorkerContextClient::OnNavigateClientResponse(
964 int request_id, 964 int request_id,
965 const ServiceWorkerClientInfo& client) { 965 const ServiceWorkerClientInfo& client) {
966 TRACE_EVENT0("ServiceWorker", 966 TRACE_EVENT0("ServiceWorker",
967 "ServiceWorkerContextClient::OnNavigateClientResponse"); 967 "ServiceWorkerContextClient::OnNavigateClientResponse");
968 blink::WebServiceWorkerClientCallbacks* callbacks = 968 blink::WebServiceWorkerClientCallbacks* callbacks =
969 context_->client_callbacks.Lookup(request_id); 969 context_->client_callbacks.Lookup(request_id);
970 if (!callbacks) { 970 if (!callbacks) {
971 NOTREACHED() << "Got stray response: " << request_id; 971 NOTREACHED() << "Got stray response: " << request_id;
972 return; 972 return;
973 } 973 }
974 scoped_ptr<blink::WebServiceWorkerClientInfo> web_client; 974 std::unique_ptr<blink::WebServiceWorkerClientInfo> web_client;
975 if (!client.IsEmpty()) { 975 if (!client.IsEmpty()) {
976 DCHECK(client.IsValid()); 976 DCHECK(client.IsValid());
977 web_client.reset(new blink::WebServiceWorkerClientInfo( 977 web_client.reset(new blink::WebServiceWorkerClientInfo(
978 ToWebServiceWorkerClientInfo(client))); 978 ToWebServiceWorkerClientInfo(client)));
979 } 979 }
980 callbacks->onSuccess(std::move(web_client)); 980 callbacks->onSuccess(std::move(web_client));
981 context_->client_callbacks.Remove(request_id); 981 context_->client_callbacks.Remove(request_id);
982 } 982 }
983 983
984 void ServiceWorkerContextClient::OnNavigateClientError(int request_id, 984 void ServiceWorkerContextClient::OnNavigateClientError(int request_id,
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1045 } 1045 }
1046 1046
1047 base::WeakPtr<ServiceWorkerContextClient> 1047 base::WeakPtr<ServiceWorkerContextClient>
1048 ServiceWorkerContextClient::GetWeakPtr() { 1048 ServiceWorkerContextClient::GetWeakPtr() {
1049 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); 1049 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread());
1050 DCHECK(context_); 1050 DCHECK(context_);
1051 return context_->weak_factory.GetWeakPtr(); 1051 return context_->weak_factory.GetWeakPtr();
1052 } 1052 }
1053 1053
1054 } // namespace content 1054 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698