| 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 aab6d42c444a2b833d306cfded25acd5af6c883b..fc8b76e1e99a5000fe08eea5e30e603708cba7d5 100644
|
| --- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
|
| +++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
|
| @@ -517,17 +517,25 @@ void RenderViewContextMenu::AppendCurrentExtensionItems() {
|
| // For Panel, this happens when the panel is navigated to a url outside of the
|
| // extension's package.
|
| const Extension* extension = GetExtension();
|
| - if (extension) {
|
| - // Only add extension items from this extension.
|
| - int index = 0;
|
| - MenuItem::ExtensionKey key(
|
| + if (!extension)
|
| + return;
|
| +
|
| + extensions::WebViewGuest* web_view_guest =
|
| + extensions::WebViewGuest::FromWebContents(source_web_contents_);
|
| + MenuItem::ExtensionKey key;
|
| + if (web_view_guest) {
|
| + key = MenuItem::ExtensionKey(
|
| extension->id(),
|
| - extensions::WebViewGuest::GetViewInstanceId(source_web_contents_));
|
| - extension_items_.AppendExtensionItems(key,
|
| - PrintableSelectionText(),
|
| - &index,
|
| - false); // is_action_menu
|
| + web_view_guest->owner_web_contents()->GetRenderProcessHost()->GetID(),
|
| + web_view_guest->view_instance_id());
|
| + } else {
|
| + key = MenuItem::ExtensionKey(extension->id());
|
| }
|
| +
|
| + // Only add extension items from this extension.
|
| + int index = 0;
|
| + extension_items_.AppendExtensionItems(key, PrintableSelectionText(), &index,
|
| + false /* is_action_menu */);
|
| }
|
| #endif // defined(ENABLE_EXTENSIONS)
|
|
|
|
|