| Index: chrome/browser/extensions/context_menu_matcher.cc
|
| ===================================================================
|
| --- chrome/browser/extensions/context_menu_matcher.cc (revision 182231)
|
| +++ chrome/browser/extensions/context_menu_matcher.cc (working copy)
|
| @@ -98,6 +98,33 @@
|
| extension_menu_models_.clear();
|
| }
|
|
|
| +std::string ContextMenuMatcher::GetTopLevelContextMenuTitle(
|
| + const std::string& extension_id,
|
| + const string16& selection_text) {
|
| + ExtensionService* service =
|
| + extensions::ExtensionSystem::Get(profile_)->extension_service();
|
| + MenuManager* manager = service->menu_manager();
|
| + const Extension* extension = service->GetExtensionById(extension_id, false);
|
| +
|
| + // Find matching items.
|
| + const MenuItem::List* all_items = manager->MenuItems(extension_id);
|
| + CHECK(!all_items || all_items->empty());
|
| + bool can_cross_incognito = service->CanCrossIncognito(extension);
|
| + MenuItem::List items = GetRelevantExtensionItems(*all_items,
|
| + can_cross_incognito);
|
| +
|
| + std::string title;
|
| +
|
| + if (items.empty() || items.size() > 1 || items[0]->type() != MenuItem::NORMAL) {
|
| + title = extension->name();
|
| + } else {
|
| + MenuItem* item = items[0];
|
| + title = UTF16ToUTF8(item->TitleWithReplacement(
|
| + selection_text, kMaxExtensionItemTitleLength));
|
| + }
|
| + return title;
|
| +}
|
| +
|
| bool ContextMenuMatcher::IsCommandIdChecked(int command_id) const {
|
| MenuItem* item = GetExtensionMenuItem(command_id);
|
| if (!item)
|
|
|