• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_EXTENSIONS_API_PRINCIPALS_PRIVATE_PRINCIPALS_PRIVATE_API_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_PRINCIPALS_PRIVATE_PRINCIPALS_PRIVATE_API_H_
7 
8 #include "chrome/browser/extensions/chrome_extension_function.h"
9 
10 // WARNING: chrome.principalsPrivate is a set of experimental APIs for the new
11 // profile management flows. Every new API must extend
12 // PrincipalsPrivateExtensionFunction which is guarded with a flag check
13 // for "new-profile-management".
14 
15 namespace extensions {
16 
17 class PrincipalsPrivateExtensionFunction : public ChromeSyncExtensionFunction {
18  public:
PrincipalsPrivateExtensionFunction()19   PrincipalsPrivateExtensionFunction() {}
20 
21  protected:
~PrincipalsPrivateExtensionFunction()22   virtual ~PrincipalsPrivateExtensionFunction() {}
23 
24   // ExtensionFunction:
25   // Checks for the flag "new-profile-management", if set calls
26   // RunSyncSafe which must be overriden by subclasses.
27   virtual bool RunSync() OVERRIDE FINAL;
28 
29  private:
30   virtual bool RunSyncSafe() = 0;
31 };
32 
33 class PrincipalsPrivateSignOutFunction
34     : public PrincipalsPrivateExtensionFunction {
35  public:
36   DECLARE_EXTENSION_FUNCTION("principalsPrivate.signOut",
37                              PRINCIPALSPRIVATE_SIGNOUT);
PrincipalsPrivateSignOutFunction()38   PrincipalsPrivateSignOutFunction() {}
39 
40  protected:
~PrincipalsPrivateSignOutFunction()41   virtual ~PrincipalsPrivateSignOutFunction() {}
42 
43  private:
44   // PrincipalsPrivateExtensionFunction
45   virtual bool RunSyncSafe() OVERRIDE;
46 
47   DISALLOW_COPY_AND_ASSIGN(PrincipalsPrivateSignOutFunction);
48 };
49 
50 class PrincipalsPrivateShowAvatarBubbleFunction
51     : public PrincipalsPrivateExtensionFunction {
52  public:
53   DECLARE_EXTENSION_FUNCTION("principalsPrivate.showAvatarBubble",
54                              PRINCIPALSPRIVATE_SHOWAVATARBUBBLE);
PrincipalsPrivateShowAvatarBubbleFunction()55   PrincipalsPrivateShowAvatarBubbleFunction() {}
56 
57  protected:
~PrincipalsPrivateShowAvatarBubbleFunction()58   virtual ~PrincipalsPrivateShowAvatarBubbleFunction() {}
59 
60  private:
61   // PrincipalsPrivateExtensionFunction
62   virtual bool RunSyncSafe() OVERRIDE;
63 
64   DISALLOW_COPY_AND_ASSIGN(PrincipalsPrivateShowAvatarBubbleFunction);
65 };
66 
67 }  // namespace extensions
68 
69 #endif  // CHROME_BROWSER_EXTENSIONS_API_PRINCIPALS_PRIVATE_PRINCIPALS_PRIVATE_API_H_
70 
71