1// Copyright 2013 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 CHROME_BROWSER_CHROMEOS_EXTENSIONS_DEVICE_LOCAL_ACCOUNT_MANAGEMENT_POLICY_PROVIDER_H_ 6#define CHROME_BROWSER_CHROMEOS_EXTENSIONS_DEVICE_LOCAL_ACCOUNT_MANAGEMENT_POLICY_PROVIDER_H_ 7 8#include "base/basictypes.h" 9#include "base/compiler_specific.h" 10#include "chrome/browser/chromeos/policy/device_local_account.h" 11#include "extensions/browser/management_policy.h" 12 13namespace chromeos { 14 15// A managed policy for device-local accounts that ensures only extensions whose 16// type or ID has been whitelisted for use in device-local accounts can be 17// installed. 18class DeviceLocalAccountManagementPolicyProvider 19 : public extensions::ManagementPolicy::Provider { 20 public: 21 explicit DeviceLocalAccountManagementPolicyProvider( 22 policy::DeviceLocalAccount::Type account_type); 23 virtual ~DeviceLocalAccountManagementPolicyProvider(); 24 25 // extensions::ManagementPolicy::Provider: 26 virtual std::string GetDebugPolicyProviderName() const OVERRIDE; 27 virtual bool UserMayLoad(const extensions::Extension* extension, 28 base::string16* error) const OVERRIDE; 29 30 private: 31 const policy::DeviceLocalAccount::Type account_type_; 32 33 DISALLOW_COPY_AND_ASSIGN(DeviceLocalAccountManagementPolicyProvider); 34}; 35 36} // namespace chromeos 37 38#endif // CHROME_BROWSER_CHROMEOS_EXTENSIONS_DEVICE_LOCAL_ACCOUNT_MANAGEMENT_POLICY_PROVIDER_H_ 39