| Index: chrome/browser/policy/cloud/component_cloud_policy_updater.cc
|
| diff --git a/chrome/browser/policy/cloud/component_cloud_policy_updater.cc b/chrome/browser/policy/cloud/component_cloud_policy_updater.cc
|
| deleted file mode 100644
|
| index 43cfb271172ad9907560703514f15d134fc41945..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/policy/cloud/component_cloud_policy_updater.cc
|
| +++ /dev/null
|
| @@ -1,109 +0,0 @@
|
| -// Copyright (c) 2013 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/component_cloud_policy_updater.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/bind_helpers.h"
|
| -#include "base/logging.h"
|
| -#include "base/sequenced_task_runner.h"
|
| -#include "base/strings/string_number_conversions.h"
|
| -#include "chrome/browser/policy/cloud/component_cloud_policy_store.h"
|
| -#include "chrome/browser/policy/cloud/external_policy_data_fetcher.h"
|
| -#include "chrome/browser/policy/proto/cloud/chrome_extension_policy.pb.h"
|
| -#include "chrome/browser/policy/proto/cloud/device_management_backend.pb.h"
|
| -
|
| -namespace em = enterprise_management;
|
| -
|
| -namespace policy {
|
| -
|
| -namespace {
|
| -
|
| -// The maximum size of the serialized policy protobuf.
|
| -const size_t kPolicyProtoMaxSize = 16 * 1024;
|
| -
|
| -// The maximum size of the downloaded policy data.
|
| -const int64 kPolicyDataMaxSize = 5 * 1024 * 1024;
|
| -
|
| -// Tha maximum number of policy data fetches to run in parallel.
|
| -const int64 kMaxParallelPolicyDataFetches = 2;
|
| -
|
| -} // namespace
|
| -
|
| -ComponentCloudPolicyUpdater::ComponentCloudPolicyUpdater(
|
| - scoped_refptr<base::SequencedTaskRunner> task_runner,
|
| - scoped_ptr<ExternalPolicyDataFetcher> external_policy_data_fetcher,
|
| - ComponentCloudPolicyStore* store)
|
| - : store_(store),
|
| - external_policy_data_updater_(task_runner,
|
| - external_policy_data_fetcher.Pass(),
|
| - kMaxParallelPolicyDataFetches) {
|
| -}
|
| -
|
| -ComponentCloudPolicyUpdater::~ComponentCloudPolicyUpdater() {
|
| -}
|
| -
|
| -void ComponentCloudPolicyUpdater::UpdateExternalPolicy(
|
| - scoped_ptr<em::PolicyFetchResponse> response) {
|
| - // Keep a serialized copy of |response|, to cache it later.
|
| - // The policy is also rejected if it exceeds the maximum size.
|
| - std::string serialized_response;
|
| - if (!response->SerializeToString(&serialized_response) ||
|
| - serialized_response.size() > kPolicyProtoMaxSize) {
|
| - return;
|
| - }
|
| -
|
| - // Validate the policy before doing anything else.
|
| - PolicyNamespace ns;
|
| - em::ExternalPolicyData data;
|
| - if (!store_->ValidatePolicy(response.Pass(), &ns, &data)) {
|
| - LOG(ERROR) << "Failed to validate component policy fetched from DMServer";
|
| - return;
|
| - }
|
| -
|
| - // Maybe the data for this hash has already been downloaded and cached.
|
| - const std::string& cached_hash = store_->GetCachedHash(ns);
|
| - if (!cached_hash.empty() && data.secure_hash() == cached_hash)
|
| - return;
|
| -
|
| - // TODO(joaodasilva): implement the other two auth methods.
|
| - if (data.download_auth_method() != em::ExternalPolicyData::NONE)
|
| - return;
|
| -
|
| - const std::string key = NamespaceToKey(ns);
|
| -
|
| - if (data.download_url().empty() || !data.has_secure_hash()) {
|
| - // If there is no policy for this component or the policy has been removed,
|
| - // cancel any existing request to fetch policy for this component.
|
| - external_policy_data_updater_.CancelExternalDataFetch(key);
|
| -
|
| - // Delete any existing policy for this component.
|
| - store_->Delete(ns);
|
| - } else {
|
| - // Make a request to fetch policy for this component. If another fetch
|
| - // request is already pending for the component, it will be canceled.
|
| - external_policy_data_updater_.FetchExternalData(
|
| - key,
|
| - ExternalPolicyDataUpdater::Request(data.download_url(),
|
| - data.secure_hash(),
|
| - kPolicyDataMaxSize),
|
| - base::Bind(&ComponentCloudPolicyStore::Store, base::Unretained(store_),
|
| - ns,
|
| - serialized_response,
|
| - data.secure_hash()));
|
| - }
|
| -}
|
| -
|
| -void ComponentCloudPolicyUpdater::CancelUpdate(const PolicyNamespace& ns) {
|
| - external_policy_data_updater_.CancelExternalDataFetch(NamespaceToKey(ns));
|
| -}
|
| -
|
| -std::string ComponentCloudPolicyUpdater::NamespaceToKey(
|
| - const PolicyNamespace& ns) {
|
| - const std::string domain = base::IntToString(ns.domain);
|
| - const std::string size = base::IntToString(domain.size());
|
| - return size + ":" + domain + ":" + ns.component_id;
|
| -}
|
| -
|
| -} // namespace policy
|
|
|