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 12 namespace policy { 13 14 class PolicyProviderAndroidDelegate; 15 class Schema; 16 17 // Provider for policies set by the Android platform. 18 class 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