Index: chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc |
diff --git a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc |
index 49f2f77adfa41aee5ccd178af23d246110bd2f0b..955d4f443379c4fd4df160d55e1f594735fb1dd8 100644 |
--- a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc |
+++ b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc |
@@ -6,12 +6,14 @@ |
#include <math.h> |
#include <stddef.h> |
+ |
#include <algorithm> |
#include <utility> |
#include <vector> |
#include "base/feature_list.h" |
#include "base/macros.h" |
+#include "base/memory/ptr_util.h" |
#include "base/metrics/field_trial.h" |
#include "base/metrics/histogram.h" |
#include "base/process/process_info.h" |
@@ -150,14 +152,14 @@ struct IncidentReportingService::ProfileContext { |
// The incidents collected for this profile pending creation and/or upload. |
// Will contain null values for pruned incidents. |
- std::vector<scoped_ptr<Incident>> incidents; |
+ std::vector<std::unique_ptr<Incident>> incidents; |
// The incidents data of which should be cleared. |
- std::vector<scoped_ptr<Incident>> incidents_to_clear; |
+ std::vector<std::unique_ptr<Incident>> incidents_to_clear; |
// State storage for this profile; null until PROFILE_ADDED notification is |
// received. |
- scoped_ptr<StateStore> state_store; |
+ std::unique_ptr<StateStore> state_store; |
// False until PROFILE_ADDED notification is received. |
bool added; |
@@ -171,14 +173,14 @@ class IncidentReportingService::UploadContext { |
typedef std::map<ProfileContext*, std::vector<PersistentIncidentState>> |
PersistentIncidentStateCollection; |
- explicit UploadContext(scoped_ptr<ClientIncidentReport> report); |
+ explicit UploadContext(std::unique_ptr<ClientIncidentReport> report); |
~UploadContext(); |
// The report being uploaded. |
- scoped_ptr<ClientIncidentReport> report; |
+ std::unique_ptr<ClientIncidentReport> report; |
// The uploader in use. This is NULL until the CSD killswitch is checked. |
- scoped_ptr<IncidentReportUploader> uploader; |
+ std::unique_ptr<IncidentReportUploader> uploader; |
// A mapping of profile contexts to the data to be persisted upon successful |
// upload. |
@@ -197,19 +199,19 @@ class IncidentReportingService::Receiver : public IncidentReceiver { |
// IncidentReceiver methods: |
void AddIncidentForProfile(Profile* profile, |
- scoped_ptr<Incident> incident) override; |
- void AddIncidentForProcess(scoped_ptr<Incident> incident) override; |
- void ClearIncidentForProcess(scoped_ptr<Incident> incident) override; |
+ std::unique_ptr<Incident> incident) override; |
+ void AddIncidentForProcess(std::unique_ptr<Incident> incident) override; |
+ void ClearIncidentForProcess(std::unique_ptr<Incident> incident) override; |
private: |
static void AddIncidentOnMainThread( |
const base::WeakPtr<IncidentReportingService>& service, |
Profile* profile, |
- scoped_ptr<Incident> incident); |
+ std::unique_ptr<Incident> incident); |
static void ClearIncidentOnMainThread( |
const base::WeakPtr<IncidentReportingService>& service, |
Profile* profile, |
- scoped_ptr<Incident> incident); |
+ std::unique_ptr<Incident> incident); |
base::WeakPtr<IncidentReportingService> service_; |
scoped_refptr<base::SingleThreadTaskRunner> thread_runner_; |
@@ -228,14 +230,14 @@ IncidentReportingService::Receiver::~Receiver() { |
void IncidentReportingService::Receiver::AddIncidentForProfile( |
Profile* profile, |
- scoped_ptr<Incident> incident) { |
+ std::unique_ptr<Incident> incident) { |
DCHECK(thread_runner_->BelongsToCurrentThread()); |
DCHECK(profile); |
AddIncidentOnMainThread(service_, profile, std::move(incident)); |
} |
void IncidentReportingService::Receiver::AddIncidentForProcess( |
- scoped_ptr<Incident> incident) { |
+ std::unique_ptr<Incident> incident) { |
if (thread_runner_->BelongsToCurrentThread()) { |
AddIncidentOnMainThread(service_, nullptr, std::move(incident)); |
} else { |
@@ -247,7 +249,7 @@ void IncidentReportingService::Receiver::AddIncidentForProcess( |
} |
void IncidentReportingService::Receiver::ClearIncidentForProcess( |
- scoped_ptr<Incident> incident) { |
+ std::unique_ptr<Incident> incident) { |
if (thread_runner_->BelongsToCurrentThread()) { |
ClearIncidentOnMainThread(service_, nullptr, std::move(incident)); |
} else { |
@@ -271,7 +273,7 @@ bool IncidentReportingService::HasIncidentsToUpload() const { |
void IncidentReportingService::Receiver::AddIncidentOnMainThread( |
const base::WeakPtr<IncidentReportingService>& service, |
Profile* profile, |
- scoped_ptr<Incident> incident) { |
+ std::unique_ptr<Incident> incident) { |
if (service) |
service->AddIncident(profile, std::move(incident)); |
else |
@@ -280,9 +282,9 @@ void IncidentReportingService::Receiver::AddIncidentOnMainThread( |
// static |
void IncidentReportingService::Receiver::ClearIncidentOnMainThread( |
- const base::WeakPtr<IncidentReportingService>& service, |
- Profile* profile, |
- scoped_ptr<Incident> incident) { |
+ const base::WeakPtr<IncidentReportingService>& service, |
+ Profile* profile, |
+ std::unique_ptr<Incident> incident) { |
if (service) |
service->ClearIncident(profile, std::move(incident)); |
} |
@@ -302,7 +304,7 @@ bool IncidentReportingService::ProfileContext::HasIncidents() const { |
} |
IncidentReportingService::UploadContext::UploadContext( |
- scoped_ptr<ClientIncidentReport> report) |
+ std::unique_ptr<ClientIncidentReport> report) |
: report(std::move(report)) {} |
IncidentReportingService::UploadContext::~UploadContext() { |
@@ -385,17 +387,19 @@ IncidentReportingService::~IncidentReportingService() { |
STLDeleteValues(&profiles_); |
} |
-scoped_ptr<IncidentReceiver> IncidentReportingService::GetIncidentReceiver() { |
- return make_scoped_ptr(new Receiver(receiver_weak_ptr_factory_.GetWeakPtr())); |
+std::unique_ptr<IncidentReceiver> |
+IncidentReportingService::GetIncidentReceiver() { |
+ return base::WrapUnique( |
+ new Receiver(receiver_weak_ptr_factory_.GetWeakPtr())); |
} |
-scoped_ptr<TrackedPreferenceValidationDelegate> |
+std::unique_ptr<TrackedPreferenceValidationDelegate> |
IncidentReportingService::CreatePreferenceValidationDelegate(Profile* profile) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
if (profile->IsOffTheRecord()) |
- return scoped_ptr<TrackedPreferenceValidationDelegate>(); |
- return scoped_ptr<TrackedPreferenceValidationDelegate>( |
+ return std::unique_ptr<TrackedPreferenceValidationDelegate>(); |
+ return std::unique_ptr<TrackedPreferenceValidationDelegate>( |
new PreferenceValidationDelegate(profile, GetIncidentReceiver())); |
} |
@@ -555,7 +559,8 @@ void IncidentReportingService::OnProfileAdded(Profile* profile) { |
BeginDownloadCollection(); |
} |
-scoped_ptr<LastDownloadFinder> IncidentReportingService::CreateDownloadFinder( |
+std::unique_ptr<LastDownloadFinder> |
+IncidentReportingService::CreateDownloadFinder( |
const LastDownloadFinder::LastDownloadCallback& callback) { |
return LastDownloadFinder::Create( |
base::Bind(&DownloadMetadataManager::GetDownloadDetails, |
@@ -563,7 +568,8 @@ scoped_ptr<LastDownloadFinder> IncidentReportingService::CreateDownloadFinder( |
callback); |
} |
-scoped_ptr<IncidentReportUploader> IncidentReportingService::StartReportUpload( |
+std::unique_ptr<IncidentReportUploader> |
+IncidentReportingService::StartReportUpload( |
const IncidentReportUploader::OnResultCallback& callback, |
const scoped_refptr<net::URLRequestContextGetter>& request_context_getter, |
const ClientIncidentReport& report) { |
@@ -599,7 +605,7 @@ void IncidentReportingService::OnProfileDestroyed(Profile* profile) { |
return; |
// Take ownership of the context. |
- scoped_ptr<ProfileContext> context(it->second); |
+ std::unique_ptr<ProfileContext> context(it->second); |
it->second = nullptr; |
// TODO(grt): Persist incidents for upload on future profile load. |
@@ -641,7 +647,7 @@ Profile* IncidentReportingService::FindEligibleProfile() const { |
} |
void IncidentReportingService::AddIncident(Profile* profile, |
- scoped_ptr<Incident> incident) { |
+ std::unique_ptr<Incident> incident) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
// Ignore incidents from off-the-record profiles. |
@@ -683,8 +689,9 @@ void IncidentReportingService::AddIncident(Profile* profile, |
BeginReportProcessing(); |
} |
-void IncidentReportingService::ClearIncident(Profile* profile, |
- scoped_ptr<Incident> incident) { |
+void IncidentReportingService::ClearIncident( |
+ Profile* profile, |
+ std::unique_ptr<Incident> incident) { |
ProfileContext* context = GetOrCreateProfileContext(profile); |
context->incidents_to_clear.push_back(std::move(incident)); |
// Begin processing to handle cleared incidents following collation. |
@@ -758,11 +765,10 @@ void IncidentReportingService::BeginEnvironmentCollection() { |
new ClientIncidentReport_EnvironmentData(); |
environment_collection_pending_ = |
environment_collection_task_runner_->PostTaskAndReply( |
- FROM_HERE, |
- base::Bind(collect_environment_data_fn_, environment_data), |
+ FROM_HERE, base::Bind(collect_environment_data_fn_, environment_data), |
base::Bind(&IncidentReportingService::OnEnvironmentDataCollected, |
weak_ptr_factory_.GetWeakPtr(), |
- base::Passed(make_scoped_ptr(environment_data)))); |
+ base::Passed(base::WrapUnique(environment_data)))); |
// Posting the task will fail if the runner has been shut down. This should |
// never happen since the blocking pool is shut down after this service. |
@@ -781,7 +787,7 @@ void IncidentReportingService::CancelEnvironmentCollection() { |
} |
void IncidentReportingService::OnEnvironmentDataCollected( |
- scoped_ptr<ClientIncidentReport_EnvironmentData> environment_data) { |
+ std::unique_ptr<ClientIncidentReport_EnvironmentData> environment_data) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
DCHECK(environment_collection_pending_); |
DCHECK(report_ && !report_->has_environment()); |
@@ -855,8 +861,8 @@ void IncidentReportingService::CancelDownloadCollection() { |
} |
void IncidentReportingService::OnLastDownloadFound( |
- scoped_ptr<ClientIncidentReport_DownloadDetails> last_binary_download, |
- scoped_ptr<ClientIncidentReport_NonBinaryDownloadDetails> |
+ std::unique_ptr<ClientIncidentReport_DownloadDetails> last_binary_download, |
+ std::unique_ptr<ClientIncidentReport_NonBinaryDownloadDetails> |
last_non_binary_download) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
DCHECK(report_); |
@@ -889,7 +895,7 @@ void IncidentReportingService::ProcessIncidentsIfCollectionComplete() { |
} |
// Take ownership of the report and clear things for future reports. |
- scoped_ptr<ClientIncidentReport> report(std::move(report_)); |
+ std::unique_ptr<ClientIncidentReport> report(std::move(report_)); |
first_incident_time_ = base::Time(); |
last_incident_time_ = base::TimeTicks(); |
@@ -1018,7 +1024,7 @@ void IncidentReportingService::ProcessIncidentsIfCollectionComplete() { |
// Perform final synchronous collection tasks for the report. |
DoExtensionCollection(report->mutable_extension_data()); |
- scoped_ptr<UploadContext> context(new UploadContext(std::move(report))); |
+ std::unique_ptr<UploadContext> context(new UploadContext(std::move(report))); |
context->profiles_to_state.swap(profiles_to_state); |
if (!database_manager_.get()) { |
// No database manager during testing. Take ownership of the context and |
@@ -1061,12 +1067,11 @@ void IncidentReportingService::OnKillSwitchResult(UploadContext* context, |
if (!context->uploader) { |
OnReportUploadResult(context, |
IncidentReportUploader::UPLOAD_INVALID_REQUEST, |
- scoped_ptr<ClientIncidentResponse>()); |
+ std::unique_ptr<ClientIncidentResponse>()); |
} |
} else { |
- OnReportUploadResult(context, |
- IncidentReportUploader::UPLOAD_SUPPRESSED, |
- scoped_ptr<ClientIncidentResponse>()); |
+ OnReportUploadResult(context, IncidentReportUploader::UPLOAD_SUPPRESSED, |
+ std::unique_ptr<ClientIncidentResponse>()); |
} |
} |
@@ -1083,7 +1088,7 @@ void IncidentReportingService::HandleResponse(const UploadContext& context) { |
void IncidentReportingService::OnReportUploadResult( |
UploadContext* context, |
IncidentReportUploader::Result result, |
- scoped_ptr<ClientIncidentResponse> response) { |
+ std::unique_ptr<ClientIncidentResponse> response) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
UMA_HISTOGRAM_ENUMERATION( |
@@ -1091,12 +1096,13 @@ void IncidentReportingService::OnReportUploadResult( |
// The upload is no longer outstanding, so take ownership of the context (from |
// the collection of outstanding uploads) in this scope. |
- auto it = std::find_if(uploads_.begin(), uploads_.end(), |
- [context] (const scoped_ptr<UploadContext>& value) { |
- return value.get() == context; |
- }); |
+ auto it = |
+ std::find_if(uploads_.begin(), uploads_.end(), |
+ [context](const std::unique_ptr<UploadContext>& value) { |
+ return value.get() == context; |
+ }); |
DCHECK(it != uploads_.end()); |
- scoped_ptr<UploadContext> upload(std::move(*it)); |
+ std::unique_ptr<UploadContext> upload(std::move(*it)); |
uploads_.erase(it); |
if (result == IncidentReportUploader::UPLOAD_SUCCESS) |