| Index: content/browser/service_worker/service_worker_context_watcher.cc
|
| diff --git a/content/browser/service_worker/service_worker_context_watcher.cc b/content/browser/service_worker/service_worker_context_watcher.cc
|
| index 485edcc93701c675ce6ad23568d6678c4ee17aa5..8d66426fe1908214dc6e3814a55056e2a10622de 100644
|
| --- a/content/browser/service_worker/service_worker_context_watcher.cc
|
| +++ b/content/browser/service_worker/service_worker_context_watcher.cc
|
| @@ -7,7 +7,7 @@
|
| #include <utility>
|
|
|
| #include "base/bind.h"
|
| -#include "base/containers/scoped_ptr_hash_map.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "content/browser/service_worker/embedded_worker_status.h"
|
| #include "content/browser/service_worker/service_worker_context_observer.h"
|
| #include "content/browser/service_worker/service_worker_context_wrapper.h"
|
| @@ -66,8 +66,7 @@ void ServiceWorkerContextWatcher::OnStoredRegistrationsOnIOThread(
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| context_->AddObserver(this);
|
|
|
| - base::ScopedPtrHashMap<int64_t,
|
| - std::unique_ptr<ServiceWorkerRegistrationInfo>>
|
| + std::unordered_map<int64_t, std::unique_ptr<ServiceWorkerRegistrationInfo>>
|
| registration_info_map;
|
| for (const auto& registration : stored_registrations)
|
| StoreRegistrationInfo(registration, ®istration_info_map);
|
| @@ -109,15 +108,13 @@ ServiceWorkerContextWatcher::~ServiceWorkerContextWatcher() {
|
|
|
| void ServiceWorkerContextWatcher::StoreRegistrationInfo(
|
| const ServiceWorkerRegistrationInfo& registration_info,
|
| - base::ScopedPtrHashMap<int64_t,
|
| - std::unique_ptr<ServiceWorkerRegistrationInfo>>*
|
| + std::unordered_map<int64_t, std::unique_ptr<ServiceWorkerRegistrationInfo>>*
|
| info_map) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| if (registration_info.registration_id == kInvalidServiceWorkerRegistrationId)
|
| return;
|
| - info_map->set(registration_info.registration_id,
|
| - std::unique_ptr<ServiceWorkerRegistrationInfo>(
|
| - new ServiceWorkerRegistrationInfo(registration_info)));
|
| + (*info_map)[registration_info.registration_id] =
|
| + base::MakeUnique<ServiceWorkerRegistrationInfo>(registration_info);
|
| StoreVersionInfo(registration_info.active_version);
|
| StoreVersionInfo(registration_info.waiting_version);
|
| StoreVersionInfo(registration_info.installing_version);
|
| @@ -128,9 +125,8 @@ void ServiceWorkerContextWatcher::StoreVersionInfo(
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| if (version_info.version_id == kInvalidServiceWorkerVersionId)
|
| return;
|
| - version_info_map_.set(version_info.version_id,
|
| - std::unique_ptr<ServiceWorkerVersionInfo>(
|
| - new ServiceWorkerVersionInfo(version_info)));
|
| + version_info_map_[version_info.version_id] =
|
| + base::MakeUnique<ServiceWorkerVersionInfo>(version_info);
|
| }
|
|
|
| void ServiceWorkerContextWatcher::SendRegistrationInfo(
|
| @@ -168,24 +164,26 @@ void ServiceWorkerContextWatcher::OnNewLiveRegistration(int64_t registration_id,
|
| void ServiceWorkerContextWatcher::OnNewLiveVersion(
|
| const ServiceWorkerVersionInfo& version_info) {
|
| int64_t version_id = version_info.version_id;
|
| - if (ServiceWorkerVersionInfo* version = version_info_map_.get(version_id)) {
|
| - DCHECK_EQ(version->registration_id, version_info.registration_id);
|
| - DCHECK_EQ(version->script_url, version_info.script_url);
|
| + auto it = version_info_map_.find(version_id);
|
| + if (it != version_info_map_.end()) {
|
| + DCHECK_EQ(it->second->registration_id, version_info.registration_id);
|
| + DCHECK_EQ(it->second->script_url, version_info.script_url);
|
| return;
|
| }
|
|
|
| - std::unique_ptr<ServiceWorkerVersionInfo> version(
|
| - new ServiceWorkerVersionInfo(version_info));
|
| + std::unique_ptr<ServiceWorkerVersionInfo> version =
|
| + base::MakeUnique<ServiceWorkerVersionInfo>(version_info);
|
| SendVersionInfo(*version);
|
| if (!IsStoppedAndRedundant(*version))
|
| - version_info_map_.set(version_id, std::move(version));
|
| + version_info_map_[version_id] = std::move(version);
|
| }
|
|
|
| void ServiceWorkerContextWatcher::OnRunningStateChanged(
|
| int64_t version_id,
|
| content::EmbeddedWorkerStatus running_status) {
|
| - ServiceWorkerVersionInfo* version = version_info_map_.get(version_id);
|
| - DCHECK(version);
|
| + auto it = version_info_map_.find(version_id);
|
| + DCHECK(it != version_info_map_.end());
|
| + ServiceWorkerVersionInfo* version = it->second.get();
|
| if (version->running_status == running_status)
|
| return;
|
| version->running_status = running_status;
|
| @@ -197,8 +195,9 @@ void ServiceWorkerContextWatcher::OnRunningStateChanged(
|
| void ServiceWorkerContextWatcher::OnVersionStateChanged(
|
| int64_t version_id,
|
| content::ServiceWorkerVersion::Status status) {
|
| - ServiceWorkerVersionInfo* version = version_info_map_.get(version_id);
|
| - DCHECK(version);
|
| + auto it = version_info_map_.find(version_id);
|
| + DCHECK(it != version_info_map_.end());
|
| + ServiceWorkerVersionInfo* version = it->second.get();
|
| if (version->status == status)
|
| return;
|
| version->status = status;
|
| @@ -211,8 +210,9 @@ void ServiceWorkerContextWatcher::OnVersionDevToolsRoutingIdChanged(
|
| int64_t version_id,
|
| int process_id,
|
| int devtools_agent_route_id) {
|
| - ServiceWorkerVersionInfo* version = version_info_map_.get(version_id);
|
| - DCHECK(version);
|
| + auto it = version_info_map_.find(version_id);
|
| + DCHECK(it != version_info_map_.end());
|
| + ServiceWorkerVersionInfo* version = it->second.get();
|
| if (version->process_id == process_id &&
|
| version->devtools_agent_route_id == devtools_agent_route_id) {
|
| return;
|
| @@ -228,8 +228,9 @@ void ServiceWorkerContextWatcher::OnMainScriptHttpResponseInfoSet(
|
| int64_t version_id,
|
| base::Time script_response_time,
|
| base::Time script_last_modified) {
|
| - ServiceWorkerVersionInfo* version = version_info_map_.get(version_id);
|
| - DCHECK(version);
|
| + auto it = version_info_map_.find(version_id);
|
| + DCHECK(it != version_info_map_.end());
|
| + ServiceWorkerVersionInfo* version = it->second.get();
|
| version->script_response_time = script_response_time;
|
| version->script_last_modified = script_last_modified;
|
| SendVersionInfo(*version);
|
| @@ -240,8 +241,9 @@ void ServiceWorkerContextWatcher::OnErrorReported(int64_t version_id,
|
| int thread_id,
|
| const ErrorInfo& info) {
|
| int64_t registration_id = kInvalidServiceWorkerRegistrationId;
|
| - if (ServiceWorkerVersionInfo* version = version_info_map_.get(version_id))
|
| - registration_id = version->registration_id;
|
| + auto it = version_info_map_.find(version_id);
|
| + if (it != version_info_map_.end())
|
| + registration_id = it->second->registration_id;
|
| BrowserThread::PostTask(
|
| BrowserThread::UI, FROM_HERE,
|
| base::Bind(error_callback_, registration_id, version_id, info));
|
| @@ -255,8 +257,9 @@ void ServiceWorkerContextWatcher::OnReportConsoleMessage(
|
| if (message.message_level != CONSOLE_MESSAGE_LEVEL_ERROR)
|
| return;
|
| int64_t registration_id = kInvalidServiceWorkerRegistrationId;
|
| - if (ServiceWorkerVersionInfo* version = version_info_map_.get(version_id))
|
| - registration_id = version->registration_id;
|
| + auto it = version_info_map_.find(version_id);
|
| + if (it != version_info_map_.end())
|
| + registration_id = it->second->registration_id;
|
| BrowserThread::PostTask(
|
| BrowserThread::UI, FROM_HERE,
|
| base::Bind(error_callback_, registration_id, version_id,
|
| @@ -270,8 +273,9 @@ void ServiceWorkerContextWatcher::OnControlleeAdded(
|
| int process_id,
|
| int route_id,
|
| ServiceWorkerProviderType type) {
|
| - ServiceWorkerVersionInfo* version = version_info_map_.get(version_id);
|
| - DCHECK(version);
|
| + auto it = version_info_map_.find(version_id);
|
| + DCHECK(it != version_info_map_.end());
|
| + ServiceWorkerVersionInfo* version = it->second.get();
|
| version->clients[uuid] =
|
| ServiceWorkerVersionInfo::ClientInfo(process_id, route_id, type);
|
| SendVersionInfo(*version);
|
| @@ -279,9 +283,10 @@ void ServiceWorkerContextWatcher::OnControlleeAdded(
|
|
|
| void ServiceWorkerContextWatcher::OnControlleeRemoved(int64_t version_id,
|
| const std::string& uuid) {
|
| - ServiceWorkerVersionInfo* version = version_info_map_.get(version_id);
|
| - if (!version)
|
| + auto it = version_info_map_.find(version_id);
|
| + if (it == version_info_map_.end())
|
| return;
|
| + ServiceWorkerVersionInfo* version = it->second.get();
|
| version->clients.erase(uuid);
|
| SendVersionInfo(*version);
|
| }
|
|
|