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