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

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

Issue 186213003: <webview>: Context menu API implementation CL. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sync @tott Created 6 years, 9 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/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 931ed78bde3bd261f5067cc89a6d0c26deeb9c4a..37487e876a9d589224dec4bd89f0276535cb9ee4 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -36,6 +36,7 @@
#include "chrome/browser/extensions/extension_host.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/google/google_util.h"
+#include "chrome/browser/guestview/webview/webview_guest.h"
#include "chrome/browser/plugins/chrome_plugin_service_filter.h"
#include "chrome/browser/prefs/incognito_mode_prefs.h"
#include "chrome/browser/profiles/profile.h"
@@ -405,8 +406,10 @@ RenderViewContextMenu::RenderViewContextMenu(
profile_(Profile::FromBrowserContext(
source_web_contents_->GetBrowserContext())),
menu_model_(this),
- extension_items_(profile_, this, &menu_model_,
- base::Bind(MenuItemMatchesParams, params_)),
+ extension_items_(profile_,
+ this,
+ &menu_model_,
+ base::Bind(MenuItemMatchesParams, params_)),
speech_input_submenu_model_(this),
protocol_handler_submenu_model_(this),
protocol_handler_registry_(
@@ -525,17 +528,20 @@ void RenderViewContextMenu::AppendAllExtensionItems() {
// Get a list of extension id's that have context menu items, and sort by the
// top level context menu title of the extension.
- std::set<std::string> ids = menu_manager->ExtensionIds();
+ 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<std::string>::iterator i = ids.begin(); i != ids.end(); ++i) {
- const Extension* extension = service->GetExtensionById(*i, false);
+ for (std::set<MenuItem::ExtensionKey>::iterator i = ids.begin();
+ i != ids.end();
+ ++i) {
+ const Extension* extension =
+ 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(
*i, printable_selection_text);
- map_ids[menu_title] = *i;
+ map_ids[menu_title] = i->extension_id;
sorted_menu_titles.push_back(menu_title);
}
}
@@ -549,8 +555,9 @@ void RenderViewContextMenu::AppendAllExtensionItems() {
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]];
- extension_items_.AppendExtensionItems(id, printable_selection_text,
- &index);
+ const MenuItem::ExtensionKey extension_key(id);
+ extension_items_.AppendExtensionItems(
+ extension_key, printable_selection_text, &index);
}
UMA_HISTOGRAM_TIMES("Extensions.ContextMenus_BuildTime",
@@ -566,8 +573,10 @@ void RenderViewContextMenu::AppendCurrentExtensionItems() {
if (extension) {
// Only add extension items from this extension.
int index = 0;
- extension_items_.AppendExtensionItems(extension->id(),
- PrintableSelectionText(), &index);
+ const MenuItem::ExtensionKey key(
+ extension->id(), WebViewGuest::GetViewInstanceId(source_web_contents_));
+ extension_items_.AppendExtensionItems(
+ key, PrintableSelectionText(), &index);
}
}

Powered by Google App Engine
This is Rietveld 408576698