Index: chrome/browser/extensions/api/context_menu/context_menu_api.cc |
diff --git a/chrome/browser/extensions/api/context_menu/context_menu_api.cc b/chrome/browser/extensions/api/context_menu/context_menu_api.cc |
index 2976b065de8d2b24a457cc91f861996682d176b5..15dd7967c734b35c7abb4affa5ec543f73eee662 100644 |
--- a/chrome/browser/extensions/api/context_menu/context_menu_api.cc |
+++ b/chrome/browser/extensions/api/context_menu/context_menu_api.cc |
@@ -21,12 +21,16 @@ const char kDocumentUrlPatternsKey[] = "documentUrlPatterns"; |
const char kEnabledKey[] = "enabled"; |
const char kGeneratedIdKey[] = "generatedId"; |
const char kIdKey[] = "id"; |
+const char kOnclickKey[] = "onclick"; |
const char kParentIdKey[] = "parentId"; |
const char kTargetUrlPatternsKey[] = "targetUrlPatterns"; |
const char kTitleKey[] = "title"; |
const char kTypeKey[] = "type"; |
const char kCannotFindItemError[] = "Cannot find menu item with id *"; |
+const char kOnclickDisallowedError[] = "Extensions using event pages cannot " |
+ "pass an onclick parameter to chrome.contextMenus.create. Instead, use " |
+ "the chrome.contextMenus.onClicked event."; |
const char kCheckedError[] = |
"Only items with type \"radio\" or \"checkbox\" can be checked"; |
const char kDuplicateIDError[] = |
@@ -207,6 +211,12 @@ bool CreateContextMenuFunction::RunImpl() { |
return false; |
} |
+ if (GetExtension()->has_lazy_background_page() && |
+ properties->HasKey(kOnclickKey)) { |
+ error_ = kOnclickDisallowedError; |
+ return false; |
+ } |
+ |
ExtensionMenuItem::ContextList contexts(ExtensionMenuItem::PAGE); |
if (!ParseContexts(*properties, kContextsKey, &contexts)) |
return false; |