1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/extensions/api/context_menus/context_menus_api_helpers.h" 6 7 #include "base/strings/string_number_conversions.h" 8 9 namespace extensions { 10 namespace context_menus_api_helpers { 11 12 const char kCannotFindItemError[] = "Cannot find menu item with id *"; 13 const char kCheckedError[] = 14 "Only items with type \"radio\" or \"checkbox\" can be checked"; 15 const char kDuplicateIDError[] = 16 "Cannot create item with duplicate id *"; 17 const char kGeneratedIdKey[] = "generatedId"; 18 const char kLauncherNotAllowedError[] = 19 "Only packaged apps are allowed to use 'launcher' context"; 20 const char kOnclickDisallowedError[] = "Extensions using event pages cannot " 21 "pass an onclick parameter to chrome.contextMenus.create. Instead, use " 22 "the chrome.contextMenus.onClicked event."; 23 const char kParentsMustBeNormalError[] = 24 "Parent items must have type \"normal\""; 25 const char kTitleNeededError[] = 26 "All menu items except for separators must have a title"; 27 28 29 std::string GetIDString(const MenuItem::Id& id) { 30 if (id.uid == 0) 31 return id.string_uid; 32 else 33 return base::IntToString(id.uid); 34 } 35 36 MenuItem* GetParent(MenuItem::Id parent_id, 37 const MenuManager* menu_manager, 38 std::string* error) { 39 MenuItem* parent = menu_manager->GetItemById(parent_id); 40 if (!parent) { 41 *error = ErrorUtils::FormatErrorMessage( 42 kCannotFindItemError, GetIDString(parent_id)); 43 return NULL; 44 } 45 if (parent->type() != MenuItem::NORMAL) { 46 *error = kParentsMustBeNormalError; 47 return NULL; 48 } 49 return parent; 50 } 51 52 } // namespace context_menus_api_helpers 53 } // namespace extensions 54