summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_context_menu_api.h
diff options
context:
space:
mode:
authorasargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-23 06:52:41 +0000
committerasargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-23 06:52:41 +0000
commit2e3b520ff4318342b027ea8aa303e5981ea9ce79 (patch)
treef2eba7cf4a7d6179033d9cc0f4bba5981984ec55 /chrome/browser/extensions/extension_context_menu_api.h
parentd11a34ba95bc98cf2c4b6caa2ce6ed469ae229ce (diff)
downloadchromium_src-2e3b520ff4318342b027ea8aa303e5981ea9ce79.zip
chromium_src-2e3b520ff4318342b027ea8aa303e5981ea9ce79.tar.gz
chromium_src-2e3b520ff4318342b027ea8aa303e5981ea9ce79.tar.bz2
Initial version of an experimental Extensions Context Menu API.
The proposal for the API is documented at: http://dev.chromium.org/developers/design-documents/extensions/context-menu-api Notable limitations in this initial implementation: -No reliable way to get at the unique, actual node clicked on in contexts like IMAGE/LINK/etc. We'll need to fix this in the long run - see the API proposal page for some notes on this. -No update or deleteAll methods ; the only way you can change items is to delete by id and re-add. -We aren't yet matching the UI goal of having the extension items at the top level include the extension icon on the left. This will require a refactoring of RenderViewContextMenu to steal some of the code from the bookmarks bar context menus, which can display favicons. -The only kind of parent->child menu that currently works is if you have a single top-level parent, and only one level of children. (This is because of how RenderViewContextMenu currently works) -No browser tests that the menu items actually get drawn (will wait on those until the above mentioned refactor is complete), or API tests (the API may change a bit based on feedback, at which point I'll write more tests). -Unit tests need to cover some more cases. BUG=32363 TEST=Should be able to create context menus with this API. Review URL: http://codereview.chromium.org/1042003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42321 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_context_menu_api.h')
-rw-r--r--chrome/browser/extensions/extension_context_menu_api.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_context_menu_api.h b/chrome/browser/extensions/extension_context_menu_api.h
new file mode 100644
index 0000000..71a0353
--- /dev/null
+++ b/chrome/browser/extensions/extension_context_menu_api.h
@@ -0,0 +1,22 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_CONTEXT_MENU_API_H__
+#define CHROME_BROWSER_EXTENSIONS_EXTENSION_CONTEXT_MENU_API_H__
+
+#include "chrome/browser/extensions/extension_function.h"
+
+class CreateContextMenuFunction : public SyncExtensionFunction {
+ ~CreateContextMenuFunction() {}
+ virtual bool RunImpl();
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.contextMenu.create")
+};
+
+class RemoveContextMenuFunction : public SyncExtensionFunction {
+ ~RemoveContextMenuFunction() {}
+ virtual bool RunImpl();
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.contextMenu.remove")
+};
+
+#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_CONTEXT_MENU_API_H__