Index: ios/web/public/test/http_server.mm |
diff --git a/ios/web/public/test/http_server.mm b/ios/web/public/test/http_server.mm |
index 4e3dede6c16696fac9fcfece697e73861d6ae748..e733a5f8b5c342f90dd3b2b7879daea26273aeb6 100644 |
--- a/ios/web/public/test/http_server.mm |
+++ b/ios/web/public/test/http_server.mm |
@@ -48,11 +48,9 @@ web::ResponseProvider::Request ResponseProviderRequestFromGCDWebServerRequest( |
namespace web { |
namespace test { |
- |
RefCountedResponseProviderWrapper::RefCountedResponseProviderWrapper( |
- ResponseProvider* response_provider) { |
- response_provider_.reset(response_provider); |
-} |
+ std::unique_ptr<ResponseProvider> response_provider) |
+ : response_provider_(std::move(response_provider)) {} |
RefCountedResponseProviderWrapper::~RefCountedResponseProviderWrapper() {} |
@@ -68,12 +66,12 @@ HttpServer& HttpServer::GetSharedInstance() { |
// static |
HttpServer& HttpServer::GetSharedInstanceWithResponseProviders( |
- const ProviderList& response_providers) { |
+ ProviderList response_providers) { |
DCHECK([NSThread isMainThread]); |
HttpServer& server = HttpServer::GetSharedInstance(); |
- for (const auto& response_provider : response_providers) { |
- server.AddResponseProvider(response_provider); |
- } |
+ // Use non-const reference as the response_provider ownership is transfered. |
+ for (std::unique_ptr<ResponseProvider>& provider : response_providers) |
+ server.AddResponseProvider(std::move(provider)); |
return server; |
} |
@@ -193,14 +191,15 @@ scoped_refptr<RefCountedResponseProviderWrapper> |
return result; |
} |
-void HttpServer::AddResponseProvider(ResponseProvider* response_provider) { |
+void HttpServer::AddResponseProvider( |
+ std::unique_ptr<ResponseProvider> response_provider) { |
DCHECK([NSThread isMainThread]); |
DCHECK(IsRunning()) << "Can add a response provider only when the server is " |
<< "running."; |
base::AutoLock autolock(provider_list_lock_); |
scoped_refptr<RefCountedResponseProviderWrapper> |
ref_counted_response_provider( |
- new RefCountedResponseProviderWrapper(response_provider)); |
+ new RefCountedResponseProviderWrapper(std::move(response_provider))); |
providers_.push_back(ref_counted_response_provider); |
} |