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

Unified Diff: chrome/browser/chromeos/policy/user_cloud_policy_store_chromeos.cc

Issue 2817643002: Make CloudPolicyValidator memory management clearer (Closed)
Patch Set: Cleaner memory management in CloudPolicyValidator Created 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/policy/user_cloud_policy_store_chromeos.cc
diff --git a/chrome/browser/chromeos/policy/user_cloud_policy_store_chromeos.cc b/chrome/browser/chromeos/policy/user_cloud_policy_store_chromeos.cc
index f73ec0ceb7924b4cee34ba619a98db1525294b92..5ede8727988b73d6db4025c9e790edc15eb27b97 100644
--- a/chrome/browser/chromeos/policy/user_cloud_policy_store_chromeos.cc
+++ b/chrome/browser/chromeos/policy/user_cloud_policy_store_chromeos.cc
@@ -14,6 +14,7 @@
#include "base/location.h"
#include "base/logging.h"
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/metrics/histogram_macros.h"
#include "base/sequenced_task_runner.h"
#include "base/stl_util.h"
@@ -161,9 +162,9 @@ void UserCloudPolicyStoreChromeOS::ValidatePolicyForStore(
cached_policy_key_, ExtractDomain(account_id_.GetUserEmail()));
}
- // Start validation. The Validator will delete itself once validation is
- // complete.
- validator.release()->StartValidation(
+ // Start validation.
+ UserCloudPolicyValidator::StartValidation(
+ std::move(validator),
base::Bind(&UserCloudPolicyStoreChromeOS::OnPolicyToStoreValidated,
weak_factory_.GetWeakPtr()));
}
@@ -245,12 +246,8 @@ void UserCloudPolicyStoreChromeOS::OnPolicyRetrieved(
void UserCloudPolicyStoreChromeOS::ValidateRetrievedPolicy(
std::unique_ptr<em::PolicyFetchResponse> policy) {
- // Create and configure a validator for the loaded policy.
- std::unique_ptr<UserCloudPolicyValidator> validator =
- CreateValidatorForLoad(std::move(policy));
- // Start validation. The Validator will delete itself once validation is
- // complete.
- validator.release()->StartValidation(
+ UserCloudPolicyValidator::StartValidation(
+ CreateValidatorForLoad(std::move(policy)),
base::Bind(&UserCloudPolicyStoreChromeOS::OnRetrievedPolicyValidated,
weak_factory_.GetWeakPtr()));
}

Powered by Google App Engine
This is Rietveld 408576698