Only grant permissions to new extensions from sync if they have the expected version
[chromium-blink-merge.git] / components / sync_driver / signin_manager_wrapper.h
blob51eaed3c65574e707b7b018787f4ea1030598dc1
1 // Copyright 2015 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.
5 #ifndef COMPONENTS_SYNC_DRIVER_SIGNIN_MANAGER_WRAPPER_H_
6 #define COMPONENTS_SYNC_DRIVER_SIGNIN_MANAGER_WRAPPER_H_
8 #include <string>
10 #include "base/basictypes.h"
12 class SigninManagerBase;
14 // Wraps SigninManager so subclasses can support different ways of getting
15 // account information if necessary. Currently exists for supervised users;
16 // the subclass SupervisedUserSigninManagerWrapper may be merged back into
17 // this class once supervised users are componentized.
18 class SigninManagerWrapper {
19 public:
20 explicit SigninManagerWrapper(SigninManagerBase* original);
21 virtual ~SigninManagerWrapper();
23 // Get the email address to use for this account.
24 virtual std::string GetEffectiveUsername() const;
26 // Get the unique ID used to represent this account.
27 virtual std::string GetAccountIdToUse() const;
29 // Get the OAuth2 scope to use for this account.
30 virtual std::string GetSyncScopeToUse() const;
32 // Return the original SigninManagerBase object that was passed in.
33 SigninManagerBase* GetOriginal();
35 private:
36 SigninManagerBase* original_;
37 DISALLOW_COPY_AND_ASSIGN(SigninManagerWrapper);
40 #endif // COMPONENTS_SYNC_DRIVER_SIGNIN_MANAGER_WRAPPER_H_