summaryrefslogtreecommitdiffstats
path: root/chrome/browser/policy/user_cloud_policy_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/policy/user_cloud_policy_manager.cc')
-rw-r--r--chrome/browser/policy/user_cloud_policy_manager.cc33
1 files changed, 17 insertions, 16 deletions
diff --git a/chrome/browser/policy/user_cloud_policy_manager.cc b/chrome/browser/policy/user_cloud_policy_manager.cc
index ccbc55d..84f4c67 100644
--- a/chrome/browser/policy/user_cloud_policy_manager.cc
+++ b/chrome/browser/policy/user_cloud_policy_manager.cc
@@ -56,32 +56,21 @@ UserCloudPolicyManager::~UserCloudPolicyManager() {
store_->RemoveObserver(this);
}
-#if defined(OS_CHROMEOS)
// static
scoped_ptr<UserCloudPolicyManager> UserCloudPolicyManager::Create(
+ Profile* profile,
bool wait_for_policy_fetch) {
- FilePath profile_dir;
- CHECK(PathService::Get(chrome::DIR_USER_DATA, &profile_dir));
- CommandLine* command_line = CommandLine::ForCurrentProcess();
- const FilePath policy_dir =
- profile_dir
- .Append(command_line->GetSwitchValuePath(switches::kLoginProfile))
- .Append(kPolicyDir);
- const FilePath policy_cache_file = policy_dir.Append(kPolicyCacheFile);
- const FilePath token_cache_file = policy_dir.Append(kTokenCacheFile);
-
- scoped_ptr<CloudPolicyStore> store(
- new UserCloudPolicyStoreChromeOS(
- chromeos::DBusThreadManager::Get()->GetSessionManagerClient(),
- token_cache_file, policy_cache_file));
+ scoped_ptr<CloudPolicyStore> store =
+ CloudPolicyStore::CreateUserPolicyStore(profile);
return scoped_ptr<UserCloudPolicyManager>(
new UserCloudPolicyManager(store.Pass(), wait_for_policy_fetch));
}
-#endif
void UserCloudPolicyManager::Initialize(PrefService* prefs,
DeviceManagementService* service,
UserAffiliation user_affiliation) {
+ DCHECK(service);
+ DCHECK(prefs);
DCHECK(!service_.get());
prefs_ = prefs;
scoped_ptr<CloudPolicyClient> client(
@@ -129,6 +118,18 @@ void UserCloudPolicyManager::CancelWaitForPolicyFetch() {
}
}
+bool UserCloudPolicyManager::IsClientRegistered() const {
+ if (!service_.get())
+ return false;
+ return service_->client()->is_registered();
+}
+
+void UserCloudPolicyManager::RegisterClient(const std::string& access_token) {
+ DCHECK(cloud_policy_service()) << "Callers must invoke Initialize() first";
+ if (!cloud_policy_service()->client()->is_registered())
+ cloud_policy_service()->client()->Register(access_token);
+}
+
bool UserCloudPolicyManager::IsInitializationComplete() const {
return store_->is_initialized() && !wait_for_policy_fetch_;
}