New issue
Advanced search Search tips

Issue 710186 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 618368



Sign in to add a comment

set opaque hint properly when overlay is displayed

Project Member Reported by liber...@chromium.org, Apr 10 2017

Issue description

AndroidOverlayProviderImpl doesn't notify the embedded that it needs to support transparency is the compositor's output surface (CompositorView in chrome).  without this, the transparent quads that will allow the surface to be visible under the compositor output won't be drawn as transparent quads by SurfaceFlinger.
 
Overlay is created
AndroidOverlayProviderImpl notifies the web_contents that goes with the render frame host to SupportOverlays(true).
webcontents notifies the (tab) that it needs overlays.
the tab notifies the tab host (?), including during tab transitions (hide(), show(...), i think, in Tab.java).
the tab (host?) notifies the compositor view.  for full screen today, the CompositorViewHost registers as a Fullscreen observer on a singleton FullscreenManager.  the manager just broadcasts "full screen" to any listeners.

it could be part of FulLScreenManager, actually, in case there's any indirection going on there that we don't notice.  not sure.
Project Member

Comment 2 by bugdroid1@chromium.org, Jul 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2d5ef4449842efd7478eca4bf8cec685e8e9fae3

commit 2d5ef4449842efd7478eca4bf8cec685e8e9fae3
Author: Thomas Guilbert <tguilbert@chromium.org>
Date: Thu Jul 13 00:12:55 2017

Add WebContentObserver interface to DialogOverlay

Currently, DialogOverlays can be created in frames that are pending
or in hidden WebContents. These DOs would count towards the maximal
overlay count, and not actually be visible.

This CL prevent DOs from being created in frames that would not be
immediately visible, and cleans up DOs as soon as their containing
frames are no longer visible.

Bug:  710186 
Change-Id: I8f9d870e5d7c0995b00464c72cad87d9c57f9a68
Reviewed-on: https://chromium-review.googlesource.com/565757
Commit-Queue: Thomas Guilbert <tguilbert@chromium.org>
Reviewed-by: Bo Liu <boliu@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486174}
[modify] https://crrev.com/2d5ef4449842efd7478eca4bf8cec685e8e9fae3/content/browser/android/dialog_overlay_impl.cc
[modify] https://crrev.com/2d5ef4449842efd7478eca4bf8cec685e8e9fae3/content/browser/android/dialog_overlay_impl.h
[modify] https://crrev.com/2d5ef4449842efd7478eca4bf8cec685e8e9fae3/content/public/android/java/src/org/chromium/content/browser/androidoverlay/DialogOverlayImpl.java
[modify] https://crrev.com/2d5ef4449842efd7478eca4bf8cec685e8e9fae3/content/public/android/javatests/src/org/chromium/content/browser/androidoverlay/DialogOverlayImplTest.java

Project Member

Comment 3 by bugdroid1@chromium.org, Aug 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0267a42cc24945a35c71e1bc8d7f6de3b64799f8

commit 0267a42cc24945a35c71e1bc8d7f6de3b64799f8
Author: Thomas Guilbert <tguilbert@chromium.org>
Date: Wed Aug 02 08:08:33 2017

Set overlay mode opacity hint properly

The compositor does not use an alpha channel on its surface when it does
not need to, for power efficiency reasons. AndroidOverlays require the
compositor's surface to not be opaque, in order to draw a transparent
quad, through which the AO surface (and video) can be seen. We are
calling this transparency mode 'overlay mode'.

This CL adds the necessary plumbing to let WebContents embedders know
when to enter overlay mode. It also adds overlay mode support to
content shell and Chrome.

Bug:  710186 
Change-Id: Ib873b553e7cda8edafc535ed730c18d3e8d44b2a
Reviewed-on: https://chromium-review.googlesource.com/567773
Commit-Queue: Thomas Guilbert <tguilbert@chromium.org>
Reviewed-by: Charlie Reis <creis@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Reviewed-by: Bo Liu <boliu@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491307}
[modify] https://crrev.com/0267a42cc24945a35c71e1bc8d7f6de3b64799f8/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
[modify] https://crrev.com/0267a42cc24945a35c71e1bc8d7f6de3b64799f8/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
[modify] https://crrev.com/0267a42cc24945a35c71e1bc8d7f6de3b64799f8/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java
[modify] https://crrev.com/0267a42cc24945a35c71e1bc8d7f6de3b64799f8/chrome/browser/android/tab_web_contents_delegate_android.cc
[modify] https://crrev.com/0267a42cc24945a35c71e1bc8d7f6de3b64799f8/chrome/browser/android/tab_web_contents_delegate_android.h
[modify] https://crrev.com/0267a42cc24945a35c71e1bc8d7f6de3b64799f8/content/browser/android/dialog_overlay_impl.cc
[modify] https://crrev.com/0267a42cc24945a35c71e1bc8d7f6de3b64799f8/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java
[modify] https://crrev.com/0267a42cc24945a35c71e1bc8d7f6de3b64799f8/content/public/android/java/src/org/chromium/content/browser/androidoverlay/AndroidOverlayProviderImpl.java
[modify] https://crrev.com/0267a42cc24945a35c71e1bc8d7f6de3b64799f8/content/public/android/javatests/src/org/chromium/content/browser/androidoverlay/DialogOverlayImplTest.java
[modify] https://crrev.com/0267a42cc24945a35c71e1bc8d7f6de3b64799f8/content/public/android/javatests/src/org/chromium/content/browser/androidoverlay/DialogOverlayImplTestBase.java
[modify] https://crrev.com/0267a42cc24945a35c71e1bc8d7f6de3b64799f8/content/public/browser/web_contents_delegate.cc
[modify] https://crrev.com/0267a42cc24945a35c71e1bc8d7f6de3b64799f8/content/public/browser/web_contents_delegate.h
[modify] https://crrev.com/0267a42cc24945a35c71e1bc8d7f6de3b64799f8/content/shell/android/java/src/org/chromium/content_shell/Shell.java
[modify] https://crrev.com/0267a42cc24945a35c71e1bc8d7f6de3b64799f8/content/shell/android/java/src/org/chromium/content_shell/ShellManager.java
[modify] https://crrev.com/0267a42cc24945a35c71e1bc8d7f6de3b64799f8/content/shell/browser/shell.h
[modify] https://crrev.com/0267a42cc24945a35c71e1bc8d7f6de3b64799f8/content/shell/browser/shell_android.cc

Cc: -tguilbert@chromium.org
Owner: tguilbert@chromium.org
Status: Fixed (was: Available)

Sign in to add a comment