Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(378)

Side by Side Diff: chrome/browser/extensions/api/context_menu/context_menu_api.cc

Issue 11312228: Move extension_error_utils.* and url_pattern_set.* into (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: hate Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/context_menu/context_menu_api.h" 5 #include "chrome/browser/extensions/api/context_menu/context_menu_api.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/values.h"
10 #include "base/string_number_conversions.h" 9 #include "base/string_number_conversions.h"
11 #include "base/string_util.h" 10 #include "base/string_util.h"
11 #include "base/values.h"
12 #include "chrome/browser/extensions/extension_service.h" 12 #include "chrome/browser/extensions/extension_service.h"
13 #include "chrome/browser/extensions/menu_manager.h" 13 #include "chrome/browser/extensions/menu_manager.h"
14 #include "chrome/browser/profiles/profile.h" 14 #include "chrome/browser/profiles/profile.h"
15 #include "chrome/common/extensions/api/context_menus.h" 15 #include "chrome/common/extensions/api/context_menus.h"
16 #include "chrome/common/extensions/extension_error_utils.h" 16 #include "extensions/common/error_utils.h"
17 #include "chrome/common/extensions/url_pattern_set.h" 17 #include "extensions/common/url_pattern_set.h"
18
19 using extensions::ErrorUtils;
18 20
19 namespace { 21 namespace {
20 22
21 const char kGeneratedIdKey[] = "generatedId"; 23 const char kGeneratedIdKey[] = "generatedId";
22 24
23 const char kCannotFindItemError[] = "Cannot find menu item with id *"; 25 const char kCannotFindItemError[] = "Cannot find menu item with id *";
24 const char kOnclickDisallowedError[] = "Extensions using event pages cannot " 26 const char kOnclickDisallowedError[] = "Extensions using event pages cannot "
25 "pass an onclick parameter to chrome.contextMenus.create. Instead, use " 27 "pass an onclick parameter to chrome.contextMenus.create. Instead, use "
26 "the chrome.contextMenus.onClicked event."; 28 "the chrome.contextMenus.onClicked event.";
27 const char kCheckedError[] = 29 const char kCheckedError[] =
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 break; 123 break;
122 } 124 }
123 return parent_id.Pass(); 125 return parent_id.Pass();
124 } 126 }
125 127
126 extensions::MenuItem* GetParent(extensions::MenuItem::Id parent_id, 128 extensions::MenuItem* GetParent(extensions::MenuItem::Id parent_id,
127 const extensions::MenuManager* menu_manager, 129 const extensions::MenuManager* menu_manager,
128 std::string* error) { 130 std::string* error) {
129 extensions::MenuItem* parent = menu_manager->GetItemById(parent_id); 131 extensions::MenuItem* parent = menu_manager->GetItemById(parent_id);
130 if (!parent) { 132 if (!parent) {
131 *error = ExtensionErrorUtils::FormatErrorMessage( 133 *error = ErrorUtils::FormatErrorMessage(
132 kCannotFindItemError, GetIDString(parent_id)); 134 kCannotFindItemError, GetIDString(parent_id));
133 return NULL; 135 return NULL;
134 } 136 }
135 if (parent->type() != extensions::MenuItem::NORMAL) { 137 if (parent->type() != extensions::MenuItem::NORMAL) {
136 *error = kParentsMustBeNormalError; 138 *error = kParentsMustBeNormalError;
137 return NULL; 139 return NULL;
138 } 140 }
139 141
140 return parent; 142 return parent;
141 } 143 }
(...skipping 26 matching lines...) Expand all
168 &id.uid)); 170 &id.uid));
169 } 171 }
170 172
171 std::string title; 173 std::string title;
172 if (params->create_properties.title.get()) 174 if (params->create_properties.title.get())
173 title = *params->create_properties.title; 175 title = *params->create_properties.title;
174 176
175 MenuManager* menu_manager = profile()->GetExtensionService()->menu_manager(); 177 MenuManager* menu_manager = profile()->GetExtensionService()->menu_manager();
176 178
177 if (menu_manager->GetItemById(id)) { 179 if (menu_manager->GetItemById(id)) {
178 error_ = ExtensionErrorUtils::FormatErrorMessage(kDuplicateIDError, 180 error_ = ErrorUtils::FormatErrorMessage(kDuplicateIDError,
179 GetIDString(id)); 181 GetIDString(id));
180 return false; 182 return false;
181 } 183 }
182 184
183 if (GetExtension()->has_lazy_background_page() && 185 if (GetExtension()->has_lazy_background_page() &&
184 params->create_properties.onclick.get()) { 186 params->create_properties.onclick.get()) {
185 error_ = kOnclickDisallowedError; 187 error_ = kOnclickDisallowedError;
186 return false; 188 return false;
187 } 189 }
188 190
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 item_id.uid = *params->id_integer; 259 item_id.uid = *params->id_integer;
258 break; 260 break;
259 case Update::Params::ID_NONE: 261 case Update::Params::ID_NONE:
260 NOTREACHED(); 262 NOTREACHED();
261 } 263 }
262 264
263 ExtensionService* service = profile()->GetExtensionService(); 265 ExtensionService* service = profile()->GetExtensionService();
264 MenuManager* manager = service->menu_manager(); 266 MenuManager* manager = service->menu_manager();
265 MenuItem* item = manager->GetItemById(item_id); 267 MenuItem* item = manager->GetItemById(item_id);
266 if (!item || item->extension_id() != extension_id()) { 268 if (!item || item->extension_id() != extension_id()) {
267 error_ = ExtensionErrorUtils::FormatErrorMessage( 269 error_ = ErrorUtils::FormatErrorMessage(
268 kCannotFindItemError, GetIDString(item_id)); 270 kCannotFindItemError, GetIDString(item_id));
269 return false; 271 return false;
270 } 272 }
271 273
272 // Type. 274 // Type.
273 MenuItem::Type type = GetType(params->update_properties); 275 MenuItem::Type type = GetType(params->update_properties);
274 276
275 if (type != item->type()) { 277 if (type != item->type()) {
276 if (type == MenuItem::RADIO || item->type() == MenuItem::RADIO) 278 if (type == MenuItem::RADIO || item->type() == MenuItem::RADIO)
277 radio_item_updated = true; 279 radio_item_updated = true;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 case Remove::Params::MENU_ITEM_ID_INTEGER: 369 case Remove::Params::MENU_ITEM_ID_INTEGER:
368 id.uid = *params->menu_item_id_integer; 370 id.uid = *params->menu_item_id_integer;
369 break; 371 break;
370 case Remove::Params::MENU_ITEM_ID_NONE: 372 case Remove::Params::MENU_ITEM_ID_NONE:
371 NOTREACHED(); 373 NOTREACHED();
372 } 374 }
373 375
374 MenuItem* item = manager->GetItemById(id); 376 MenuItem* item = manager->GetItemById(id);
375 // Ensure one extension can't remove another's menu items. 377 // Ensure one extension can't remove another's menu items.
376 if (!item || item->extension_id() != extension_id()) { 378 if (!item || item->extension_id() != extension_id()) {
377 error_ = ExtensionErrorUtils::FormatErrorMessage( 379 error_ = ErrorUtils::FormatErrorMessage(
378 kCannotFindItemError, GetIDString(id)); 380 kCannotFindItemError, GetIDString(id));
379 return false; 381 return false;
380 } 382 }
381 383
382 if (!manager->RemoveContextMenuItem(id)) 384 if (!manager->RemoveContextMenuItem(id))
383 return false; 385 return false;
384 manager->WriteToStorage(GetExtension()); 386 manager->WriteToStorage(GetExtension());
385 return true; 387 return true;
386 } 388 }
387 389
388 bool RemoveAllContextMenusFunction::RunImpl() { 390 bool RemoveAllContextMenusFunction::RunImpl() {
389 ExtensionService* service = profile()->GetExtensionService(); 391 ExtensionService* service = profile()->GetExtensionService();
390 MenuManager* manager = service->menu_manager(); 392 MenuManager* manager = service->menu_manager();
391 manager->RemoveAllContextItems(GetExtension()->id()); 393 manager->RemoveAllContextItems(GetExtension()->id());
392 manager->WriteToStorage(GetExtension()); 394 manager->WriteToStorage(GetExtension());
393 return true; 395 return true;
394 } 396 }
395 397
396 } // namespace extensions 398 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698