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

Unified Diff: content/browser/service_worker/service_worker_context_core.cc

Issue 2340813003: Switch base::IDMap to use unique_ptr. (Closed)
Patch Set: unique_ptr<> versions of Add/AddWithId Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/id_map.h ('k') | content/browser/service_worker/service_worker_dispatcher_host.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/service_worker/service_worker_context_core.cc
diff --git a/content/browser/service_worker/service_worker_context_core.cc b/content/browser/service_worker/service_worker_context_core.cc
index d787d5c1d9e71227ef5df1d4b66fd1540badb902..457fc13fb6c325d20a5987d4ca5185c95f152f01 100644
--- a/content/browser/service_worker/service_worker_context_core.cc
+++ b/content/browser/service_worker/service_worker_context_core.cc
@@ -278,13 +278,14 @@ ServiceWorkerProviderHost* ServiceWorkerContextCore::GetProviderHost(
void ServiceWorkerContextCore::AddProviderHost(
std::unique_ptr<ServiceWorkerProviderHost> host) {
- ServiceWorkerProviderHost* host_ptr = host.release(); // we take ownership
- ProviderMap* map = GetProviderMapForProcess(host_ptr->process_id());
+ int process_id = host->process_id();
+ int provider_id = host->provider_id();
+ ProviderMap* map = GetProviderMapForProcess(process_id);
if (!map) {
- map = new ProviderMap;
- providers_->AddWithID(map, host_ptr->process_id());
+ providers_->AddWithID(base::MakeUnique<ProviderMap>(), process_id);
+ map = GetProviderMapForProcess(process_id);
}
- map->AddWithID(host_ptr, host_ptr->provider_id());
+ map->AddWithID(std::move(host), provider_id);
}
void ServiceWorkerContextCore::RemoveProviderHost(
@@ -634,16 +635,16 @@ ServiceWorkerContextCore::TransferProviderHostOut(int process_id,
int provider_id) {
ProviderMap* map = GetProviderMapForProcess(process_id);
ServiceWorkerProviderHost* transferee = map->Lookup(provider_id);
- ServiceWorkerProviderHost* replacement = new ServiceWorkerProviderHost(
- process_id, transferee->frame_id(), provider_id,
- transferee->provider_type(),
- transferee->is_parent_frame_secure()
- ? ServiceWorkerProviderHost::FrameSecurityLevel::SECURE
- : ServiceWorkerProviderHost::FrameSecurityLevel::INSECURE,
- AsWeakPtr(), transferee->dispatcher_host());
- map->Replace(provider_id, replacement);
+ std::unique_ptr<ServiceWorkerProviderHost> replacement =
+ base::MakeUnique<ServiceWorkerProviderHost>(
+ process_id, transferee->frame_id(), provider_id,
+ transferee->provider_type(),
+ transferee->is_parent_frame_secure()
+ ? ServiceWorkerProviderHost::FrameSecurityLevel::SECURE
+ : ServiceWorkerProviderHost::FrameSecurityLevel::INSECURE,
+ AsWeakPtr(), transferee->dispatcher_host());
transferee->PrepareForCrossSiteTransfer();
- return base::WrapUnique(transferee);
+ return map->Replace(provider_id, std::move(replacement));
}
void ServiceWorkerContextCore::TransferProviderHostIn(
@@ -661,8 +662,7 @@ void ServiceWorkerContextCore::TransferProviderHostIn(
new_provider_id,
temp->provider_type(),
temp->dispatcher_host());
- map->Replace(new_provider_id, transferee.release());
- delete temp;
+ map->Replace(new_provider_id, std::move(transferee));
}
void ServiceWorkerContextCore::ClearAllServiceWorkersForTest(
« no previous file with comments | « base/id_map.h ('k') | content/browser/service_worker/service_worker_dispatcher_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698