| Index: ui/compositor/compositor.cc
 | 
| diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc
 | 
| index e68d6370415e8b1f9addb956b10d4728b8689ed5..8f11ee3b7ebe18f24c885cfe4fff089d7c223547 100644
 | 
| --- a/ui/compositor/compositor.cc
 | 
| +++ b/ui/compositor/compositor.cc
 | 
| @@ -83,6 +83,7 @@ Compositor::Compositor(gfx::AcceleratedWidget widget,
 | 
|        disable_schedule_composite_(false),
 | 
|        compositor_lock_(NULL),
 | 
|        defer_draw_scheduling_(false),
 | 
| +      block_drawing_(false),
 | 
|        waiting_on_compositing_end_(false),
 | 
|        draw_on_compositing_end_(false),
 | 
|        swap_state_(SWAP_NONE),
 | 
| @@ -187,6 +188,19 @@ void Compositor::ScheduleDraw() {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +void Compositor::SetBlockDrawing(bool block_drawing) {
 | 
| +  DCHECK(!compositor_thread_loop_);
 | 
| +
 | 
| +  if (block_drawing_ == block_drawing)
 | 
| +    return;
 | 
| +
 | 
| +  block_drawing_ = block_drawing;
 | 
| +  defer_draw_scheduling_ = block_drawing;
 | 
| +
 | 
| +  if (!block_drawing)
 | 
| +    ScheduleDraw();
 | 
| +}
 | 
| +
 | 
|  void Compositor::SetRootLayer(Layer* root_layer) {
 | 
|    if (root_layer_ == root_layer)
 | 
|      return;
 | 
| @@ -208,6 +222,9 @@ void Compositor::SetHostHasTransparentBackground(
 | 
|  void Compositor::Draw() {
 | 
|    DCHECK(!compositor_thread_loop_.get());
 | 
|  
 | 
| +  if (block_drawing_)
 | 
| +    return;
 | 
| +
 | 
|    defer_draw_scheduling_ = false;
 | 
|    if (waiting_on_compositing_end_) {
 | 
|      draw_on_compositing_end_ = true;
 | 
| 
 |