1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef COMPONENTS_POLICY_CORE_COMMON_POLICY_PROVIDER_ANDROID_H_ 6#define COMPONENTS_POLICY_CORE_COMMON_POLICY_PROVIDER_ANDROID_H_ 7 8#include "base/basictypes.h" 9#include "base/compiler_specific.h" 10#include "components/policy/core/common/configuration_policy_provider.h" 11 12namespace policy { 13 14class PolicyProviderAndroidDelegate; 15class Schema; 16 17// Provider for policies set by the Android platform. 18class POLICY_EXPORT PolicyProviderAndroid : public ConfigurationPolicyProvider { 19 public: 20 PolicyProviderAndroid(); 21 virtual ~PolicyProviderAndroid(); 22 23 // Call this method to tell the policy system whether it should wait for 24 // policies to be loaded by this provider. If this method is called, 25 // IsInitializationComplete() will only return true after SetPolicies() has 26 // been called at least once, otherwise it will return true immediately. 27 static void SetShouldWaitForPolicy(bool should_wait_for_policy); 28 29 // Returns the schema for Chrome policies. 30 const Schema* GetChromeSchema() const; 31 32 void SetDelegate(PolicyProviderAndroidDelegate* delegate); 33 void SetPolicies(scoped_ptr<PolicyBundle> policy); 34 35 // ConfigurationPolicyProvider: 36 virtual void Shutdown() OVERRIDE; 37 virtual bool IsInitializationComplete(PolicyDomain domain) const OVERRIDE; 38 virtual void RefreshPolicies() OVERRIDE; 39 40 private: 41 PolicyProviderAndroidDelegate* delegate_; 42 bool initialized_; 43 44 DISALLOW_COPY_AND_ASSIGN(PolicyProviderAndroid); 45}; 46 47} // namespace policy 48 49#endif // COMPONENTS_POLICY_CORE_COMMON_POLICY_PROVIDER_ANDROID_H_ 50