Index: content/browser/renderer_host/render_widget_host_view_mac.mm |
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm |
index 6fae1a31c5ada820818a167ba59b26a8a2c88725..c5b286aad1a40c71e1a466728ac4424186d468b7 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm |
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm |
@@ -226,6 +226,7 @@ RenderWidgetHostViewMac::RenderWidgetHostViewMac(RenderWidgetHost* widget) |
: render_widget_host_(widget), |
about_to_validate_and_paint_(false), |
call_set_needs_display_in_rect_pending_(false), |
+ last_frame_was_accelerated_(false), |
text_input_type_(ui::TEXT_INPUT_TYPE_NONE), |
is_loading_(false), |
is_hidden_(false), |
@@ -538,6 +539,8 @@ void RenderWidgetHostViewMac::ImeCompositionRangeChanged( |
void RenderWidgetHostViewMac::DidUpdateBackingStore( |
const gfx::Rect& scroll_rect, int scroll_dx, int scroll_dy, |
const std::vector<gfx::Rect>& copy_rects) { |
+ last_frame_was_accelerated_ = false; |
+ |
if (!is_hidden_) { |
std::vector<gfx::Rect> rects(copy_rects); |
@@ -876,6 +879,7 @@ void RenderWidgetHostViewMac::AcceleratedSurfaceBuffersSwapped( |
AcceleratedPluginView* view = ViewForPluginWindowHandle(window); |
DCHECK(view); |
if (view) { |
+ last_frame_was_accelerated_ = true; |
plugin_container_manager_.SetSurfaceWasPaintedTo(window, surface_id); |
// The surface is hidden until its first paint, to not show gargabe. |
@@ -1738,8 +1742,7 @@ void RenderWidgetHostViewMac::SetTextInputActive(bool active) { |
const gfx::Rect damagedRect([self flipNSRectToRect:dirtyRect]); |
- if (renderWidgetHostView_->render_widget_host_-> |
- is_accelerated_compositing_active()) { |
+ if (renderWidgetHostView_->last_frame_was_accelerated_) { |
gfx::Rect gpuRect; |
gfx::PluginWindowHandle root_handle = |