| 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 b3e53ee835a0e986d72134710709c11f767dda2b..1de2365620082300d0a2774cd2a468390e79dc3b 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,24 @@ 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(
|
| - extension->id(),
|
| - extensions::WebViewGuest::GetViewInstanceId(source_web_contents_));
|
| - extension_items_.AppendExtensionItems(key,
|
| - PrintableSelectionText(),
|
| - &index,
|
| - false); // is_action_menu
|
| + if (!extension)
|
| + return;
|
| +
|
| + extensions::WebViewGuest* web_view_guest =
|
| + extensions::WebViewGuest::FromWebContents(source_web_contents_);
|
| + MenuItem::ExtensionKey key;
|
| + if (web_view_guest) {
|
| + key = MenuItem::ExtensionKey(
|
| + 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)
|
|
|
|
|