| Index: chrome/browser/policy/cloud_policy_subsystem.cc
|
| diff --git a/chrome/browser/policy/cloud_policy_subsystem.cc b/chrome/browser/policy/cloud_policy_subsystem.cc
|
| deleted file mode 100644
|
| index bb1689d36b01d8a7c99353e87274ad0a6973f193..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/policy/cloud_policy_subsystem.cc
|
| +++ /dev/null
|
| @@ -1,201 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/policy/cloud_policy_subsystem.h"
|
| -
|
| -#include <algorithm>
|
| -#include <string>
|
| -
|
| -#include "base/command_line.h"
|
| -#include "chrome/browser/browser_process.h"
|
| -#include "chrome/browser/policy/cloud_policy_cache_base.h"
|
| -#include "chrome/browser/policy/cloud_policy_controller.h"
|
| -#include "chrome/browser/policy/cloud_policy_data_store.h"
|
| -#include "chrome/browser/policy/device_management_service.h"
|
| -#include "chrome/browser/policy/device_token_fetcher.h"
|
| -#include "chrome/browser/policy/policy_notifier.h"
|
| -#include "chrome/browser/prefs/pref_service.h"
|
| -#include "chrome/common/chrome_notification_types.h"
|
| -#include "chrome/common/chrome_switches.h"
|
| -#include "chrome/common/pref_names.h"
|
| -#include "content/public/browser/notification_details.h"
|
| -#include "content/public/browser/notification_source.h"
|
| -
|
| -namespace {
|
| -
|
| -// Default refresh rate.
|
| -const int64 kDefaultPolicyRefreshRateMs = 3 * 60 * 60 * 1000; // 3 hours.
|
| -
|
| -// Refresh rate sanity interval bounds.
|
| -const int64 kPolicyRefreshRateMinMs = 30 * 60 * 1000; // 30 minutes
|
| -const int64 kPolicyRefreshRateMaxMs = 24 * 60 * 60 * 1000; // 1 day
|
| -
|
| -} // namespace
|
| -
|
| -namespace policy {
|
| -
|
| -CloudPolicySubsystem::ObserverRegistrar::ObserverRegistrar(
|
| - CloudPolicySubsystem* cloud_policy_subsystem,
|
| - CloudPolicySubsystem::Observer* observer)
|
| - : observer_(observer) {
|
| - policy_notifier_ = cloud_policy_subsystem->notifier();
|
| - policy_notifier_->AddObserver(observer);
|
| -}
|
| -
|
| -CloudPolicySubsystem::ObserverRegistrar::~ObserverRegistrar() {
|
| - if (policy_notifier_)
|
| - policy_notifier_->RemoveObserver(observer_);
|
| -}
|
| -
|
| -CloudPolicySubsystem::CloudPolicySubsystem(
|
| - CloudPolicyDataStore* data_store,
|
| - CloudPolicyCacheBase* policy_cache,
|
| - const std::string& device_management_url) {
|
| - Initialize(data_store, policy_cache, device_management_url);
|
| -}
|
| -
|
| -CloudPolicySubsystem::~CloudPolicySubsystem() {
|
| - cloud_policy_controller_.reset();
|
| - device_token_fetcher_.reset();
|
| - cloud_policy_cache_.reset();
|
| - device_management_service_.reset();
|
| - net::NetworkChangeNotifier::RemoveIPAddressObserver(this);
|
| -}
|
| -
|
| -void CloudPolicySubsystem::OnIPAddressChanged() {
|
| - if (state() == CloudPolicySubsystem::NETWORK_ERROR &&
|
| - cloud_policy_controller_.get()) {
|
| - cloud_policy_controller_->Retry();
|
| - }
|
| -}
|
| -
|
| -void CloudPolicySubsystem::Initialize(
|
| - CloudPolicyDataStore* data_store,
|
| - CloudPolicyCacheBase* policy_cache,
|
| - const std::string& device_management_url) {
|
| - device_management_url_ = device_management_url;
|
| - data_store_ = data_store;
|
| - net::NetworkChangeNotifier::AddIPAddressObserver(this);
|
| - notifier_.reset(new PolicyNotifier());
|
| - if (!device_management_url_.empty()) {
|
| - device_management_service_.reset(new DeviceManagementService(
|
| - device_management_url));
|
| - cloud_policy_cache_.reset(policy_cache);
|
| - cloud_policy_cache_->set_policy_notifier(notifier_.get());
|
| - cloud_policy_cache_->Load();
|
| - CreateDeviceTokenFetcher();
|
| - }
|
| -}
|
| -
|
| -void CloudPolicySubsystem::CompleteInitialization(
|
| - const char* refresh_pref_name,
|
| - int64 delay_milliseconds) {
|
| - if (!device_management_url_.empty()) {
|
| - DCHECK(device_management_service_.get());
|
| - DCHECK(cloud_policy_cache_.get());
|
| - DCHECK(device_token_fetcher_.get());
|
| -
|
| - refresh_pref_name_ = refresh_pref_name;
|
| - CreateCloudPolicyController();
|
| - device_management_service_->ScheduleInitialization(delay_milliseconds);
|
| -
|
| - PrefService* local_state = g_browser_process->local_state();
|
| - DCHECK(pref_change_registrar_.IsEmpty());
|
| - pref_change_registrar_.Init(local_state);
|
| - pref_change_registrar_.Add(
|
| - refresh_pref_name_,
|
| - base::Bind(&CloudPolicySubsystem::OnRefreshPrefChanged,
|
| - base::Unretained(this)));
|
| - UpdatePolicyRefreshRate(local_state->GetInteger(refresh_pref_name_));
|
| - }
|
| -}
|
| -
|
| -void CloudPolicySubsystem::Shutdown() {
|
| - if (device_management_service_.get())
|
| - device_management_service_->Shutdown();
|
| - cloud_policy_controller_.reset();
|
| - cloud_policy_cache_.reset();
|
| - pref_change_registrar_.RemoveAll();
|
| -}
|
| -
|
| -CloudPolicySubsystem::PolicySubsystemState CloudPolicySubsystem::state() {
|
| - return notifier_->state();
|
| -}
|
| -
|
| -CloudPolicySubsystem::ErrorDetails CloudPolicySubsystem::error_details() {
|
| - return notifier_->error_details();
|
| -}
|
| -
|
| -void CloudPolicySubsystem::Reset() {
|
| - data_store_->Reset();
|
| - cloud_policy_cache_->Reset();
|
| - cloud_policy_controller_->Reset();
|
| - device_token_fetcher_->Reset();
|
| -}
|
| -
|
| -void CloudPolicySubsystem::RefreshPolicies(bool wait_for_auth_token) {
|
| - data_store_->set_policy_fetching_enabled(true);
|
| - if (cloud_policy_controller_.get())
|
| - cloud_policy_controller_->RefreshPolicies(wait_for_auth_token);
|
| - // Make sure the |device_management_service_| is rolling.
|
| - device_management_service_->ScheduleInitialization(0);
|
| -}
|
| -
|
| -// static
|
| -void CloudPolicySubsystem::RegisterPrefs(PrefServiceSimple* pref_service) {
|
| - pref_service->RegisterIntegerPref(prefs::kDevicePolicyRefreshRate,
|
| - kDefaultPolicyRefreshRateMs);
|
| - pref_service->RegisterIntegerPref(prefs::kUserPolicyRefreshRate,
|
| - kDefaultPolicyRefreshRateMs);
|
| -}
|
| -
|
| -void CloudPolicySubsystem::UpdatePolicyRefreshRate(int64 refresh_rate) {
|
| - if (cloud_policy_controller_.get()) {
|
| - // Clamp to sane values.
|
| - refresh_rate = std::max(kPolicyRefreshRateMinMs, refresh_rate);
|
| - refresh_rate = std::min(kPolicyRefreshRateMaxMs, refresh_rate);
|
| - cloud_policy_controller_->SetRefreshRate(refresh_rate);
|
| - }
|
| -}
|
| -
|
| -void CloudPolicySubsystem::OnRefreshPrefChanged() {
|
| - PrefService* local_state = g_browser_process->local_state();
|
| - UpdatePolicyRefreshRate(local_state->GetInteger(refresh_pref_name_));
|
| -}
|
| -
|
| -void CloudPolicySubsystem::ScheduleServiceInitialization(
|
| - int64 delay_milliseconds) {
|
| - if (device_management_service_.get())
|
| - device_management_service_->ScheduleInitialization(delay_milliseconds);
|
| -}
|
| -
|
| -
|
| -void CloudPolicySubsystem::CreateDeviceTokenFetcher() {
|
| - device_token_fetcher_.reset(
|
| - new DeviceTokenFetcher(device_management_service_.get(),
|
| - cloud_policy_cache_.get(),
|
| - data_store_,
|
| - notifier_.get()));
|
| -}
|
| -
|
| -void CloudPolicySubsystem::CreateCloudPolicyController() {
|
| - DCHECK(!cloud_policy_controller_.get());
|
| - cloud_policy_controller_.reset(
|
| - new CloudPolicyController(device_management_service_.get(),
|
| - cloud_policy_cache_.get(),
|
| - device_token_fetcher_.get(),
|
| - data_store_,
|
| - notifier_.get()));
|
| -}
|
| -
|
| -CloudPolicyCacheBase* CloudPolicySubsystem::GetCloudPolicyCacheBase() const {
|
| - return cloud_policy_cache_.get();
|
| -}
|
| -
|
| -CloudPolicySubsystem::CloudPolicySubsystem()
|
| - : refresh_pref_name_(NULL),
|
| - data_store_(NULL) {
|
| -}
|
| -
|
| -} // namespace policy
|
|
|