1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef CHROME_BROWSER_CHROMEOS_POLICY_DEVICE_LOCAL_ACCOUNT_EXTENSION_TRACKER_H_ 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define CHROME_BROWSER_CHROMEOS_POLICY_DEVICE_LOCAL_ACCOUNT_EXTENSION_TRACKER_H_ 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/compiler_specific.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/macros.h" 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/policy/core/common/cloud/cloud_policy_store.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace policy { 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdochstruct DeviceLocalAccount; 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass SchemaRegistry; 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Helper class that keeps all the extensions that a device-local account uses 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// registered in a SchemaRegistry. 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass DeviceLocalAccountExtensionTracker : public CloudPolicyStore::Observer { 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public: 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DeviceLocalAccountExtensionTracker( 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const DeviceLocalAccount& account, 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch CloudPolicyStore* store, 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch SchemaRegistry* schema_registry); 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual ~DeviceLocalAccountExtensionTracker(); 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // CloudPolicyStore::Observer: 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void OnStoreLoaded(CloudPolicyStore* store) OVERRIDE; 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void OnStoreError(CloudPolicyStore* store) OVERRIDE; 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private: 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void UpdateFromStore(); 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch CloudPolicyStore* store_; 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch SchemaRegistry* schema_registry_; 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DISALLOW_COPY_AND_ASSIGN(DeviceLocalAccountExtensionTracker); 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace policy 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif // CHROME_BROWSER_CHROMEOS_POLICY_DEVICE_LOCAL_ACCOUNT_EXTENSION_TRACKER_H_ 44