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

Unified Diff: content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java

Issue 201583004: Add layerTreeBuildHelper to control layer tree in ContentViewRenderView (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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
Index: content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java
index 0d196af3873c39d03234d7e5511953845727ec82..92eaa7c10cd98dc16ee04b089eb101ed620aa515 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java
@@ -43,7 +43,7 @@ public class ContentViewRenderView extends FrameLayout {
private int mPendingSwapBuffers;
private boolean mNeedToRender;
- private ContentView mCurrentContentView;
+ protected ContentView mCurrentContentView;
private final Runnable mRenderRunnable = new Runnable() {
@Override
@@ -60,7 +60,7 @@ public class ContentViewRenderView extends FrameLayout {
public ContentViewRenderView(Context context, WindowAndroid rootWindow) {
super(context);
assert rootWindow != null;
- mNativeContentViewRenderView = nativeInit(rootWindow.getNativePointer());
+ nativeInit(rootWindow.getNativePointer());
assert mNativeContentViewRenderView != 0;
mSurfaceView = createSurfaceView(getContext());
@@ -79,14 +79,7 @@ public class ContentViewRenderView extends FrameLayout {
@Override
public void surfaceCreated(SurfaceHolder holder) {
- setSurfaceViewBackgroundColor(Color.WHITE);
-
- assert mNativeContentViewRenderView != 0;
- nativeSurfaceCreated(mNativeContentViewRenderView);
-
- mPendingSwapBuffers = 0;
- mPendingRenders = 0;
-
+ ContentViewRenderView.this.surfaceCreated();
onReadyToRender();
}
@@ -105,6 +98,18 @@ public class ContentViewRenderView extends FrameLayout {
FrameLayout.LayoutParams.MATCH_PARENT));
}
+ @CalledByNative
+ private void clearNativePtr() {
+ assert mNativeContentViewRenderView != 0;
+ mNativeContentViewRenderView = 0;
+ }
+
+ @CalledByNative
+ private void setNativePtr(long nativePtr) {
+ assert mNativeContentViewRenderView == 0;
+ mNativeContentViewRenderView = nativePtr;
+ }
+
private class VSyncAdapter implements VSyncManager.Provider, VSyncMonitor.Listener {
private final VSyncMonitor mVSyncMonitor;
private boolean mVSyncNotificationEnabled;
@@ -218,7 +223,7 @@ public class ContentViewRenderView extends FrameLayout {
if (contentViewCore != null) {
contentViewCore.onPhysicalBackingSizeChanged(getWidth(), getHeight());
- mVSyncAdapter.setVSyncListener(contentViewCore.getVSyncListener(mVSyncAdapter));
+ setVSyncListener(contentViewCore);
}
}
@@ -230,6 +235,20 @@ public class ContentViewRenderView extends FrameLayout {
}
/**
+ * Gives inheriting classes a way to carry out tasks on the surfaceCreated() call
+ * for mSurfaceCallback.
+ */
+ protected void surfaceCreated() {
+ setSurfaceViewBackgroundColor(Color.WHITE);
+
+ assert mNativeContentViewRenderView != 0;
+ nativeSurfaceCreated(mNativeContentViewRenderView);
+
+ mPendingSwapBuffers = 0;
+ mPendingRenders = 0;
+ }
+
+ /**
* This method could be subclassed optionally to provide a custom SurfaceView object to
* this ContentViewRenderView.
* @param context The context used to create the SurfaceView object.
@@ -258,6 +277,15 @@ public class ContentViewRenderView extends FrameLayout {
}
/**
+ * Sets the VSyncListener to mVSync adapter to the provided listener from the
+ * given ContentViewCore.
+ * @param contentViewCore ContentViewCore instance go get the listener from.
+ */
+ protected void setVSyncListener(ContentViewCore contentViewCore) {
+ mVSyncAdapter.setVSyncListener(contentViewCore.getVSyncListener(mVSyncAdapter));
+ }
+
+ /**
* Enter or leave overlay video mode.
* @param enabled Whether overlay mode is enabled.
*/
@@ -306,7 +334,10 @@ public class ContentViewRenderView extends FrameLayout {
if (mPendingSwapBuffers > 0) mPendingSwapBuffers--;
}
- private void render() {
+ /**
+ * Calls Composite on the native side, finishing the compositing task for current frame.
+ */
+ protected void render() {
if (mPendingRenders > 0) mPendingRenders--;
// Waiting for the content view contents to be ready avoids compositing
@@ -331,7 +362,7 @@ public class ContentViewRenderView extends FrameLayout {
}
}
- private native long nativeInit(long rootWindowNativePointer);
+ private native void nativeInit(long rootWindowNativePointer);
private native void nativeDestroy(long nativeContentViewRenderView);
private native void nativeSetCurrentContentView(long nativeContentViewRenderView,
long nativeContentView);

Powered by Google App Engine
This is Rietveld 408576698