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

Unified Diff: chrome/browser/tab_contents/render_view_context_menu.cc

Issue 10832349: Platform app context menu items should not be grouped into a submenu. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix conflicts Created 8 years, 4 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/tab_contents/render_view_context_menu.cc
diff --git a/chrome/browser/tab_contents/render_view_context_menu.cc b/chrome/browser/tab_contents/render_view_context_menu.cc
index d668e7a00ca381af2517afa27c3be96d7d578a02..c89b85baf51e81a3b7dbc81bcb582f30d526ecda 100644
--- a/chrome/browser/tab_contents/render_view_context_menu.cc
+++ b/chrome/browser/tab_contents/render_view_context_menu.cc
@@ -392,36 +392,42 @@ void RenderViewContextMenu::AppendExtensionItems(
if (*index == 0 && menu_model_.GetItemCount())
menu_model_.AddSeparator();
- int menu_id = IDC_EXTENSIONS_CONTEXT_CUSTOM_FIRST + (*index)++;
-
- // Extensions are only allowed one top-level slot (and it can't be a radio or
- // checkbox item because we are going to put the extension icon next to it).
+ // Extensions (other than platform apps) are only allowed one top-level slot
+ // (and it can't be a radio or checkbox item because we are going to put the
+ // extension icon next to it).
// If they have more than that, we automatically push them into a submenu.
- string16 title;
- MenuItem::List submenu_items;
- if (items.size() > 1 || items[0]->type() != MenuItem::NORMAL) {
- title = UTF8ToUTF16(extension->name());
- submenu_items = items;
+ if (extension->is_platform_app()) {
+ RecursivelyAppendExtensionItems(items, can_cross_incognito, &menu_model_,
+ index);
} else {
- MenuItem* item = items[0];
- extension_item_map_[menu_id] = item->id();
- title = item->TitleWithReplacement(PrintableSelectionText(),
+ int menu_id = IDC_EXTENSIONS_CONTEXT_CUSTOM_FIRST + (*index)++;
+ string16 title;
+ MenuItem::List submenu_items;
+
+ if (items.size() > 1 || items[0]->type() != MenuItem::NORMAL) {
+ title = UTF8ToUTF16(extension->name());
+ submenu_items = items;
+ } else {
+ MenuItem* item = items[0];
+ extension_item_map_[menu_id] = item->id();
+ title = item->TitleWithReplacement(PrintableSelectionText(),
kMaxExtensionItemTitleLength);
- submenu_items = GetRelevantExtensionItems(item->children(), params_,
+ submenu_items = GetRelevantExtensionItems(item->children(), params_,
profile_, can_cross_incognito);
- }
+ }
- // Now add our item(s) to the menu_model_.
- if (submenu_items.empty()) {
- menu_model_.AddItem(menu_id, title);
- } else {
- ui::SimpleMenuModel* submenu = new ui::SimpleMenuModel(this);
- extension_menu_models_.push_back(submenu);
- menu_model_.AddSubMenu(menu_id, title, submenu);
- RecursivelyAppendExtensionItems(submenu_items, can_cross_incognito, submenu,
- index);
+ // Now add our item(s) to the menu_model_.
+ if (submenu_items.empty()) {
+ menu_model_.AddItem(menu_id, title);
+ } else {
+ ui::SimpleMenuModel* submenu = new ui::SimpleMenuModel(this);
+ extension_menu_models_.push_back(submenu);
+ menu_model_.AddSubMenu(menu_id, title, submenu);
+ RecursivelyAppendExtensionItems(submenu_items, can_cross_incognito,
+ submenu, index);
+ }
+ SetExtensionIcon(extension_id);
}
- SetExtensionIcon(extension_id);
}
void RenderViewContextMenu::RecursivelyAppendExtensionItems(
« no previous file with comments | « chrome/browser/extensions/platform_app_browsertest.cc ('k') | chrome/test/data/extensions/platform_apps/context_menu/test.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698