Index: chrome/browser/extensions/extension_context_menu_model.h |
diff --git a/chrome/browser/extensions/extension_context_menu_model.h b/chrome/browser/extensions/extension_context_menu_model.h |
index 4685b6c9f42def7fe89997d542f87f85b64a12f7..3fd366a4f460c1b31dcc9d1701cb39269024033e 100644 |
--- a/chrome/browser/extensions/extension_context_menu_model.h |
+++ b/chrome/browser/extensions/extension_context_menu_model.h |
@@ -17,6 +17,8 @@ class Profile; |
namespace extensions { |
class Extension; |
+class ContextMenuMatcher; |
+class ExtensionContextMenuModelTest; |
} |
// The context menu model for extension icons. |
@@ -35,6 +37,9 @@ class ExtensionContextMenuModel |
INSPECT_POPUP |
}; |
+ // Type of action the extension icon represents. |
+ enum ActionType { NO_ACTION = 0, BROWSER_ACTION, PAGE_ACTION }; |
+ |
// Delegate to handle showing an ExtensionAction popup. |
class PopupDelegate { |
public: |
@@ -73,6 +78,8 @@ class ExtensionContextMenuModel |
private: |
friend class base::RefCounted<ExtensionContextMenuModel>; |
+ friend class extensions::ExtensionContextMenuModelTest; |
+ |
virtual ~ExtensionContextMenuModel(); |
void InitMenu(const extensions::Extension* extension); |
@@ -81,6 +88,9 @@ class ExtensionContextMenuModel |
// extension has been uninstalled and no longer exists. |
const extensions::Extension* GetExtension() const; |
+ // Appends the extension's context menu items. |
+ void AppendExtensionItems(); |
+ |
// A copy of the extension's id. |
std::string extension_id_; |
@@ -95,9 +105,18 @@ class ExtensionContextMenuModel |
// The delegate which handles the 'inspect popup' menu command (or NULL). |
PopupDelegate* delegate_; |
+ // The type of extension action to which this context menu is attached. |
+ ActionType action_type_; |
+ |
// Keeps track of the extension uninstall dialog. |
scoped_ptr<extensions::ExtensionUninstallDialog> extension_uninstall_dialog_; |
+ // Menu matcher for context menu items specified by the extension. |
+ scoped_ptr<extensions::ContextMenuMatcher> extension_items_; |
+ |
+ // Number of extension items in this menu. Used for testing. |
+ int extension_items_count_ = 0; |
+ |
DISALLOW_COPY_AND_ASSIGN(ExtensionContextMenuModel); |
}; |