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 6946015097b93dacbf13a47ebc89046237c42918..de266679b536831787dc525be1deaed2f9550929 100644 |
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc |
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc |
@@ -113,6 +113,10 @@ |
#endif // defined(ENABLE_PRINT_PREVIEW) |
#endif // defined(ENABLE_PRINTING) |
+#if defined(ENABLE_EXTENSIONS) |
+#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h" |
+#endif |
+ |
using base::UserMetricsAction; |
using blink::WebContextMenuData; |
using blink::WebMediaPlayerAction; |
@@ -303,6 +307,17 @@ content::Referrer CreateSaveAsReferrer( |
content::Referrer(referring_url.GetAsReferrer(), params.referrer_policy)); |
} |
+content::WebContents* GetWebContentsToUse(content::WebContents* web_contents) { |
+// If we're viewing in a MimeHandlerViewGuest, use its embedder WebContents. |
+#if defined(ENABLE_EXTENSIONS) |
+ auto guest_view = |
+ extensions::MimeHandlerViewGuest::FromWebContents(web_contents); |
+ if (guest_view) |
+ return guest_view->embedder_web_contents(); |
+#endif |
+ return web_contents; |
+} |
+ |
bool g_custom_id_ranges_initialized = false; |
const int kSpellcheckRadioGroup = 1; |
@@ -339,6 +354,7 @@ RenderViewContextMenu::RenderViewContextMenu( |
} |
set_content_type(ContextMenuContentTypeFactory::Create( |
source_web_contents_, params)); |
+ embedder_web_contents_ = GetWebContentsToUse(source_web_contents_); |
lazyboy
2015/04/30 16:33:31
Can we move this to member initializer list above?
Deepak
2015/05/02 06:25:20
Done.
|
} |
RenderViewContextMenu::~RenderViewContextMenu() { |