| Index: content/browser/renderer_host/compositor_impl_android.cc
 | 
| diff --git a/content/browser/renderer_host/compositor_impl_android.cc b/content/browser/renderer_host/compositor_impl_android.cc
 | 
| index 86acf38893b8afe0fd2eaf38a2c51fda43352c4a..a86e32fbc98af310c851ea37d7abc3266beb7cd8 100644
 | 
| --- a/content/browser/renderer_host/compositor_impl_android.cc
 | 
| +++ b/content/browser/renderer_host/compositor_impl_android.cc
 | 
| @@ -34,6 +34,7 @@
 | 
|  #include "content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h"
 | 
|  #include "content/common/gpu/gpu_process_launch_causes.h"
 | 
|  #include "content/public/browser/android/compositor_client.h"
 | 
| +#include "content/public/browser/android/compositor_observer.h"
 | 
|  #include "content/public/common/content_switches.h"
 | 
|  #include "third_party/WebKit/public/platform/WebGraphicsContext3D.h"
 | 
|  #include "third_party/khronos/GLES2/gl2.h"
 | 
| @@ -481,4 +482,23 @@ blink::WGC3Denum CompositorImpl::GetGLTypeForBitmap(gfx::JavaBitmap& bitmap) {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +void CompositorImpl::AddObserver(CompositorObserver* observer) {
 | 
| +  if (!HasObserver(observer))
 | 
| +    observer_list_.AddObserver(observer);
 | 
| +}
 | 
| +
 | 
| +void CompositorImpl::RemoveObserver(CompositorObserver* observer) {
 | 
| +  observer_list_.RemoveObserver(observer);
 | 
| +}
 | 
| +
 | 
| +bool CompositorImpl::HasObserver(CompositorObserver* observer) {
 | 
| +  return observer_list_.HasObserver(observer);
 | 
| +}
 | 
| +
 | 
| +void CompositorImpl::DidCommit() {
 | 
| +  FOR_EACH_OBSERVER(CompositorObserver,
 | 
| +                    observer_list_,
 | 
| +                    OnCompositingDidCommit(this));
 | 
| +}
 | 
| +
 | 
|  } // namespace content
 | 
| 
 |