| Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
|
| index 49d94a65db23ae1f957b81169c0e7a1cd290ba69..c3eed60d43fe3a069cb7f7f1a9b752b9b525a76c 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
|
| @@ -115,6 +115,7 @@ public class CompositorViewHolder extends CoordinatorLayout
|
| private View mView;
|
|
|
| private TabObserver mTabObserver;
|
| + private FrameObserver mFrameObserver;
|
| private boolean mEnableCompositorTabStrip;
|
|
|
| // Cache objects that should not be created frequently.
|
| @@ -126,6 +127,16 @@ public class CompositorViewHolder extends CoordinatorLayout
|
| private boolean mHasDrawnOnce = false;
|
|
|
| /**
|
| + * An interface for outside classes to be notified when a frame from the compositor is ready.
|
| + */
|
| + public interface FrameObserver {
|
| + /**
|
| + * Notification of the compositor having drawn a frame.
|
| + */
|
| + public void onCompositorFrame();
|
| + }
|
| +
|
| + /**
|
| * This view is created on demand to display debugging information.
|
| */
|
| private static class DebugOverlay extends View {
|
| @@ -231,6 +242,13 @@ public class CompositorViewHolder extends CoordinatorLayout
|
| }
|
|
|
| /**
|
| + * @param observer The object observing frame drawing.
|
| + */
|
| + public void setFrameObserver(FrameObserver observer) {
|
| + mFrameObserver = observer;
|
| + }
|
| +
|
| + /**
|
| * @param layoutManager The {@link LayoutManager} instance that will be driving what
|
| * shows in this {@link CompositorViewHolder}.
|
| */
|
| @@ -575,6 +593,7 @@ public class CompositorViewHolder extends CoordinatorLayout
|
| }
|
|
|
| mHasDrawnOnce = true;
|
| + if (mFrameObserver != null) mFrameObserver.onCompositorFrame();
|
|
|
| mPendingSwapBuffersCount = pendingSwapBuffersCount;
|
|
|
|
|