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 a07d9d534fac896f25eae444bf455c9276b2a9b1..0ec50f7b330c841cb9a86ffe93694e2b6fb6b68d 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: |
@@ -74,6 +79,8 @@ class ExtensionContextMenuModel |
private: |
friend class base::RefCounted<ExtensionContextMenuModel>; |
+ friend class extensions::ExtensionContextMenuModelTest; |
+ |
virtual ~ExtensionContextMenuModel(); |
void InitMenu(const extensions::Extension* extension); |
@@ -82,6 +89,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_; |
@@ -96,9 +106,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_; |
+ |
DISALLOW_COPY_AND_ASSIGN(ExtensionContextMenuModel); |
}; |