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