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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_gues t.h" 5 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_gues t.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "components/guest_view/common/guest_view_constants.h" 10 #include "components/guest_view/common/guest_view_constants.h"
11 #include "content/public/browser/browser_thread.h" 11 #include "content/public/browser/browser_thread.h"
12 #include "content/public/browser/host_zoom_map.h" 12 #include "content/public/browser/host_zoom_map.h"
13 #include "content/public/browser/navigation_entry.h" 13 #include "content/public/browser/navigation_entry.h"
14 #include "content/public/browser/render_process_host.h" 14 #include "content/public/browser/render_process_host.h"
15 #include "content/public/browser/stream_handle.h" 15 #include "content/public/browser/stream_handle.h"
16 #include "content/public/browser/stream_info.h" 16 #include "content/public/browser/stream_info.h"
17 #include "content/public/common/child_process_host.h"
17 #include "content/public/common/url_constants.h" 18 #include "content/public/common/url_constants.h"
18 #include "extensions/browser/api/extensions_api_client.h" 19 #include "extensions/browser/api/extensions_api_client.h"
19 #include "extensions/browser/api/mime_handler_private/mime_handler_private.h" 20 #include "extensions/browser/api/mime_handler_private/mime_handler_private.h"
20 #include "extensions/browser/extension_registry.h" 21 #include "extensions/browser/extension_registry.h"
21 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_stream_ma nager.h" 22 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_stream_ma nager.h"
22 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_cons tants.h" 23 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_cons tants.h"
23 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_gues t_delegate.h" 24 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_gues t_delegate.h"
24 #include "extensions/browser/process_manager.h" 25 #include "extensions/browser/process_manager.h"
25 #include "extensions/common/constants.h" 26 #include "extensions/common/constants.h"
26 #include "extensions/common/extension_messages.h" 27 #include "extensions/common/extension_messages.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 // static 70 // static
70 const char MimeHandlerViewGuest::Type[] = "mimehandler"; 71 const char MimeHandlerViewGuest::Type[] = "mimehandler";
71 72
72 // static 73 // static
73 GuestViewBase* MimeHandlerViewGuest::Create(WebContents* owner_web_contents) { 74 GuestViewBase* MimeHandlerViewGuest::Create(WebContents* owner_web_contents) {
74 return new MimeHandlerViewGuest(owner_web_contents); 75 return new MimeHandlerViewGuest(owner_web_contents);
75 } 76 }
76 77
77 MimeHandlerViewGuest::MimeHandlerViewGuest(WebContents* owner_web_contents) 78 MimeHandlerViewGuest::MimeHandlerViewGuest(WebContents* owner_web_contents)
78 : GuestView<MimeHandlerViewGuest>(owner_web_contents), 79 : GuestView<MimeHandlerViewGuest>(owner_web_contents),
79 delegate_(ExtensionsAPIClient::Get()->CreateMimeHandlerViewGuestDelegate( 80 delegate_(
80 this)) {} 81 ExtensionsAPIClient::Get()->CreateMimeHandlerViewGuestDelegate(this)),
82 embedder_frame_process_id_(content::ChildProcessHost::kInvalidUniqueID),
83 embedder_frame_routing_id_(MSG_ROUTING_NONE) {}
81 84
82 MimeHandlerViewGuest::~MimeHandlerViewGuest() { 85 MimeHandlerViewGuest::~MimeHandlerViewGuest() {
83 } 86 }
84 87
85 bool MimeHandlerViewGuest::CanUseCrossProcessFrames() { 88 bool MimeHandlerViewGuest::CanUseCrossProcessFrames() {
86 return false; 89 return false;
87 } 90 }
88 91
92 content::RenderFrameHost* MimeHandlerViewGuest::GetEmbedderFrame() {
93 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.
94 return content::RenderFrameHost::FromID(embedder_frame_process_id_,
95 embedder_frame_routing_id_);
96 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
97 }
98
99 void MimeHandlerViewGuest::SetEmbedderFrame(int process_id, int routing_id) {
100 DCHECK_NE(routing_id, MSG_ROUTING_NONE);
101 DCHECK_EQ(embedder_frame_routing_id_, MSG_ROUTING_NONE);
102
103 embedder_frame_process_id_ = process_id;
104 embedder_frame_routing_id_ = routing_id;
105 }
106
89 const char* MimeHandlerViewGuest::GetAPINamespace() const { 107 const char* MimeHandlerViewGuest::GetAPINamespace() const {
90 return "mimeHandlerViewGuestInternal"; 108 return "mimeHandlerViewGuestInternal";
91 } 109 }
92 110
93 int MimeHandlerViewGuest::GetTaskPrefix() const { 111 int MimeHandlerViewGuest::GetTaskPrefix() const {
94 return IDS_EXTENSION_TASK_MANAGER_MIMEHANDLERVIEW_TAG_PREFIX; 112 return IDS_EXTENSION_TASK_MANAGER_MIMEHANDLERVIEW_TAG_PREFIX;
95 } 113 }
96 114
97 void MimeHandlerViewGuest::CreateWebContents( 115 void MimeHandlerViewGuest::CreateWebContents(
98 const base::DictionaryValue& create_params, 116 const base::DictionaryValue& create_params,
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 element_instance_id())); 267 element_instance_id()));
250 } 268 }
251 269
252 base::WeakPtr<StreamContainer> MimeHandlerViewGuest::GetStream() const { 270 base::WeakPtr<StreamContainer> MimeHandlerViewGuest::GetStream() const {
253 if (!stream_) 271 if (!stream_)
254 return base::WeakPtr<StreamContainer>(); 272 return base::WeakPtr<StreamContainer>();
255 return stream_->GetWeakPtr(); 273 return stream_->GetWeakPtr();
256 } 274 }
257 275
258 } // namespace extensions 276 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698