Index: chrome/browser/renderer_context_menu/render_view_context_menu.cc |
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc |
index 184eaa53680fa82a2cd5f907b2320e68b02d44ce..4162feacb5a6fa10cafaea8fef02d19c3fae5609 100644 |
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc |
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc |
@@ -18,6 +18,7 @@ |
#include "base/strings/string_util.h" |
#include "base/strings/stringprintf.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "base/time/time.h" |
#include "chrome/app/chrome_command_ids.h" |
#include "chrome/browser/app_mode/app_mode_utils.h" |
#include "chrome/browser/autocomplete/autocomplete_classifier.h" |
@@ -564,17 +565,17 @@ |
std::set<MenuItem::ExtensionKey> ids = menu_manager->ExtensionIds(); |
std::vector<base::string16> sorted_menu_titles; |
std::map<base::string16, std::string> map_ids; |
- for (std::set<MenuItem::ExtensionKey>::iterator iter = ids.begin(); |
- iter != ids.end(); |
- ++iter) { |
+ for (std::set<MenuItem::ExtensionKey>::iterator i = ids.begin(); |
+ i != ids.end(); |
+ ++i) { |
const Extension* extension = |
- service->GetExtensionById(iter->extension_id, false); |
+ service->GetExtensionById(i->extension_id, false); |
// Platform apps have their context menus created directly in |
// AppendPlatformAppItems. |
if (extension && !extension->is_platform_app()) { |
base::string16 menu_title = extension_items_.GetTopLevelContextMenuTitle( |
- *iter, printable_selection_text); |
- map_ids[menu_title] = iter->extension_id; |
+ *i, printable_selection_text); |
+ map_ids[menu_title] = i->extension_id; |
sorted_menu_titles.push_back(menu_title); |
} |
} |
@@ -585,14 +586,17 @@ |
l10n_util::SortStrings16(app_locale, &sorted_menu_titles); |
int index = 0; |
+ base::TimeTicks begin = base::TimeTicks::Now(); |
for (size_t i = 0; i < sorted_menu_titles.size(); ++i) { |
const std::string& id = map_ids[sorted_menu_titles[i]]; |
const MenuItem::ExtensionKey extension_key(id); |
- extension_items_.AppendExtensionItems(extension_key, |
- printable_selection_text, |
- &index, |
- false); // is_action_menu |
- } |
+ extension_items_.AppendExtensionItems( |
+ extension_key, printable_selection_text, &index); |
+ } |
+ |
+ UMA_HISTOGRAM_TIMES("Extensions.ContextMenus_BuildTime", |
+ base::TimeTicks::Now() - begin); |
+ UMA_HISTOGRAM_COUNTS("Extensions.ContextMenus_ItemCount", index); |
} |
void RenderViewContextMenu::AppendCurrentExtensionItems() { |
@@ -605,10 +609,8 @@ |
int index = 0; |
const MenuItem::ExtensionKey key( |
extension->id(), WebViewGuest::GetViewInstanceId(source_web_contents_)); |
- extension_items_.AppendExtensionItems(key, |
- PrintableSelectionText(), |
- &index, |
- false); // is_action_menu |
+ extension_items_.AppendExtensionItems( |
+ key, PrintableSelectionText(), &index); |
} |
} |