| Index: ui/gfx/surface/accelerated_surface_win.cc
 | 
| ===================================================================
 | 
| --- ui/gfx/surface/accelerated_surface_win.cc	(revision 119674)
 | 
| +++ ui/gfx/surface/accelerated_surface_win.cc	(working copy)
 | 
| @@ -122,6 +122,10 @@
 | 
|    const int thread_affinity_;
 | 
|    base::ScopedNativeLibrary d3d_module_;
 | 
|  
 | 
| +  // Whether the presenter is suspended and therefore unable to represent. Only
 | 
| +  // accessed on the UI thread so the lock is unnecessary.
 | 
| +  bool suspended_;
 | 
| +
 | 
|    // The size of the swap chain once any pending resizes have been processed.
 | 
|    // Only accessed on the UI thread so the lock is unnecessary.
 | 
|    gfx::Size pending_size_;
 | 
| @@ -151,6 +155,7 @@
 | 
|  
 | 
|  AcceleratedPresenter::AcceleratedPresenter()
 | 
|      : thread_affinity_(g_present_thread_pool.Pointer()->NextThread()),
 | 
| +      suspended_(true),
 | 
|        num_pending_resizes_(0) {
 | 
|    g_present_thread_pool.Pointer()->PostTask(
 | 
|        thread_affinity_,
 | 
| @@ -196,6 +201,8 @@
 | 
|                   size,
 | 
|                   surface_id,
 | 
|                   completion_task));
 | 
| +
 | 
| +  suspended_ = false;
 | 
|  }
 | 
|  
 | 
|  bool AcceleratedPresenter::Present(gfx::NativeWindow window) {
 | 
| @@ -203,6 +210,9 @@
 | 
|  
 | 
|    HRESULT hr;
 | 
|  
 | 
| +  if (suspended_)
 | 
| +    return false;
 | 
| +
 | 
|    base::AutoLock locked(lock_);
 | 
|  
 | 
|    if (!device_)
 | 
| @@ -265,6 +275,8 @@
 | 
|        base::Bind(&AcceleratedPresenter::DoResize,
 | 
|                   base::Unretained(this),
 | 
|                   gfx::Size(1, 1)));
 | 
| +
 | 
| +  suspended_ = true;
 | 
|  }
 | 
|  
 | 
|  void AcceleratedPresenter::DoInitialize() {
 | 
| @@ -499,3 +511,8 @@
 | 
|  bool AcceleratedSurface::Present(HWND window) {
 | 
|    return presenter_->Present(window);
 | 
|  }
 | 
| +
 | 
| +void AcceleratedSurface::Suspend() {
 | 
| +  presenter_->Suspend();
 | 
| +}
 | 
| +
 | 
| 
 |