From c1c99e948e5c92d728bb8c8d65e4183d70e29a11 Mon Sep 17 00:00:00 2001 From: Bo Liu <boliu@chromium.org> Date: Wed, 6 Nov 2019 21:56:14 +0000 Subject: [PATCH] weblayer: Fix fullscreen video The compositor surface is opaque, which means when video is lifted into a separate surface during fullscreen below the compositor surface, it is never showing through. Always set the compositor surface to translucent for now, which will use more memory even when not in fullscreen. Bug: 1022042 Change-Id: I2ff368dfa2a04ba0e62891039244c0bcb148e6fb Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1899901 Reviewed-by: Frank Liberato <liberato@chromium.org> Commit-Queue: Bo <boliu@chromium.org> Cr-Commit-Position: refs/heads/master@{#713178} --- .../org/chromium/weblayer_private/ContentViewRenderView.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/weblayer/browser/java/org/chromium/weblayer_private/ContentViewRenderView.java b/weblayer/browser/java/org/chromium/weblayer_private/ContentViewRenderView.java index 63f151dd9e743..a5d7e70e9f881 100644 --- a/weblayer/browser/java/org/chromium/weblayer_private/ContentViewRenderView.java +++ b/weblayer/browser/java/org/chromium/weblayer_private/ContentViewRenderView.java @@ -6,6 +6,7 @@ package org.chromium.weblayer_private; import android.content.Context; import android.graphics.Color; +import android.graphics.PixelFormat; import android.graphics.SurfaceTexture; import android.view.Surface; import android.view.SurfaceHolder; @@ -193,6 +194,10 @@ public class ContentViewRenderView extends FrameLayout { mSurfaceView.getHolder().addCallback(mSurfaceCallback); mSurfaceView.setVisibility(View.VISIBLE); + // TODO(boliu): This is only needed when video is lifted into a separate surface. + // Keeping this constantly will use one more byte per pixel constantly. + mSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT); + mTextureView = null; mSurfaceTextureListener = null; } else if (mode == MODE_TEXTURE_VIEW) {