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 9namespace extensions { 10namespace context_menus_api_helpers { 11 12const char kActionNotAllowedError[] = 13 "Only extensions are allowed to use action contexts"; 14const char kCannotFindItemError[] = "Cannot find menu item with id *"; 15const char kCheckedError[] = 16 "Only items with type \"radio\" or \"checkbox\" can be checked"; 17const char kDuplicateIDError[] = 18 "Cannot create item with duplicate id *"; 19const char kGeneratedIdKey[] = "generatedId"; 20const char kLauncherNotAllowedError[] = 21 "Only packaged apps are allowed to use 'launcher' context"; 22const char kOnclickDisallowedError[] = "Extensions using event pages cannot " 23 "pass an onclick parameter to chrome.contextMenus.create. Instead, use " 24 "the chrome.contextMenus.onClicked event."; 25const char kParentsMustBeNormalError[] = 26 "Parent items must have type \"normal\""; 27const char kTitleNeededError[] = 28 "All menu items except for separators must have a title"; 29 30 31std::string GetIDString(const MenuItem::Id& id) { 32 if (id.uid == 0) 33 return id.string_uid; 34 else 35 return base::IntToString(id.uid); 36} 37 38MenuItem* GetParent(MenuItem::Id parent_id, 39 const MenuManager* menu_manager, 40 std::string* error) { 41 MenuItem* parent = menu_manager->GetItemById(parent_id); 42 if (!parent) { 43 *error = ErrorUtils::FormatErrorMessage( 44 kCannotFindItemError, GetIDString(parent_id)); 45 return NULL; 46 } 47 if (parent->type() != MenuItem::NORMAL) { 48 *error = kParentsMustBeNormalError; 49 return NULL; 50 } 51 return parent; 52} 53 54} // namespace context_menus_api_helpers 55} // namespace extensions 56