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 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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& view_id, | 180 const std::string& view_id, |
181 int element_instance_id) { | 181 int element_instance_id, |
| 182 const gfx::Size& element_size) { |
182 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 183 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
183 GuestViewManager* manager = | 184 GuestViewManager* manager = |
184 GuestViewManager::FromBrowserContext(browser_context_); | 185 GuestViewManager::FromBrowserContext(browser_context_); |
185 if (!manager) | 186 if (!manager) |
186 return; | 187 return; |
187 | 188 |
188 content::RenderFrameHost* rfh = | 189 content::RenderFrameHost* rfh = |
189 content::RenderFrameHost::FromID(render_process_id_, render_frame_id); | 190 content::RenderFrameHost::FromID(render_process_id_, render_frame_id); |
190 content::WebContents* embedder_web_contents = | 191 content::WebContents* embedder_web_contents = |
191 content::WebContents::FromRenderFrameHost(rfh); | 192 content::WebContents::FromRenderFrameHost(rfh); |
192 if (!embedder_web_contents) | 193 if (!embedder_web_contents) |
193 return; | 194 return; |
194 | 195 |
195 GuestViewManager::WebContentsCreatedCallback callback = base::Bind( | 196 GuestViewManager::WebContentsCreatedCallback callback = |
196 &ExtensionMessageFilter::MimeHandlerViewGuestCreatedCallback, this, | 197 base::Bind(&ExtensionMessageFilter::MimeHandlerViewGuestCreatedCallback, |
197 element_instance_id, render_process_id_, render_frame_id); | 198 this, |
| 199 element_instance_id, |
| 200 render_process_id_, |
| 201 render_frame_id, |
| 202 element_size); |
| 203 |
198 base::DictionaryValue create_params; | 204 base::DictionaryValue create_params; |
199 create_params.SetString(mime_handler_view::kViewId, view_id); | 205 create_params.SetString(mime_handler_view::kViewId, view_id); |
| 206 create_params.SetInteger(guestview::kElementWidth, element_size.width()); |
| 207 create_params.SetInteger(guestview::kElementHeight, element_size.height()); |
200 manager->CreateGuest(MimeHandlerViewGuest::Type, | 208 manager->CreateGuest(MimeHandlerViewGuest::Type, |
201 embedder_web_contents, | 209 embedder_web_contents, |
202 create_params, | 210 create_params, |
203 callback); | 211 callback); |
204 } | 212 } |
205 | 213 |
206 void ExtensionMessageFilter::OnExtensionRemoveLazyListener( | 214 void ExtensionMessageFilter::OnExtensionRemoveLazyListener( |
207 const std::string& extension_id, const std::string& event_name) { | 215 const std::string& extension_id, const std::string& event_name) { |
208 EventRouter* router = EventRouter::Get(browser_context_); | 216 EventRouter* router = EventRouter::Get(browser_context_); |
209 if (!router) | 217 if (!router) |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 render_process_id_, | 288 render_process_id_, |
281 weak_ptr_factory_.GetWeakPtr(), | 289 weak_ptr_factory_.GetWeakPtr(), |
282 routing_id, | 290 routing_id, |
283 params); | 291 params); |
284 } | 292 } |
285 | 293 |
286 void ExtensionMessageFilter::MimeHandlerViewGuestCreatedCallback( | 294 void ExtensionMessageFilter::MimeHandlerViewGuestCreatedCallback( |
287 int element_instance_id, | 295 int element_instance_id, |
288 int embedder_render_process_id, | 296 int embedder_render_process_id, |
289 int embedder_render_frame_id, | 297 int embedder_render_frame_id, |
| 298 const gfx::Size& element_size, |
290 content::WebContents* web_contents) { | 299 content::WebContents* web_contents) { |
291 GuestViewManager* manager = | 300 GuestViewManager* manager = |
292 GuestViewManager::FromBrowserContext(browser_context_); | 301 GuestViewManager::FromBrowserContext(browser_context_); |
293 if (!manager) | 302 if (!manager) |
294 return; | 303 return; |
295 | 304 |
296 MimeHandlerViewGuest* guest_view = | 305 MimeHandlerViewGuest* guest_view = |
297 MimeHandlerViewGuest::FromWebContents(web_contents); | 306 MimeHandlerViewGuest::FromWebContents(web_contents); |
298 if (!guest_view) | 307 if (!guest_view) |
299 return; | 308 return; |
300 int guest_instance_id = guest_view->guest_instance_id(); | 309 int guest_instance_id = guest_view->guest_instance_id(); |
301 | 310 |
302 content::RenderFrameHost* rfh = content::RenderFrameHost::FromID( | 311 content::RenderFrameHost* rfh = content::RenderFrameHost::FromID( |
303 embedder_render_process_id, embedder_render_frame_id); | 312 embedder_render_process_id, embedder_render_frame_id); |
304 if (!rfh) | 313 if (!rfh) |
305 return; | 314 return; |
306 | 315 |
307 base::DictionaryValue attach_params; | 316 base::DictionaryValue attach_params; |
| 317 attach_params.SetInteger(guestview::kElementWidth, element_size.width()); |
| 318 attach_params.SetInteger(guestview::kElementHeight, element_size.height()); |
308 manager->AttachGuest(embedder_render_process_id, | 319 manager->AttachGuest(embedder_render_process_id, |
309 rfh->GetRenderViewHost()->GetRoutingID(), | 320 rfh->GetRenderViewHost()->GetRoutingID(), |
310 element_instance_id, | 321 element_instance_id, |
311 guest_instance_id, | 322 guest_instance_id, |
312 attach_params); | 323 attach_params); |
313 | 324 |
314 rfh->Send( | 325 rfh->Send( |
315 new ExtensionMsg_CreateMimeHandlerViewGuestACK(element_instance_id)); | 326 new ExtensionMsg_CreateMimeHandlerViewGuestACK(element_instance_id)); |
316 } | 327 } |
317 | 328 |
318 } // namespace extensions | 329 } // namespace extensions |
OLD | NEW |