New issue
Advanced search Search tips

Issue 891214 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Oct 12
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug

Blocking:
issue 888945



Sign in to add a comment

Toolbar shows for a short time when launching a TWA

Project Member Reported by pshmakov@chromium.org, Oct 2

Issue description

When launching a TWA we can see the toolbar showing for a fraction of a second. The toolbar shouldn't be shown at all in TWA.
 
Blocking: 888945
Project Member

Comment 2 by bugdroid1@chromium.org, Oct 12

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

commit 760c5a94e830a8d1b9750aa8e300887a13a12ee7
Author: Pavel Shmakov <pshmakov@google.com>
Date: Fri Oct 12 17:09:51 2018

🤝 Add persistent hiding mechanism to BrowserStateBrowserControlsVisibilityDelegate
and use it in TWAs to avoid toolbar flickering.

When TWA is opened, the toolbar shows for a fraction of a second before
disappearing. It happens because before finishNativeInitialization() is
called we either don't have a tab, or have one from a warmup that is not
yet attached anywhere. Thus the Tab#canShowBrowserControls() mechanism,
which would use TrustedWebActivityUi#mInTwaVisibilityDelegate as part of
ComposedBrowserControlsVisibilityDelegate doesn't allow to reliably hide
the toolbar in TWAs.

The alternative mechanism is ChromeFullscreenManager#setHideBrowserControlsAndroidView.
Using it as-is would be dangerous, though, because several clients would
now manipulate the same boolean. It needs a token mechanism like the one
implemented in BrowserStateBrowserControlsVisibilityDelegate.

I move the setHideBrowserControlsAndroidView into BrowserStateBrowserControlsVisibilityDelegate
and introduce tokens for persistent hiding. Persistent hiding has a
priority over persistent showing. Then I use persistent hiding in TWA
instead of an additional BrowserControlsVisibilityDelegate.

Bug:  891214 
Change-Id: I0a1c2ee50f4dba5f07fb1d8f0fd1b8a9dd1cc6cf
Reviewed-on: https://chromium-review.googlesource.com/c/1256965
Reviewed-by: Matthew Jones <mdjones@chromium.org>
Reviewed-by: Peter Conn <peconn@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Commit-Queue: Pavel Shmakov <pshmakov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599259}
[modify] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
[modify] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/java/src/org/chromium/chrome/browser/browserservices/TrustedWebActivityUi.java
[modify] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java
[modify] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java
[modify] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsMediator.java
[modify] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
[modify] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserStateBrowserControlsVisibilityDelegate.java
[modify] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java
[modify] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java
[add] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/TokenHolder.java
[modify] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationBuilderBase.java
[modify] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
[modify] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java
[modify] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java
[modify] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/java_sources.gni
[modify] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/junit/src/org/chromium/chrome/browser/fullscreen/BrowserStateBrowserControlsVisibilityDelegateTest.java
[add] https://crrev.com/760c5a94e830a8d1b9750aa8e300887a13a12ee7/chrome/android/junit/src/org/chromium/chrome/browser/fullscreen/TokenHolderTest.java

Status: Fixed (was: Started)
 Issue 875240  has been merged into this issue.

Sign in to add a comment