Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4743)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorSurfaceManager.java

Issue 2893833005: Re-hook up surfaceRedrawNeededAsync callback. (Closed)
Patch Set: Add another interface to fix unit test compile Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorSurfaceManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorSurfaceManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorSurfaceManager.java
index db73828e06fd8f8a0c2ac97011dd6becc4222541..07044fe2bbf685b5e74d2c7a6cddf59944660116 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorSurfaceManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorSurfaceManager.java
@@ -13,6 +13,8 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
+import org.chromium.base.annotations.UsedByReflection;
+
/**
* Manage multiple SurfaceViews for the compositor, so that transitions between
* surfaces with and without an alpha channel can be visually smooth.
@@ -33,7 +35,14 @@ import android.widget.FrameLayout;
*
* The full design doc is at https://goo.gl/aAmQzR .
*/
-class CompositorSurfaceManager implements SurfaceHolder.Callback {
+class CompositorSurfaceManager implements SurfaceHolder.Callback2 {
+ public interface SurfaceHolderCallbackTarget {
+ public void surfaceRedrawNeededAsync(SurfaceHolder holder, Runnable drawingFinished);
+ public void surfaceChanged(SurfaceHolder holder, int format, int width, int height);
+ public void surfaceCreated(SurfaceHolder holder);
+ public void surfaceDestroyed(SurfaceHolder holder);
+ }
+
private static class SurfaceState {
public SurfaceView surfaceView;
@@ -53,7 +62,7 @@ class CompositorSurfaceManager implements SurfaceHolder.Callback {
// Parent ViewGroup, or null.
private ViewGroup mParent;
- public SurfaceState(Context context, int format, SurfaceHolder.Callback callback) {
+ public SurfaceState(Context context, int format, SurfaceHolder.Callback2 callback) {
surfaceView = new SurfaceView(context);
surfaceView.setZOrderMediaOverlay(true);
surfaceView.setVisibility(View.VISIBLE);
@@ -109,12 +118,12 @@ class CompositorSurfaceManager implements SurfaceHolder.Callback {
private SurfaceState mRequestedByClient;
// Client that we notify about surface change events.
- private SurfaceHolder.Callback mClient;
+ private SurfaceHolderCallbackTarget mClient;
// View to which we'll attach the SurfaceView.
private final ViewGroup mParentView;
- public CompositorSurfaceManager(ViewGroup parentView, SurfaceHolder.Callback client) {
+ public CompositorSurfaceManager(ViewGroup parentView, SurfaceHolderCallbackTarget client) {
mParentView = parentView;
mClient = client;
@@ -254,6 +263,17 @@ class CompositorSurfaceManager implements SurfaceHolder.Callback {
}
@Override
+ public void surfaceRedrawNeeded(SurfaceHolder holder) {
+ // Intentionally not implemented.
+ }
+
+ // TODO(boliu): Mark this override instead.
+ @UsedByReflection("Android")
+ public void surfaceRedrawNeededAsync(SurfaceHolder holder, Runnable drawingFinished) {
+ mClient.surfaceRedrawNeededAsync(holder, drawingFinished);
+ }
+
+ @Override
public void surfaceCreated(SurfaceHolder holder) {
SurfaceState state = getStateForHolder(holder);
assert state != null;
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698