| Index: chrome/browser/policy/configuration_policy_handler_list_factory.cc
|
| diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
|
| index bc252c374cf777d500938b970cc988e98e140fdb..288f17bb83261daf7bee68deaf9afc1c516c72c6 100644
|
| --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
|
| +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
|
| @@ -16,6 +16,7 @@
|
| #include "components/policy/core/browser/autofill_policy_handler.h"
|
| #include "components/policy/core/browser/configuration_policy_handler.h"
|
| #include "components/policy/core/browser/configuration_policy_handler_list.h"
|
| +#include "components/policy/core/browser/configuration_policy_handler_parameters.h"
|
| #include "components/policy/core/browser/url_blacklist_policy_handler.h"
|
| #include "components/policy/core/common/policy_details.h"
|
| #include "components/policy/core/common/policy_map.h"
|
| @@ -39,6 +40,8 @@
|
|
|
| #if defined(OS_CHROMEOS)
|
| #include "ash/magnifier/magnifier_constants.h"
|
| +#include "chrome/browser/chromeos/login/user.h"
|
| +#include "chrome/browser/chromeos/login/user_manager.h"
|
| #include "chrome/browser/chromeos/policy/configuration_policy_handler_chromeos.h"
|
| #include "chromeos/dbus/power_policy_controller.h"
|
| #endif // defined(OS_CHROMEOS)
|
| @@ -47,7 +50,7 @@
|
| #include "chrome/browser/policy/configuration_policy_handler_android.h"
|
| #endif // defined(OS_ANDROID)
|
|
|
| -#if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS)
|
| +#if !defined(OS_ANDROID) && !defined(OS_IOS)
|
| #include "chrome/browser/download/download_dir_policy_handler.h"
|
| #endif
|
|
|
| @@ -486,10 +489,22 @@ StringToIntEnumListPolicyHandler::MappingEntry kExtensionAllowedTypesMap[] = {
|
|
|
| } // namespace
|
|
|
| +void PopulatePolicyHandlerParameters(PolicyHandlerParameters* parameters) {
|
| +#if defined(OS_CHROMEOS)
|
| + if (chromeos::UserManager::IsInitialized()) {
|
| + const chromeos::User* user = chromeos::UserManager::Get()->GetActiveUser();
|
| + if (user)
|
| + parameters->active_username_hash = user->username_hash();
|
| + }
|
| +#endif
|
| +}
|
| +
|
| scoped_ptr<ConfigurationPolicyHandlerList> BuildHandlerList(
|
| const Schema& chrome_schema) {
|
| scoped_ptr<ConfigurationPolicyHandlerList> handlers(
|
| - new ConfigurationPolicyHandlerList(base::Bind(&GetChromePolicyDetails)));
|
| + new ConfigurationPolicyHandlerList(
|
| + base::Bind(&PopulatePolicyHandlerParameters),
|
| + base::Bind(&GetChromePolicyDetails)));
|
| for (size_t i = 0; i < arraysize(kSimplePolicyMap); ++i) {
|
| handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
|
| new SimplePolicyHandler(kSimplePolicyMap[i].policy_name,
|
| @@ -545,8 +560,6 @@ scoped_ptr<ConfigurationPolicyHandlerList> BuildHandlerList(
|
| #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS)
|
| handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
|
| new DiskCacheDirPolicyHandler()));
|
| - handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
|
| - new DownloadDirPolicyHandler));
|
|
|
| handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
|
| new extensions::NativeMessagingHostListPolicyHandler(
|
| @@ -560,6 +573,11 @@ scoped_ptr<ConfigurationPolicyHandlerList> BuildHandlerList(
|
| true)));
|
| #endif // !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS)
|
|
|
| +#if !defined(OS_ANDROID) && !defined(OS_IOS)
|
| + handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
|
| + new DownloadDirPolicyHandler));
|
| +#endif
|
| +
|
| #if defined(OS_CHROMEOS)
|
| handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
|
| new extensions::ExtensionListPolicyHandler(
|
|
|