Index: content/renderer/browser_plugin/browser_plugin.cc |
diff --git a/content/renderer/browser_plugin/browser_plugin.cc b/content/renderer/browser_plugin/browser_plugin.cc |
index 4bd18307617782f42cb7ec55573853cb7097de1c..5e3f7c4b0819bac472c87716f99080abfe78606d 100644 |
--- a/content/renderer/browser_plugin/browser_plugin.cc |
+++ b/content/renderer/browser_plugin/browser_plugin.cc |
@@ -175,8 +175,12 @@ void BrowserPlugin::Attach() { |
attach_params.visible = visible_; |
attach_params.opaque = !GetAllowTransparencyAttribute(); |
attach_params.origin = plugin_rect().origin(); |
- GetSizeParams(&attach_params.resize_guest_params, false); |
- |
+ gfx::Size view_size(width(), height()); |
+ if (!view_size.IsEmpty()) { |
+ paint_ack_received_ = false; |
+ PopulateResizeGuestParameters(view_size, |
+ &attach_params.resize_guest_params); |
+ } |
browser_plugin_manager()->Send(new BrowserPluginHostMsg_Attach( |
render_view_routing_id_, |
browser_plugin_instance_id_, |
@@ -192,7 +196,7 @@ void BrowserPlugin::DidCommitCompositorFrame() { |
void BrowserPlugin::OnAdvanceFocus(int browser_plugin_instance_id, |
bool reverse) { |
- DCHECK(render_view_.get()); |
+ DCHECK(render_view_); |
render_view_->GetWebView()->advanceFocus(reverse); |
} |
@@ -317,7 +321,7 @@ void BrowserPlugin::OnUpdateRect( |
} |
BrowserPluginHostMsg_ResizeGuest_Params resize_params; |
- PopulateResizeGuestParameters(&resize_params, plugin_size(), false); |
+ PopulateResizeGuestParameters(plugin_size(), &resize_params); |
paint_ack_received_ = false; |
browser_plugin_manager()->Send(new BrowserPluginHostMsg_ResizeGuest( |
render_view_routing_id_, |
@@ -344,17 +348,19 @@ void BrowserPlugin::ShowSadGraphic() { |
} |
float BrowserPlugin::GetDeviceScaleFactor() const { |
- if (!render_view_.get()) |
+ if (!render_view_) |
return 1.0f; |
return render_view_->GetWebView()->deviceScaleFactor(); |
} |
-void BrowserPlugin::UpdateDeviceScaleFactor(float device_scale_factor) { |
- if (last_device_scale_factor_ == device_scale_factor || !paint_ack_received_) |
+void BrowserPlugin::UpdateDeviceScaleFactor() { |
+ if (!paint_ack_received_ || |
+ last_device_scale_factor_ == GetDeviceScaleFactor()) { |
return; |
+ } |
BrowserPluginHostMsg_ResizeGuest_Params params; |
- PopulateResizeGuestParameters(¶ms, plugin_size(), true); |
+ PopulateResizeGuestParameters(plugin_size(), ¶ms); |
browser_plugin_manager()->Send(new BrowserPluginHostMsg_ResizeGuest( |
render_view_routing_id_, |
browser_plugin_instance_id_, |
@@ -373,7 +379,7 @@ void BrowserPlugin::UpdateGuestFocusState() { |
bool BrowserPlugin::ShouldGuestBeFocused() const { |
bool embedder_focused = false; |
- if (render_view_.get()) |
+ if (render_view_) |
embedder_focused = render_view_->has_focus(); |
return plugin_focused_ && embedder_focused; |
} |
@@ -437,7 +443,7 @@ void BrowserPlugin::destroy() { |
compositing_helper_->OnContainerDestroy(); |
container_ = NULL; |
// Will be a no-op if the mouse is not currently locked. |
- if (render_view_.get()) |
+ if (render_view_) |
render_view_->mouse_lock_dispatcher()->OnLockTargetDestroyed(this); |
base::MessageLoop::current()->DeleteSoon(FROM_HERE, this); |
} |
@@ -548,7 +554,7 @@ void BrowserPlugin::updateGeometry( |
} |
BrowserPluginHostMsg_ResizeGuest_Params params; |
- PopulateResizeGuestParameters(¶ms, plugin_size(), false); |
+ PopulateResizeGuestParameters(plugin_size(), ¶ms); |
paint_ack_received_ = false; |
browser_plugin_manager()->Send(new BrowserPluginHostMsg_ResizeGuest( |
render_view_routing_id_, |
@@ -557,29 +563,17 @@ void BrowserPlugin::updateGeometry( |
} |
void BrowserPlugin::PopulateResizeGuestParameters( |
- BrowserPluginHostMsg_ResizeGuest_Params* params, |
const gfx::Size& view_size, |
- bool needs_repaint) { |
+ BrowserPluginHostMsg_ResizeGuest_Params* params) { |
params->size_changed = true; |
params->view_size = view_size; |
- params->repaint = needs_repaint; |
params->scale_factor = GetDeviceScaleFactor(); |
if (last_device_scale_factor_ != params->scale_factor) { |
- DCHECK(params->repaint); |
last_device_scale_factor_ = params->scale_factor; |
+ params->repaint = true; |
} |
} |
-void BrowserPlugin::GetSizeParams( |
- BrowserPluginHostMsg_ResizeGuest_Params* resize_guest_params, |
- bool needs_repaint) { |
- gfx::Size view_size(width(), height()); |
- if (view_size.IsEmpty()) |
- return; |
- paint_ack_received_ = false; |
- PopulateResizeGuestParameters(resize_guest_params, view_size, needs_repaint); |
-} |
- |
void BrowserPlugin::updateFocus(bool focused) { |
plugin_focused_ = focused; |
UpdateGuestFocusState(); |