| 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..78bf14d74cbc2728047134be42e8f0c5c7609f43 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(
|
| - extension->id(),
|
| - extensions::WebViewGuest::GetViewInstanceId(source_web_contents_));
|
| - extension_items_.AppendExtensionItems(key,
|
| - PrintableSelectionText(),
|
| - &index,
|
| - false); // is_action_menu
|
| + if (!extension)
|
| + return;
|
| +
|
| + int webview_embedder_process_id = 0;
|
| + int webview_instance_id = 0;
|
| + auto web_view_guest =
|
| + extensions::WebViewGuest::FromWebContents(source_web_contents_);
|
| + if (web_view_guest) {
|
| + webview_embedder_process_id =
|
| + web_view_guest->owner_web_contents()->GetRenderProcessHost()->GetID();
|
| + webview_instance_id = web_view_guest->view_instance_id();
|
| }
|
| +
|
| + // Only add extension items from this extension.
|
| + int index = 0;
|
| + MenuItem::ExtensionKey key(extension->id(), webview_embedder_process_id,
|
| + webview_instance_id);
|
| + extension_items_.AppendExtensionItems(key, PrintableSelectionText(), &index,
|
| + false /* is_action_menu */);
|
| }
|
| #endif // defined(ENABLE_EXTENSIONS)
|
|
|
|
|