Chromium Code Reviews| Index: chrome/browser/extensions/extension_system_impl.cc |
| diff --git a/chrome/browser/extensions/extension_system_impl.cc b/chrome/browser/extensions/extension_system_impl.cc |
| index 7ad271fb3f43013de9764883fb31efe972d087de..9cfe5460d755f1a8ccd489a1e85bde9880ec88d2 100644 |
| --- a/chrome/browser/extensions/extension_system_impl.cc |
| +++ b/chrome/browser/extensions/extension_system_impl.cc |
| @@ -66,7 +66,9 @@ |
| #include "chrome/browser/app_mode/app_mode_utils.h" |
| #include "chrome/browser/chromeos/app_mode/kiosk_app_update_install_gate.h" |
| #include "chrome/browser/chromeos/extensions/device_local_account_management_policy_provider.h" |
| +#include "chrome/browser/chromeos/extensions/signin_screen_policy_provider.h" |
| #include "chrome/browser/chromeos/policy/device_local_account.h" |
| +#include "chrome/browser/chromeos/profiles/profile_helper.h" |
| #include "chromeos/chromeos_switches.h" |
| #include "chromeos/login/login_state.h" |
| #include "components/user_manager/user.h" |
| @@ -127,6 +129,9 @@ void ExtensionSystemImpl::Shared::InitPrefs() { |
| new chromeos::DeviceLocalAccountManagementPolicyProvider( |
| device_local_account_type)); |
| } |
| +// We can not perform check for Signin Profile here, as it would result in |
|
emaxx
2016/08/30 13:01:42
nit: Seems that the indentation was lost here.
Denis Kuznetsov (DE-MUC)
2016/09/01 17:28:57
Done.
|
| +// recursive call upon creation of Signin Profile, so we will create |
| +// SigninScreenPolicyProvider lazily in RegisterManagementPolicyProviders. |
| #endif // defined(OS_CHROMEOS) |
| } |
| @@ -136,10 +141,22 @@ void ExtensionSystemImpl::Shared::RegisterManagementPolicyProviders() { |
| ->GetProviders()); |
| #if defined(OS_CHROMEOS) |
| + // Lazy creation of SigninScreenPolicyProvider |
| + if (!signin_screen_policy_provider_) { |
| + if (profile_ == |
| + chromeos::ProfileHelper::GetSigninProfile()->GetOriginalProfile()) { |
| + signin_screen_policy_provider_.reset( |
| + new chromeos::SigninScreenPolicyProvider()); |
| + } |
| + } |
| + |
| if (device_local_account_management_policy_provider_) { |
| management_policy_->RegisterProvider( |
| device_local_account_management_policy_provider_.get()); |
| } |
| + if (signin_screen_policy_provider_) { |
| + management_policy_->RegisterProvider(signin_screen_policy_provider_.get()); |
| + } |
| #endif // defined(OS_CHROMEOS) |
| management_policy_->RegisterProvider(InstallVerifier::Get(profile_)); |