• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
GetIDString(const MenuItem::Id & id)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 
GetParent(MenuItem::Id parent_id,const MenuManager * menu_manager,std::string * error)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