| Index: components/mus/surfaces/top_level_display_client.cc | 
| diff --git a/components/mus/surfaces/top_level_display_client.cc b/components/mus/surfaces/top_level_display_client.cc | 
| index c6eeea7c5ada25e2f07327184a8e292f2bfa409c..6a492e696f02d8c198ffb50e27abdc9789e8ea6d 100644 | 
| --- a/components/mus/surfaces/top_level_display_client.cc | 
| +++ b/components/mus/surfaces/top_level_display_client.cc | 
| @@ -6,6 +6,7 @@ | 
|  | 
| #include "cc/output/compositor_frame.h" | 
| #include "cc/surfaces/display.h" | 
| +#include "cc/surfaces/surface.h" | 
| #include "components/mus/gles2/gpu_state.h" | 
| #include "components/mus/surfaces/surfaces_context_provider.h" | 
| #include "components/mus/surfaces/surfaces_output_surface.h" | 
| @@ -49,13 +50,11 @@ TopLevelDisplayClient::TopLevelDisplayClient( | 
| void TopLevelDisplayClient::OnContextCreated() {} | 
|  | 
| TopLevelDisplayClient::~TopLevelDisplayClient() { | 
| -  if (display_) { | 
| -    factory_.Destroy(cc_id_); | 
| -    surfaces_state_->scheduler()->RemoveDisplay(display_.get()); | 
| -    // By deleting the object after display_ is reset, OutputSurfaceLost can | 
| -    // know not to do anything (which would result in double delete). | 
| -    delete display_.release(); | 
| -  } | 
| +  factory_.Destroy(cc_id_); | 
| +  surfaces_state_->scheduler()->RemoveDisplay(display_.get()); | 
| +  // By deleting the object after display_ is reset, OutputSurfaceLost can | 
| +  // know not to do anything (which would result in double delete). | 
| +  delete display_.release(); | 
| } | 
|  | 
| void TopLevelDisplayClient::SubmitCompositorFrame( | 
| @@ -72,6 +71,14 @@ void TopLevelDisplayClient::SubmitCompositorFrame( | 
| surfaces_state_->scheduler()->SetNeedsDraw(); | 
| } | 
|  | 
| +const cc::CompositorFrame* | 
| +TopLevelDisplayClient::GetLastCompositorFrame() const { | 
| +  cc::Surface* surface = factory_.manager()->GetSurfaceForId(cc_id_); | 
| +  if (!surface) | 
| +    return nullptr; | 
| +  return surface->GetEligibleFrame(); | 
| +} | 
| + | 
| void TopLevelDisplayClient::CommitVSyncParameters(base::TimeTicks timebase, | 
| base::TimeDelta interval) {} | 
|  | 
|  |