| Index: chrome/browser/policy/cloud_policy_cache_base.cc
|
| diff --git a/chrome/browser/policy/cloud_policy_cache_base.cc b/chrome/browser/policy/cloud_policy_cache_base.cc
|
| deleted file mode 100644
|
| index 09fff87aa85df9321f45176219e9e64d0852a8b5..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/policy/cloud_policy_cache_base.cc
|
| +++ /dev/null
|
| @@ -1,157 +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_cache_base.h"
|
| -
|
| -#include <string>
|
| -
|
| -#include "base/logging.h"
|
| -#include "base/metrics/histogram.h"
|
| -#include "chrome/browser/policy/enterprise_metrics.h"
|
| -#include "chrome/browser/policy/policy_notifier.h"
|
| -
|
| -namespace em = enterprise_management;
|
| -
|
| -namespace policy {
|
| -
|
| -CloudPolicyCacheBase::CloudPolicyCacheBase()
|
| - : notifier_(NULL),
|
| - initialization_complete_(false),
|
| - is_unmanaged_(false),
|
| - machine_id_missing_(false) {
|
| - public_key_version_.version = 0;
|
| - public_key_version_.valid = false;
|
| -}
|
| -
|
| -CloudPolicyCacheBase::~CloudPolicyCacheBase() {}
|
| -
|
| -void CloudPolicyCacheBase::SetFetchingDone() {
|
| - // NotifyObservers only fires notifications if the cache is ready.
|
| - NotifyObservers();
|
| -}
|
| -
|
| -void CloudPolicyCacheBase::AddObserver(Observer* observer) {
|
| - observer_list_.AddObserver(observer);
|
| -}
|
| -
|
| -void CloudPolicyCacheBase::RemoveObserver(Observer* observer) {
|
| - observer_list_.RemoveObserver(observer);
|
| -}
|
| -
|
| -void CloudPolicyCacheBase::Reset() {
|
| - last_policy_refresh_time_ = base::Time();
|
| - is_unmanaged_ = false;
|
| - policies_.Clear();
|
| - public_key_version_.version = 0;
|
| - public_key_version_.valid = false;
|
| - InformNotifier(CloudPolicySubsystem::UNENROLLED,
|
| - CloudPolicySubsystem::NO_DETAILS);
|
| -}
|
| -
|
| -bool CloudPolicyCacheBase::IsReady() {
|
| - return initialization_complete_;
|
| -}
|
| -
|
| -bool CloudPolicyCacheBase::GetPublicKeyVersion(int* version) {
|
| - if (public_key_version_.valid)
|
| - *version = public_key_version_.version;
|
| -
|
| - return public_key_version_.valid;
|
| -}
|
| -
|
| -bool CloudPolicyCacheBase::SetPolicyInternal(
|
| - const em::PolicyFetchResponse& policy,
|
| - base::Time* timestamp,
|
| - bool check_for_timestamp_validity) {
|
| - DCHECK(CalledOnValidThread());
|
| - is_unmanaged_ = false;
|
| - PolicyMap policies;
|
| - base::Time temp_timestamp;
|
| - PublicKeyVersion temp_public_key_version;
|
| - bool ok = DecodePolicyResponse(policy, &policies,
|
| - &temp_timestamp, &temp_public_key_version);
|
| - if (!ok) {
|
| - LOG(WARNING) << "Decoding policy data failed.";
|
| - UMA_HISTOGRAM_ENUMERATION(kMetricPolicy, kMetricPolicyFetchInvalidPolicy,
|
| - kMetricPolicySize);
|
| - return false;
|
| - }
|
| - if (timestamp) {
|
| - *timestamp = temp_timestamp;
|
| - }
|
| - if (check_for_timestamp_validity &&
|
| - temp_timestamp > base::Time::NowFromSystemTime()) {
|
| - LOG(WARNING) << "Rejected policy data, file is from the future.";
|
| - UMA_HISTOGRAM_ENUMERATION(kMetricPolicy,
|
| - kMetricPolicyFetchTimestampInFuture,
|
| - kMetricPolicySize);
|
| - return false;
|
| - }
|
| - public_key_version_.version = temp_public_key_version.version;
|
| - public_key_version_.valid = temp_public_key_version.valid;
|
| -
|
| - if (policies_.Equals(policies)) {
|
| - UMA_HISTOGRAM_ENUMERATION(kMetricPolicy, kMetricPolicyFetchNotModified,
|
| - kMetricPolicySize);
|
| - }
|
| -
|
| - policies_.Swap(&policies);
|
| -
|
| - InformNotifier(CloudPolicySubsystem::SUCCESS,
|
| - CloudPolicySubsystem::NO_DETAILS);
|
| - return true;
|
| -}
|
| -
|
| -void CloudPolicyCacheBase::SetUnmanagedInternal(const base::Time& timestamp) {
|
| - is_unmanaged_ = true;
|
| - public_key_version_.valid = false;
|
| - policies_.Clear();
|
| - last_policy_refresh_time_ = timestamp;
|
| -}
|
| -
|
| -void CloudPolicyCacheBase::SetReady() {
|
| - initialization_complete_ = true;
|
| - NotifyObservers();
|
| -}
|
| -
|
| -bool CloudPolicyCacheBase::DecodePolicyResponse(
|
| - const em::PolicyFetchResponse& policy_response,
|
| - PolicyMap* policies,
|
| - base::Time* timestamp,
|
| - PublicKeyVersion* public_key_version) {
|
| - std::string data = policy_response.policy_data();
|
| - em::PolicyData policy_data;
|
| - if (!policy_data.ParseFromString(data)) {
|
| - LOG(WARNING) << "Failed to parse PolicyData protobuf.";
|
| - return false;
|
| - }
|
| - if (timestamp) {
|
| - *timestamp = base::Time::UnixEpoch() +
|
| - base::TimeDelta::FromMilliseconds(policy_data.timestamp());
|
| - }
|
| - if (public_key_version) {
|
| - public_key_version->valid = policy_data.has_public_key_version();
|
| - if (public_key_version->valid)
|
| - public_key_version->version = policy_data.public_key_version();
|
| - }
|
| - machine_id_missing_ = policy_data.valid_serial_number_missing();
|
| -
|
| - return DecodePolicyData(policy_data, policies);
|
| -}
|
| -
|
| -void CloudPolicyCacheBase::NotifyObservers() {
|
| - if (IsReady())
|
| - FOR_EACH_OBSERVER(Observer, observer_list_, OnCacheUpdate(this));
|
| -}
|
| -
|
| -void CloudPolicyCacheBase::InformNotifier(
|
| - CloudPolicySubsystem::PolicySubsystemState state,
|
| - CloudPolicySubsystem::ErrorDetails error_details) {
|
| - // TODO(jkummerow): To obsolete this NULL-check, make all uses of
|
| - // UserPolicyCache explicitly set a notifier using |set_policy_notifier()|.
|
| - if (notifier_)
|
| - notifier_->Inform(state, error_details, PolicyNotifier::POLICY_CACHE);
|
| -}
|
| -
|
| -} // namespace policy
|
|
|