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

Unified Diff: chrome/browser/policy/device_management_policy_provider.cc

Issue 5174006: Move DeviceManagementPolicyProvider into the profile. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address feedback. Created 10 years, 1 month 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/policy/device_management_policy_provider.cc
diff --git a/chrome/browser/policy/device_management_policy_provider.cc b/chrome/browser/policy/device_management_policy_provider.cc
index babc5a41b544a0d3cc73daec7a26d27b97c7b1e4..fbf36ce952650e50e923ec11880733bfbb4a6286 100644
--- a/chrome/browser/policy/device_management_policy_provider.cc
+++ b/chrome/browser/policy/device_management_policy_provider.cc
@@ -56,25 +56,16 @@ class DeviceManagementPolicyProvider::InitializeAfterIOThreadExistsTask
DeviceManagementPolicyProvider::DeviceManagementPolicyProvider(
const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list,
DeviceManagementBackend* backend,
+ TokenService* token_service,
const FilePath& storage_dir)
: ConfigurationPolicyProvider(policy_list),
backend_(backend),
+ token_service_(token_service),
storage_dir_(GetOrCreateDeviceManagementDir(storage_dir)),
policy_request_pending_(false) {
Initialize();
}
-DeviceManagementPolicyProvider::DeviceManagementPolicyProvider(
- const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list)
- : ConfigurationPolicyProvider(policy_list),
- policy_request_pending_(false) {
- FilePath user_dir;
- if (!PathService::Get(chrome::DIR_USER_DATA, &user_dir))
- NOTREACHED();
- storage_dir_ = GetOrCreateDeviceManagementDir(user_dir);
- Initialize();
-}
-
DeviceManagementPolicyProvider::~DeviceManagementPolicyProvider() {}
bool DeviceManagementPolicyProvider::Provide(
@@ -88,11 +79,11 @@ void DeviceManagementPolicyProvider::Observe(
NotificationType type,
const NotificationSource& source,
const NotificationDetails& details) {
- if ((type == NotificationType::DEVICE_TOKEN_AVAILABLE) &&
- (token_fetcher_.get() == Source<DeviceTokenFetcher>(source).ptr())) {
- if (!policy_request_pending_) {
- if (IsPolicyStale())
- SendPolicyRequest();
+ if (type == NotificationType::DEVICE_TOKEN_AVAILABLE) {
+ if (token_fetcher_.get() == Source<DeviceTokenFetcher>(source).ptr() &&
+ !policy_request_pending_ &&
+ IsPolicyStale()) {
+ SendPolicyRequest();
}
} else {
NOTREACHED();
@@ -114,6 +105,12 @@ void DeviceManagementPolicyProvider::OnError(
// TODO(danno): do something sensible in the error case, perhaps retry later?
}
+void DeviceManagementPolicyProvider::Shutdown() {
+ token_service_ = NULL;
+ if (token_fetcher_)
+ token_fetcher_->Shutdown();
+}
+
DeviceManagementBackend* DeviceManagementPolicyProvider::GetBackend() {
if (!backend_.get()) {
backend_.reset(new DeviceManagementBackendImpl(
@@ -141,8 +138,11 @@ void DeviceManagementPolicyProvider::Initialize() {
void DeviceManagementPolicyProvider::InitializeAfterIOThreadExists() {
const FilePath token_path = storage_dir_.Append(
FILE_PATH_LITERAL("Token"));
- token_fetcher_ = new DeviceTokenFetcher(GetBackend(), token_path);
- token_fetcher_->StartFetching();
+ if (token_service_) {
+ token_fetcher_ =
+ new DeviceTokenFetcher(GetBackend(), token_service_, token_path);
+ token_fetcher_->StartFetching();
+ }
}
void DeviceManagementPolicyProvider::SendPolicyRequest() {

Powered by Google App Engine
This is Rietveld 408576698