| Index: chrome/browser/extensions/api/context_menus/context_menus_api_helpers.h
|
| diff --git a/chrome/browser/extensions/api/context_menus/context_menus_api_helpers.h b/chrome/browser/extensions/api/context_menus/context_menus_api_helpers.h
|
| index 773bd6249014a07855af73cdd2f518564e0e2e9c..bcd3a4bb2a5b4edc4269a1834afdff4dff5391e2 100644
|
| --- a/chrome/browser/extensions/api/context_menus/context_menus_api_helpers.h
|
| +++ b/chrome/browser/extensions/api/context_menus/context_menus_api_helpers.h
|
| @@ -38,6 +38,7 @@ scoped_ptr<extensions::MenuItem::Id> GetParentId(
|
|
|
| } // namespace
|
|
|
| +extern const char kActionNotAllowedError[];
|
| extern const char kCannotFindItemError[];
|
| extern const char kCheckedError[];
|
| extern const char kDuplicateIDError[];
|
| @@ -89,6 +90,14 @@ MenuItem::ContextList GetContexts(const PropertyWithEnumT& property) {
|
| // Not available for <webview>.
|
| contexts.Add(extensions::MenuItem::LAUNCHER);
|
| break;
|
| + case PropertyWithEnumT::CONTEXTS_TYPE_BROWSER_ACTION:
|
| + // Not available for <webview>.
|
| + contexts.Add(extensions::MenuItem::BROWSER_ACTION);
|
| + break;
|
| + case PropertyWithEnumT::CONTEXTS_TYPE_PAGE_ACTION:
|
| + // Not available for <webview>.
|
| + contexts.Add(extensions::MenuItem::PAGE_ACTION);
|
| + break;
|
| case PropertyWithEnumT::CONTEXTS_TYPE_NONE:
|
| NOTREACHED();
|
| }
|
| @@ -151,6 +160,15 @@ bool CreateMenuItem(const PropertyWithEnumT& create_properties,
|
| }
|
| }
|
|
|
| + if (contexts.Contains(MenuItem::BROWSER_ACTION) ||
|
| + contexts.Contains(MenuItem::PAGE_ACTION)) {
|
| + // Action items are not allowed for <webview>.
|
| + if (!extension->is_extension() || is_webview) {
|
| + *error = kActionNotAllowedError;
|
| + return false;
|
| + }
|
| + }
|
| +
|
| // Title.
|
| std::string title;
|
| if (create_properties.title.get())
|
|
|