Index: chrome/browser/chromeos/arc/arc_policy_bridge.cc |
diff --git a/chrome/browser/chromeos/arc/arc_policy_bridge.cc b/chrome/browser/chromeos/arc/arc_policy_bridge.cc |
index 84ab640760308cc623df0286f320e9da6592f099..5ad15000fbc852c116f4074cdcdc2d49ddb65888 100644 |
--- a/chrome/browser/chromeos/arc/arc_policy_bridge.cc |
+++ b/chrome/browser/chromeos/arc/arc_policy_bridge.cc |
@@ -152,6 +152,10 @@ ArcPolicyBridge::~ArcPolicyBridge() { |
arc_bridge_service()->RemoveObserver(this); |
} |
+void ArcPolicyBridge::OverrideIsManagedForTesting(bool is_managed) { |
+ is_managed_ = is_managed; |
+} |
+ |
void ArcPolicyBridge::OnPolicyInstanceReady() { |
VLOG(1) << "ArcPolicyBridge::OnPolicyInstanceReady"; |
if (policy_service_ == nullptr) { |
@@ -177,6 +181,10 @@ void ArcPolicyBridge::OnPolicyInstanceClosed() { |
void ArcPolicyBridge::GetPolicies(const GetPoliciesCallback& callback) { |
VLOG(1) << "ArcPolicyBridge::GetPolicies"; |
+ if (!is_managed_) { |
+ callback.Run(mojo::String(nullptr)); |
+ return; |
+ } |
const policy::PolicyNamespace policy_namespace(policy::POLICY_DOMAIN_CHROME, |
std::string()); |
const policy::PolicyMap& policy_map = |
@@ -198,9 +206,10 @@ void ArcPolicyBridge::InitializePolicyService() { |
user_manager::UserManager::Get()->GetPrimaryUser(); |
Profile* const profile = |
chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user); |
- policy_service_ = |
- policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile) |
- ->policy_service(); |
+ auto profile_policy_connector = |
+ policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile); |
+ policy_service_ = profile_policy_connector->policy_service(); |
+ is_managed_ = profile_policy_connector->IsManaged(); |
} |
} // namespace arc |