1 // Copyright (c) 2009 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_EXTENSION_PAGE_ACTIONS_MODULE_H_ 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_PAGE_ACTIONS_MODULE_H_ 7 #pragma once 8 9 #include "chrome/browser/extensions/extension_function.h" 10 11 class TabContentsWrapper; 12 class ExtensionAction; 13 14 // Base class for page action APIs. 15 class PageActionFunction : public SyncExtensionFunction { 16 protected: 17 virtual ~PageActionFunction() {} 18 bool SetPageActionEnabled(bool enable); 19 20 bool InitCommon(int tab_id); 21 bool SetVisible(bool visible); 22 23 ExtensionAction* page_action_; 24 TabContentsWrapper* contents_; 25 }; 26 27 // Implement chrome.pageActions.enableForTab(). 28 class EnablePageActionFunction : public PageActionFunction { 29 ~EnablePageActionFunction() {} 30 virtual bool RunImpl(); 31 DECLARE_EXTENSION_FUNCTION_NAME("pageActions.enableForTab") 32 }; 33 34 // Implement chrome.pageActions.disableForTab(). 35 class DisablePageActionFunction : public PageActionFunction { 36 ~DisablePageActionFunction() {} 37 virtual bool RunImpl(); 38 DECLARE_EXTENSION_FUNCTION_NAME("pageActions.disableForTab") 39 }; 40 41 // Implement chrome.pageActions.show(). 42 class PageActionShowFunction : public PageActionFunction { 43 ~PageActionShowFunction() {} 44 virtual bool RunImpl(); 45 DECLARE_EXTENSION_FUNCTION_NAME("pageAction.show") 46 }; 47 48 // Implement chrome.pageActions.hide(). 49 class PageActionHideFunction : public PageActionFunction { 50 ~PageActionHideFunction() {} 51 virtual bool RunImpl(); 52 DECLARE_EXTENSION_FUNCTION_NAME("pageAction.hide") 53 }; 54 55 // Implement chrome.pageActions.setIcon(). 56 class PageActionSetIconFunction : public PageActionFunction { 57 ~PageActionSetIconFunction() {} 58 virtual bool RunImpl(); 59 DECLARE_EXTENSION_FUNCTION_NAME("pageAction.setIcon") 60 }; 61 62 // Implement chrome.pageActions.setTitle(). 63 class PageActionSetTitleFunction : public PageActionFunction { 64 ~PageActionSetTitleFunction() {} 65 virtual bool RunImpl(); 66 DECLARE_EXTENSION_FUNCTION_NAME("pageAction.setTitle") 67 }; 68 69 // Implement chrome.pageActions.setPopup(). 70 class PageActionSetPopupFunction : public PageActionFunction { 71 ~PageActionSetPopupFunction() {} 72 virtual bool RunImpl(); 73 DECLARE_EXTENSION_FUNCTION_NAME("pageAction.setPopup") 74 }; 75 76 // Implement chrome.pageActions.setBadgeBackgroundColor(). 77 class PageActionSetBadgeBackgroundColorFunction : public PageActionFunction { 78 ~PageActionSetBadgeBackgroundColorFunction() {} 79 virtual bool RunImpl(); 80 DECLARE_EXTENSION_FUNCTION_NAME("pageAction.setBadgeBackgroundColor") 81 }; 82 83 // Implement chrome.pageActions.setBadgeTextColor(). 84 class PageActionSetBadgeTextColorFunction : public PageActionFunction { 85 ~PageActionSetBadgeTextColorFunction() {} 86 virtual bool RunImpl(); 87 DECLARE_EXTENSION_FUNCTION_NAME("pageAction.setBadgeTextColor") 88 }; 89 90 // Implement chrome.pageActions.setBadgeText(). 91 class PageActionSetBadgeTextFunction : public PageActionFunction { 92 ~PageActionSetBadgeTextFunction() {} 93 virtual bool RunImpl(); 94 DECLARE_EXTENSION_FUNCTION_NAME("pageAction.setBadgeText") 95 }; 96 97 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_PAGE_ACTIONS_MODULE_H_ 98