Chromium Code Reviews| 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 |