Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(110)

Unified Diff: extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc

Issue 2417693002: Allow MimeHandlerViewGuest be embedded inside OOPIFs (Closed)
Patch Set: Rebase and nits Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..c68fe9cdf0f55458b801a71dd6a69529a43c5b64 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
@@ -14,6 +14,7 @@
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/stream_handle.h"
#include "content/public/browser/stream_info.h"
+#include "content/public/common/child_process_host.h"
#include "content/public/common/url_constants.h"
#include "extensions/browser/api/extensions_api_client.h"
#include "extensions/browser/api/mime_handler_private/mime_handler_private.h"
@@ -76,8 +77,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_(content::ChildProcessHost::kInvalidUniqueID),
+ embedder_frame_routing_id_(MSG_ROUTING_NONE) {}
MimeHandlerViewGuest::~MimeHandlerViewGuest() {
}
@@ -86,6 +89,21 @@ bool MimeHandlerViewGuest::CanUseCrossProcessFrames() {
return false;
}
+content::RenderFrameHost* MimeHandlerViewGuest::GetEmbedderFrame() {
+ if (embedder_frame_routing_id_ != MSG_ROUTING_NONE)
lfg 2016/10/20 22:50:49 This should be a DCHECK.
EhsanK 2016/10/25 19:30:51 Acknowledged.
+ return content::RenderFrameHost::FromID(embedder_frame_process_id_,
+ embedder_frame_routing_id_);
+ return GuestViewBase::GetEmbedderFrame();
lfg 2016/10/20 22:50:50 And this should be NOTREACHED().
EhsanK 2016/10/25 19:30:51 I guess only DCHECK would do then and I removed th
+}
+
+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;
+}
+
const char* MimeHandlerViewGuest::GetAPINamespace() const {
return "mimeHandlerViewGuestInternal";
}

Powered by Google App Engine
This is Rietveld 408576698