OLD | NEW |
---|---|
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" | 9 #include "base/values.h" |
10 #include "base/string_number_conversions.h" | 10 #include "base/string_number_conversions.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
68 break; | 68 break; |
69 case PropertyWithEnumT::CONTEXTS_ELEMENT_VIDEO: | 69 case PropertyWithEnumT::CONTEXTS_ELEMENT_VIDEO: |
70 contexts.Add(extensions::MenuItem::VIDEO); | 70 contexts.Add(extensions::MenuItem::VIDEO); |
71 break; | 71 break; |
72 case PropertyWithEnumT::CONTEXTS_ELEMENT_AUDIO: | 72 case PropertyWithEnumT::CONTEXTS_ELEMENT_AUDIO: |
73 contexts.Add(extensions::MenuItem::AUDIO); | 73 contexts.Add(extensions::MenuItem::AUDIO); |
74 break; | 74 break; |
75 case PropertyWithEnumT::CONTEXTS_ELEMENT_FRAME: | 75 case PropertyWithEnumT::CONTEXTS_ELEMENT_FRAME: |
76 contexts.Add(extensions::MenuItem::FRAME); | 76 contexts.Add(extensions::MenuItem::FRAME); |
77 break; | 77 break; |
78 default: | |
79 NOTREACHED(); | |
not at google - send to devlin
2012/09/14 01:44:51
the problem is the presence of a NONE case right?
cduvall
2012/09/17 22:07:46
Done.
| |
78 } | 80 } |
79 } | 81 } |
80 return contexts; | 82 return contexts; |
81 } | 83 } |
82 | 84 |
83 template<typename PropertyWithEnumT> | 85 template<typename PropertyWithEnumT> |
84 extensions::MenuItem::Type GetType(const PropertyWithEnumT& property) { | 86 extensions::MenuItem::Type GetType(const PropertyWithEnumT& property) { |
85 switch (property.type) { | 87 switch (property.type) { |
86 case PropertyWithEnumT::TYPE_NONE: | 88 case PropertyWithEnumT::TYPE_NONE: |
87 case PropertyWithEnumT::TYPE_NORMAL: | 89 case PropertyWithEnumT::TYPE_NORMAL: |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
236 scoped_ptr<Update::Params> params(Update::Params::Create(*args_)); | 238 scoped_ptr<Update::Params> params(Update::Params::Create(*args_)); |
237 | 239 |
238 EXTENSION_FUNCTION_VALIDATE(params.get()); | 240 EXTENSION_FUNCTION_VALIDATE(params.get()); |
239 switch (params->id_type) { | 241 switch (params->id_type) { |
240 case Update::Params::ID_STRING: | 242 case Update::Params::ID_STRING: |
241 item_id.string_uid = *params->id_string; | 243 item_id.string_uid = *params->id_string; |
242 break; | 244 break; |
243 case Update::Params::ID_INTEGER: | 245 case Update::Params::ID_INTEGER: |
244 item_id.uid = *params->id_integer; | 246 item_id.uid = *params->id_integer; |
245 break; | 247 break; |
248 default: | |
249 NOTREACHED(); | |
not at google - send to devlin
2012/09/14 01:44:51
ditto
cduvall
2012/09/17 22:07:46
Done.
| |
246 } | 250 } |
247 | 251 |
248 ExtensionService* service = profile()->GetExtensionService(); | 252 ExtensionService* service = profile()->GetExtensionService(); |
249 MenuManager* manager = service->menu_manager(); | 253 MenuManager* manager = service->menu_manager(); |
250 MenuItem* item = manager->GetItemById(item_id); | 254 MenuItem* item = manager->GetItemById(item_id); |
251 if (!item || item->extension_id() != extension_id()) { | 255 if (!item || item->extension_id() != extension_id()) { |
252 error_ = ExtensionErrorUtils::FormatErrorMessage( | 256 error_ = ExtensionErrorUtils::FormatErrorMessage( |
253 kCannotFindItemError, GetIDString(item_id)); | 257 kCannotFindItemError, GetIDString(item_id)); |
254 return false; | 258 return false; |
255 } | 259 } |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
337 ExtensionService* service = profile()->GetExtensionService(); | 341 ExtensionService* service = profile()->GetExtensionService(); |
338 MenuManager* manager = service->menu_manager(); | 342 MenuManager* manager = service->menu_manager(); |
339 | 343 |
340 MenuItem::Id id(profile()->IsOffTheRecord(), extension_id()); | 344 MenuItem::Id id(profile()->IsOffTheRecord(), extension_id()); |
341 switch (params->menu_item_id_type) { | 345 switch (params->menu_item_id_type) { |
342 case Remove::Params::MENU_ITEM_ID_STRING: | 346 case Remove::Params::MENU_ITEM_ID_STRING: |
343 id.string_uid = *params->menu_item_id_string; | 347 id.string_uid = *params->menu_item_id_string; |
344 break; | 348 break; |
345 case Remove::Params::MENU_ITEM_ID_INTEGER: | 349 case Remove::Params::MENU_ITEM_ID_INTEGER: |
346 id.uid = *params->menu_item_id_integer; | 350 id.uid = *params->menu_item_id_integer; |
351 break; | |
352 default: | |
353 NOTREACHED(); | |
not at google - send to devlin
2012/09/14 01:44:51
ditto
cduvall
2012/09/17 22:07:46
Done.
| |
347 } | 354 } |
348 | 355 |
349 MenuItem* item = manager->GetItemById(id); | 356 MenuItem* item = manager->GetItemById(id); |
350 // Ensure one extension can't remove another's menu items. | 357 // Ensure one extension can't remove another's menu items. |
351 if (!item || item->extension_id() != extension_id()) { | 358 if (!item || item->extension_id() != extension_id()) { |
352 error_ = ExtensionErrorUtils::FormatErrorMessage( | 359 error_ = ExtensionErrorUtils::FormatErrorMessage( |
353 kCannotFindItemError, GetIDString(id)); | 360 kCannotFindItemError, GetIDString(id)); |
354 return false; | 361 return false; |
355 } | 362 } |
356 | 363 |
357 if (!manager->RemoveContextMenuItem(id)) | 364 if (!manager->RemoveContextMenuItem(id)) |
358 return false; | 365 return false; |
359 manager->WriteToStorage(GetExtension()); | 366 manager->WriteToStorage(GetExtension()); |
360 return true; | 367 return true; |
361 } | 368 } |
362 | 369 |
363 bool RemoveAllContextMenusFunction::RunImpl() { | 370 bool RemoveAllContextMenusFunction::RunImpl() { |
364 ExtensionService* service = profile()->GetExtensionService(); | 371 ExtensionService* service = profile()->GetExtensionService(); |
365 MenuManager* manager = service->menu_manager(); | 372 MenuManager* manager = service->menu_manager(); |
366 manager->RemoveAllContextItems(GetExtension()->id()); | 373 manager->RemoveAllContextItems(GetExtension()->id()); |
367 manager->WriteToStorage(GetExtension()); | 374 manager->WriteToStorage(GetExtension()); |
368 return true; | 375 return true; |
369 } | 376 } |
370 | 377 |
371 } // namespace extensions | 378 } // namespace extensions |
OLD | NEW |