Index: trunk/src/content/browser/renderer_host/render_widget_host_view_mac.mm |
=================================================================== |
--- trunk/src/content/browser/renderer_host/render_widget_host_view_mac.mm (revision 282673) |
+++ trunk/src/content/browser/renderer_host/render_widget_host_view_mac.mm (working copy) |
@@ -413,23 +413,10 @@ |
void RenderWidgetHostViewMac::SchedulePaintInRect( |
const gfx::Rect& damage_rect_in_dip) { |
- // Do not paint immediately because this is being called from deep inside |
- // DelegatedFrameHost, and not all of its state is set up yet. |
- if (browser_compositor_view_ && !browser_compositor_has_pending_paint_) { |
- browser_compositor_has_pending_paint_ = true; |
- base::MessageLoop::current()->PostTask(FROM_HERE, |
- base::Bind(&RenderWidgetHostViewMac::DoBrowserCompositorPendingPaint, |
- weak_factory_.GetWeakPtr())); |
- } |
+ if (browser_compositor_view_) |
+ browser_compositor_view_->GetCompositor()->ScheduleFullRedraw(); |
} |
-void RenderWidgetHostViewMac::DoBrowserCompositorPendingPaint() { |
- if (browser_compositor_has_pending_paint_) { |
- browser_compositor_view_->GetCompositor()->Draw(); |
- browser_compositor_has_pending_paint_ = false; |
- } |
-} |
- |
bool RenderWidgetHostViewMac::IsVisible() { |
return !render_widget_host_->is_hidden(); |
} |
@@ -481,10 +468,6 @@ |
return root_layer_.get(); |
} |
-bool RenderWidgetHostViewMac::BrowserCompositorShouldDrawImmediately() { |
- return is_paused_for_resize_or_repaint_; |
-} |
- |
/////////////////////////////////////////////////////////////////////////////// |
// RenderWidgetHostViewBase, public: |
@@ -501,12 +484,10 @@ |
: render_widget_host_(RenderWidgetHostImpl::From(widget)), |
text_input_type_(ui::TEXT_INPUT_TYPE_NONE), |
can_compose_inline_(true), |
- browser_compositor_has_pending_paint_(false), |
browser_compositor_view_placeholder_( |
new BrowserCompositorViewPlaceholderMac), |
backing_store_scale_factor_(1), |
is_loading_(false), |
- is_paused_for_resize_or_repaint_(false), |
weak_factory_(this), |
fullscreen_parent_host_view_(NULL), |
overlay_view_weak_factory_(this), |
@@ -632,10 +613,6 @@ |
browser_compositor_view_.reset(new BrowserCompositorViewMac(this)); |
delegated_frame_host_->AddedToWindow(); |
delegated_frame_host_->WasShown(); |
- RenderWidgetHelper::SetRenderWidgetIDForWidget( |
- browser_compositor_view_->GetView(), |
- render_widget_host_->GetProcess()->GetID(), |
- render_widget_host_->GetRoutingID()); |
} |
void RenderWidgetHostViewMac::DestroyBrowserCompositorView() { |
@@ -646,10 +623,7 @@ |
delegated_frame_host_->WasHidden(); |
delegated_frame_host_->RemovingFromWindow(); |
- RenderWidgetHelper::ResetRenderWidgetIDForWidget( |
- browser_compositor_view_->GetView()); |
browser_compositor_view_.reset(); |
- browser_compositor_has_pending_paint_ = false; |
} |
void RenderWidgetHostViewMac::EnsureSoftwareLayer() { |
@@ -1830,8 +1804,6 @@ |
software_frame_manager_->GetCurrentFrameSizeInDIP() == |
desired_size); |
} |
- if (browser_compositor_view_) |
- return browser_compositor_view_->HasFrameWithSizeInDIP(desired_size); |
return false; |
} |
@@ -1863,8 +1835,6 @@ |
frame->delegated_frame_data.Pass(), |
frame->metadata.device_scale_factor, |
frame->metadata.latency_info); |
- |
- DoBrowserCompositorPendingPaint(); |
} else if (frame->software_frame_data) { |
if (!software_frame_manager_->SwapToNewFrame( |
output_surface_id, |
@@ -2219,6 +2189,11 @@ |
if (!render_widget_host_ || render_widget_host_->is_hidden()) |
return; |
+ // Synchronized resizing does not yet work with browser compositor. |
+ // http://crbug.com/388005 |
+ if (delegated_frame_host_) |
+ return; |
+ |
// Pausing for the overlay/underlay view prevents the other one from receiving |
// frames. This may lead to large delays, causing overlaps. |
// See crbug.com/352020. |
@@ -2231,9 +2206,7 @@ |
SendPendingSwapAck(); |
// Wait for a frame of the right size to come in. |
- is_paused_for_resize_or_repaint_ = true; |
render_widget_host_->PauseForPendingResizeOrRepaints(); |
- is_paused_for_resize_or_repaint_ = false; |
// Immediately draw any frames that haven't been drawn yet. This is necessary |
// to keep the window and the window's contents in sync. |