Index: extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc |
diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc |
index 8da2fac73794c1f63072b9e68cdd7835f9af7643..b54006592ff5994490dccddb0e8444667af594bb 100644 |
--- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc |
+++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc |
@@ -76,8 +76,10 @@ GuestViewBase* MimeHandlerViewGuest::Create(WebContents* owner_web_contents) { |
MimeHandlerViewGuest::MimeHandlerViewGuest(WebContents* owner_web_contents) |
: GuestView<MimeHandlerViewGuest>(owner_web_contents), |
- delegate_(ExtensionsAPIClient::Get()->CreateMimeHandlerViewGuestDelegate( |
- this)) {} |
+ delegate_( |
+ ExtensionsAPIClient::Get()->CreateMimeHandlerViewGuestDelegate(this)), |
+ embedder_frame_process_id_(0), |
+ embedder_frame_routing_id_(MSG_ROUTING_NONE) {} |
MimeHandlerViewGuest::~MimeHandlerViewGuest() { |
} |
@@ -86,6 +88,21 @@ bool MimeHandlerViewGuest::CanUseCrossProcessFrames() { |
return false; |
} |
+content::RenderFrameHost* MimeHandlerViewGuest::GetEmbedderFrame() { |
+ if (embedder_frame_routing_id_ != MSG_ROUTING_NONE) |
+ return content::RenderFrameHost::FromID(embedder_frame_process_id_, |
+ embedder_frame_routing_id_); |
+ return GuestViewBase::GetEmbedderFrame(); |
+} |
+ |
+void MimeHandlerViewGuest::SetEmbedderFrame(int process_id, int routing_id) { |
+ DCHECK_NE(routing_id, MSG_ROUTING_NONE); |
+ DCHECK_EQ(embedder_frame_routing_id_, MSG_ROUTING_NONE); |
+ |
+ embedder_frame_process_id_ = process_id; |
+ embedder_frame_routing_id_ = routing_id; |
wjmaclean
2016/10/20 14:47:22
Do we need to do anything with these values when d
EhsanK
2016/10/20 21:41:18
We could reset to 0 and MSG_ROUTING_NONE. But Mime
|
+} |
+ |
const char* MimeHandlerViewGuest::GetAPINamespace() const { |
return "mimeHandlerViewGuestInternal"; |
} |