| Index: chrome/browser/chromeos/policy/cloud_external_data_manager_base.cc
|
| diff --git a/chrome/browser/chromeos/policy/cloud_external_data_manager_base.cc b/chrome/browser/chromeos/policy/cloud_external_data_manager_base.cc
|
| index 9007067f5314bc44617659141dc7934d01bac6e1..2b0cac252d7db81a9f6ab19887b7c3f1582a0abc 100644
|
| --- a/chrome/browser/chromeos/policy/cloud_external_data_manager_base.cc
|
| +++ b/chrome/browser/chromeos/policy/cloud_external_data_manager_base.cc
|
| @@ -10,6 +10,7 @@
|
|
|
| #include "base/bind.h"
|
| #include "base/bind_helpers.h"
|
| +#include "base/callback.h"
|
| #include "base/location.h"
|
| #include "base/logging.h"
|
| #include "base/message_loop/message_loop_proxy.h"
|
| @@ -23,7 +24,6 @@
|
| #include "chrome/browser/policy/external_data_fetcher.h"
|
| #include "chrome/browser/policy/policy_map.h"
|
| #include "net/url_request/url_request_context_getter.h"
|
| -#include "policy/policy_constants.h"
|
|
|
| namespace policy {
|
|
|
| @@ -42,11 +42,11 @@ int max_external_data_size_for_testing = 0;
|
| // verification, caching and retrieval.
|
| class CloudExternalDataManagerBase::Backend {
|
| public:
|
| - // The |policy_definitions| are used to determine the maximum size that the
|
| + // |get_policy_details| is used to determine the maximum size that the
|
| // data referenced by each policy can have. This class can be instantiated on
|
| // any thread but from then on, may be accessed via the |task_runner_| only.
|
| // All FetchCallbacks will be invoked via |callback_task_runner|.
|
| - Backend(const PolicyDefinitionList* policy_definitions,
|
| + Backend(const GetChromePolicyDetailsCallback& get_policy_details,
|
| scoped_refptr<base::SequencedTaskRunner> task_runner,
|
| scoped_refptr<base::SequencedTaskRunner> callback_task_runner);
|
|
|
| @@ -101,8 +101,7 @@ class CloudExternalDataManagerBase::Backend {
|
| // Map from policy names to the lists of callbacks defined above.
|
| typedef std::map<std::string, FetchCallbackList> FetchCallbackMap;
|
|
|
| - // Looks up the maximum size that the data referenced by |policy| can have in
|
| - // |policy_definitions_|.
|
| + // Looks up the maximum size that the data referenced by |policy| can have.
|
| size_t GetMaxExternalDataSize(const std::string& policy) const;
|
|
|
| // Invokes |callback| via the |callback_task_runner_|, passing |data| as a
|
| @@ -116,7 +115,7 @@ class CloudExternalDataManagerBase::Backend {
|
|
|
| // Used to determine the maximum size that the data referenced by each policy
|
| // can have.
|
| - const PolicyDefinitionList* policy_definitions_;
|
| + GetChromePolicyDetailsCallback get_policy_details_;
|
|
|
| scoped_refptr<base::SequencedTaskRunner> task_runner_;
|
| scoped_refptr<base::SequencedTaskRunner> callback_task_runner_;
|
| @@ -147,10 +146,10 @@ class CloudExternalDataManagerBase::Backend {
|
| };
|
|
|
| CloudExternalDataManagerBase::Backend::Backend(
|
| - const PolicyDefinitionList* policy_definitions,
|
| + const GetChromePolicyDetailsCallback& get_policy_details,
|
| scoped_refptr<base::SequencedTaskRunner> task_runner,
|
| scoped_refptr<base::SequencedTaskRunner> callback_task_runner)
|
| - : policy_definitions_(policy_definitions),
|
| + : get_policy_details_(get_policy_details),
|
| task_runner_(task_runner),
|
| callback_task_runner_(callback_task_runner),
|
| metadata_set_(false) {
|
| @@ -301,14 +300,12 @@ size_t CloudExternalDataManagerBase::Backend::GetMaxExternalDataSize(
|
| return max_external_data_size_for_testing;
|
|
|
| // Look up the maximum size that the data referenced by |policy| can have in
|
| - // policy_definitions_, which is constructed from the information in
|
| + // get_policy_details, which is constructed from the information in
|
| // policy_templates.json, allowing the maximum data size to be specified as
|
| // part of the policy definition.
|
| - for (const PolicyDefinitionList::Entry* entry = policy_definitions_->begin;
|
| - entry != policy_definitions_->end; ++entry) {
|
| - if (entry->name == policy)
|
| - return entry->max_external_data_size;
|
| - }
|
| + const PolicyDetails* details = get_policy_details_.Run(policy);
|
| + if (details)
|
| + return details->max_external_data_size;
|
| NOTREACHED();
|
| return 0;
|
| }
|
| @@ -339,12 +336,12 @@ void CloudExternalDataManagerBase::Backend::StartDownload(
|
| }
|
|
|
| CloudExternalDataManagerBase::CloudExternalDataManagerBase(
|
| - const PolicyDefinitionList* policy_definitions,
|
| + const GetChromePolicyDetailsCallback& get_policy_details,
|
| scoped_refptr<base::SequencedTaskRunner> backend_task_runner,
|
| scoped_refptr<base::SequencedTaskRunner> io_task_runner)
|
| : backend_task_runner_(backend_task_runner),
|
| io_task_runner_(io_task_runner),
|
| - backend_(new Backend(policy_definitions,
|
| + backend_(new Backend(get_policy_details,
|
| backend_task_runner_,
|
| base::MessageLoopProxy::current())) {
|
| }
|
|
|