| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/browser_plugin/browser_plugin_guest.h" | 5 #include "content/browser/browser_plugin/browser_plugin_guest.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 219 // Enable input method for guest if it's enabled for the embedder. | 219 // Enable input method for guest if it's enabled for the embedder. |
| 220 if (static_cast<RenderViewHostImpl*>( | 220 if (static_cast<RenderViewHostImpl*>( |
| 221 embedder_web_contents_->GetRenderViewHost())->input_method_active()) { | 221 embedder_web_contents_->GetRenderViewHost())->input_method_active()) { |
| 222 RenderViewHostImpl* guest_rvh = static_cast<RenderViewHostImpl*>( | 222 RenderViewHostImpl* guest_rvh = static_cast<RenderViewHostImpl*>( |
| 223 GetWebContents()->GetRenderViewHost()); | 223 GetWebContents()->GetRenderViewHost()); |
| 224 guest_rvh->SetInputMethodActive(true); | 224 guest_rvh->SetInputMethodActive(true); |
| 225 } | 225 } |
| 226 | 226 |
| 227 // Inform the embedder of the guest's attachment. | 227 // Inform the embedder of the guest's attachment. |
| 228 SendMessageToEmbedder(new BrowserPluginMsg_Attach_ACK(instance_id_)); | 228 SendMessageToEmbedder(new BrowserPluginMsg_Attach_ACK(instance_id_)); |
| 229 | |
| 230 if (delegate_) { | |
| 231 delegate_->DidAttach(extra_params); | |
| 232 has_render_view_ = true; | |
| 233 } | |
| 234 } | 229 } |
| 235 | 230 |
| 236 BrowserPluginGuest::~BrowserPluginGuest() { | 231 BrowserPluginGuest::~BrowserPluginGuest() { |
| 237 } | 232 } |
| 238 | 233 |
| 239 // static | 234 // static |
| 240 BrowserPluginGuest* BrowserPluginGuest::Create( | 235 BrowserPluginGuest* BrowserPluginGuest::Create( |
| 241 int instance_id, | 236 int instance_id, |
| 242 SiteInstance* guest_site_instance, | 237 SiteInstance* guest_site_instance, |
| 243 WebContentsImpl* web_contents, | 238 WebContentsImpl* web_contents, |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 480 return handled; | 475 return handled; |
| 481 } | 476 } |
| 482 | 477 |
| 483 void BrowserPluginGuest::Attach( | 478 void BrowserPluginGuest::Attach( |
| 484 WebContentsImpl* embedder_web_contents, | 479 WebContentsImpl* embedder_web_contents, |
| 485 const BrowserPluginHostMsg_Attach_Params& params, | 480 const BrowserPluginHostMsg_Attach_Params& params, |
| 486 const base::DictionaryValue& extra_params) { | 481 const base::DictionaryValue& extra_params) { |
| 487 if (attached()) | 482 if (attached()) |
| 488 return; | 483 return; |
| 489 | 484 |
| 485 if (delegate_) |
| 486 delegate_->WillAttach(embedder_web_contents, extra_params); |
| 487 |
| 490 // If a RenderView has already been created for this new window, then we need | 488 // If a RenderView has already been created for this new window, then we need |
| 491 // to initialize the browser-side state now so that the RenderFrameHostManager | 489 // to initialize the browser-side state now so that the RenderFrameHostManager |
| 492 // does not create a new RenderView on navigation. | 490 // does not create a new RenderView on navigation. |
| 493 if (has_render_view_) { | 491 if (has_render_view_) { |
| 494 static_cast<RenderViewHostImpl*>( | 492 static_cast<RenderViewHostImpl*>( |
| 495 GetWebContents()->GetRenderViewHost())->Init(); | 493 GetWebContents()->GetRenderViewHost())->Init(); |
| 496 WebContentsViewGuest* new_view = | 494 WebContentsViewGuest* new_view = |
| 497 static_cast<WebContentsViewGuest*>(GetWebContents()->GetView()); | 495 static_cast<WebContentsViewGuest*>(GetWebContents()->GetView()); |
| 498 new_view->CreateViewForWidget(web_contents()->GetRenderViewHost()); | 496 new_view->CreateViewForWidget(web_contents()->GetRenderViewHost()); |
| 499 } | 497 } |
| 500 | 498 |
| 501 Initialize(params, embedder_web_contents, extra_params); | 499 Initialize(params, embedder_web_contents, extra_params); |
| 502 | 500 |
| 503 SendQueuedMessages(); | 501 SendQueuedMessages(); |
| 504 | 502 |
| 503 if (delegate_) |
| 504 delegate_->DidAttach(); |
| 505 |
| 505 RecordAction(base::UserMetricsAction("BrowserPlugin.Guest.Attached")); | 506 RecordAction(base::UserMetricsAction("BrowserPlugin.Guest.Attached")); |
| 506 } | 507 } |
| 507 | 508 |
| 508 void BrowserPluginGuest::OnCompositorFrameSwappedACK( | 509 void BrowserPluginGuest::OnCompositorFrameSwappedACK( |
| 509 int instance_id, | 510 int instance_id, |
| 510 const FrameHostMsg_CompositorFrameSwappedACK_Params& params) { | 511 const FrameHostMsg_CompositorFrameSwappedACK_Params& params) { |
| 511 RenderWidgetHostImpl::SendSwapCompositorFrameAck(params.producing_route_id, | 512 RenderWidgetHostImpl::SendSwapCompositorFrameAck(params.producing_route_id, |
| 512 params.output_surface_id, | 513 params.output_surface_id, |
| 513 params.producing_host_id, | 514 params.producing_host_id, |
| 514 params.ack); | 515 params.ack); |
| (...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 894 void BrowserPluginGuest::OnImeCompositionRangeChanged( | 895 void BrowserPluginGuest::OnImeCompositionRangeChanged( |
| 895 const gfx::Range& range, | 896 const gfx::Range& range, |
| 896 const std::vector<gfx::Rect>& character_bounds) { | 897 const std::vector<gfx::Rect>& character_bounds) { |
| 897 static_cast<RenderWidgetHostViewBase*>( | 898 static_cast<RenderWidgetHostViewBase*>( |
| 898 web_contents()->GetRenderWidgetHostView())->ImeCompositionRangeChanged( | 899 web_contents()->GetRenderWidgetHostView())->ImeCompositionRangeChanged( |
| 899 range, character_bounds); | 900 range, character_bounds); |
| 900 } | 901 } |
| 901 #endif | 902 #endif |
| 902 | 903 |
| 903 } // namespace content | 904 } // namespace content |
| OLD | NEW |