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) |