OLD | NEW |
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/extension_message_filter.h" | 5 #include "extensions/browser/extension_message_filter.h" |
6 | 6 |
7 #include "components/crx_file/id_util.h" | 7 #include "components/crx_file/id_util.h" |
8 #include "content/public/browser/browser_thread.h" | 8 #include "content/public/browser/browser_thread.h" |
9 #include "content/public/browser/render_frame_host.h" | 9 #include "content/public/browser/render_frame_host.h" |
10 #include "content/public/browser/render_process_host.h" | 10 #include "content/public/browser/render_process_host.h" |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 | 170 |
171 manager->AttachGuest(render_process_id_, | 171 manager->AttachGuest(render_process_id_, |
172 routing_id, | 172 routing_id, |
173 element_instance_id, | 173 element_instance_id, |
174 guest_instance_id, | 174 guest_instance_id, |
175 params); | 175 params); |
176 } | 176 } |
177 | 177 |
178 void ExtensionMessageFilter::OnExtensionCreateMimeHandlerViewGuest( | 178 void ExtensionMessageFilter::OnExtensionCreateMimeHandlerViewGuest( |
179 int render_frame_id, | 179 int render_frame_id, |
180 const std::string& src, | 180 const ExtensionHostMsg_CreateMimeHandlerViewGuest_Params& params) { |
181 const std::string& content_url, | |
182 const std::string& mime_type, | |
183 int element_instance_id) { | |
184 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 181 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
185 GuestViewManager* manager = | 182 GuestViewManager* manager = |
186 GuestViewManager::FromBrowserContext(browser_context_); | 183 GuestViewManager::FromBrowserContext(browser_context_); |
187 if (!manager) | 184 if (!manager) |
188 return; | 185 return; |
189 | 186 |
190 content::RenderFrameHost* rfh = | 187 content::RenderFrameHost* rfh = |
191 content::RenderFrameHost::FromID(render_process_id_, render_frame_id); | 188 content::RenderFrameHost::FromID(render_process_id_, render_frame_id); |
192 content::WebContents* embedder_web_contents = | 189 content::WebContents* embedder_web_contents = |
193 content::WebContents::FromRenderFrameHost(rfh); | 190 content::WebContents::FromRenderFrameHost(rfh); |
194 if (!embedder_web_contents) | 191 if (!embedder_web_contents) |
195 return; | 192 return; |
196 | 193 |
197 GuestViewManager::WebContentsCreatedCallback callback = | 194 GuestViewManager::WebContentsCreatedCallback callback = |
198 base::Bind(&ExtensionMessageFilter::MimeHandlerViewGuestCreatedCallback, | 195 base::Bind(&ExtensionMessageFilter::MimeHandlerViewGuestCreatedCallback, |
199 this, | 196 this, |
200 element_instance_id, | 197 params.element_instance_id, |
201 render_process_id_, | 198 render_process_id_, |
202 render_frame_id, | 199 render_frame_id, |
203 src); | 200 params.embedder_url, |
| 201 params.element_size); |
| 202 |
204 base::DictionaryValue create_params; | 203 base::DictionaryValue create_params; |
205 create_params.SetString(mime_handler_view::kMimeType, mime_type); | 204 create_params.SetString(mime_handler_view::kMimeType, params.mime_type); |
206 create_params.SetString(mime_handler_view::kSrc, src); | 205 create_params.SetString(mime_handler_view::kSrc, params.embedder_url); |
207 create_params.SetString(mime_handler_view::kContentUrl, content_url); | 206 create_params.SetString(mime_handler_view::kContentUrl, params.content_url); |
| 207 create_params.SetInteger(guestview::kElementWidth, |
| 208 params.element_size.width()); |
| 209 create_params.SetInteger(guestview::kElementHeight, |
| 210 params.element_size.height()); |
| 211 |
208 manager->CreateGuest(MimeHandlerViewGuest::Type, | 212 manager->CreateGuest(MimeHandlerViewGuest::Type, |
209 embedder_web_contents, | 213 embedder_web_contents, |
210 create_params, | 214 create_params, |
211 callback); | 215 callback); |
212 } | 216 } |
213 | 217 |
214 void ExtensionMessageFilter::OnExtensionRemoveLazyListener( | 218 void ExtensionMessageFilter::OnExtensionRemoveLazyListener( |
215 const std::string& extension_id, const std::string& event_name) { | 219 const std::string& extension_id, const std::string& event_name) { |
216 EventRouter* router = EventRouter::Get(browser_context_); | 220 EventRouter* router = EventRouter::Get(browser_context_); |
217 if (!router) | 221 if (!router) |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 weak_ptr_factory_.GetWeakPtr(), | 293 weak_ptr_factory_.GetWeakPtr(), |
290 routing_id, | 294 routing_id, |
291 params); | 295 params); |
292 } | 296 } |
293 | 297 |
294 void ExtensionMessageFilter::MimeHandlerViewGuestCreatedCallback( | 298 void ExtensionMessageFilter::MimeHandlerViewGuestCreatedCallback( |
295 int element_instance_id, | 299 int element_instance_id, |
296 int embedder_render_process_id, | 300 int embedder_render_process_id, |
297 int embedder_render_frame_id, | 301 int embedder_render_frame_id, |
298 const std::string& src, | 302 const std::string& src, |
| 303 const gfx::Size& element_size, |
299 content::WebContents* web_contents) { | 304 content::WebContents* web_contents) { |
300 GuestViewManager* manager = | 305 GuestViewManager* manager = |
301 GuestViewManager::FromBrowserContext(browser_context_); | 306 GuestViewManager::FromBrowserContext(browser_context_); |
302 if (!manager) | 307 if (!manager) |
303 return; | 308 return; |
304 | 309 |
305 MimeHandlerViewGuest* guest_view = | 310 MimeHandlerViewGuest* guest_view = |
306 MimeHandlerViewGuest::FromWebContents(web_contents); | 311 MimeHandlerViewGuest::FromWebContents(web_contents); |
307 if (!guest_view) | 312 if (!guest_view) |
308 return; | 313 return; |
309 int guest_instance_id = guest_view->guest_instance_id(); | 314 int guest_instance_id = guest_view->guest_instance_id(); |
310 | 315 |
311 content::RenderFrameHost* rfh = content::RenderFrameHost::FromID( | 316 content::RenderFrameHost* rfh = content::RenderFrameHost::FromID( |
312 embedder_render_process_id, embedder_render_frame_id); | 317 embedder_render_process_id, embedder_render_frame_id); |
313 if (!rfh) | 318 if (!rfh) |
314 return; | 319 return; |
315 | 320 |
316 base::DictionaryValue attach_params; | 321 base::DictionaryValue attach_params; |
317 attach_params.SetString(mime_handler_view::kSrc, src); | 322 attach_params.SetString(mime_handler_view::kSrc, src); |
| 323 attach_params.SetInteger(guestview::kElementWidth, element_size.width()); |
| 324 attach_params.SetInteger(guestview::kElementHeight, element_size.height()); |
318 manager->AttachGuest(embedder_render_process_id, | 325 manager->AttachGuest(embedder_render_process_id, |
319 rfh->GetRenderViewHost()->GetRoutingID(), | 326 rfh->GetRenderViewHost()->GetRoutingID(), |
320 element_instance_id, | 327 element_instance_id, |
321 guest_instance_id, | 328 guest_instance_id, |
322 attach_params); | 329 attach_params); |
323 | 330 |
324 rfh->Send( | 331 rfh->Send( |
325 new ExtensionMsg_CreateMimeHandlerViewGuestACK(element_instance_id)); | 332 new ExtensionMsg_CreateMimeHandlerViewGuestACK(element_instance_id)); |
326 } | 333 } |
327 | 334 |
328 } // namespace extensions | 335 } // namespace extensions |
OLD | NEW |