Merge "Fix z-order for webview surface control" into sc-dev

This commit is contained in:
Huihong Luo
2021-06-18 19:53:34 +00:00
committed by Android (Google) Code Review
10 changed files with 121 additions and 1 deletions

View File

@@ -762,6 +762,16 @@ public class HardwareRenderer {
nSetASurfaceTransactionCallback(mNativeProxy, callback);
}
private PrepareSurfaceControlForWebviewCallback mAPrepareSurfaceControlForWebviewCallback;
/** @hide */
public void setPrepareSurfaceControlForWebviewCallback(
PrepareSurfaceControlForWebviewCallback callback) {
// ensure callback is kept alive on the java side since weak ref is used in native code
mAPrepareSurfaceControlForWebviewCallback = callback;
nSetPrepareSurfaceControlForWebviewCallback(mNativeProxy, callback);
}
/** @hide */
public void setFrameCallback(FrameDrawingCallback callback) {
nSetFrameCallback(mNativeProxy, callback);
@@ -876,6 +886,19 @@ public class HardwareRenderer {
session.close();
}
/**
* Interface used to receive callbacks when Webview requests a surface control.
*
* @hide
*/
public interface PrepareSurfaceControlForWebviewCallback {
/**
* Invoked when Webview calls to get a surface control.
*
*/
void prepare();
}
/**
* Interface used to receive callbacks when a transaction needs to be merged.
*
@@ -1374,6 +1397,9 @@ public class HardwareRenderer {
private static native void nSetASurfaceTransactionCallback(long nativeProxy,
ASurfaceTransactionCallback callback);
private static native void nSetPrepareSurfaceControlForWebviewCallback(long nativeProxy,
PrepareSurfaceControlForWebviewCallback callback);
private static native void nSetFrameCallback(long nativeProxy, FrameDrawingCallback callback);
private static native void nSetFrameCompleteCallback(long nativeProxy,