New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 837339 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug
Proj-XR
Proj-XR-VR



Sign in to add a comment

UI performs animations immediately following scene creation

Project Member Reported by cjgrant@chromium.org, Apr 26 2018

Issue description

As of M-68, the UI has an interesting bug where animations fire as a result of scene creation.  Usually the effects are not easily visible, but they could be, and they also negatively affect pixel tests.

Example:  The URL bar animates its color property, and defaults to white.  On scene creation, the color is set to animate, and then, when the first frame is drawn, the animation kicks in to start transitioning from white to the desired color.  This is almost certainly not what we want, and pixel tests would capture the white URL bar as a failure (as they should).

A possible workaround is to initialize all properties to their correct initial state before enabling animation.  This is easy for things like translation, but not easy for colors (which are set via bindings according to UI mode).

A better solution would be to fast-forward all animations to completed state, once, instantaneously, after scene creation.  This way, any animations that may have accrued due to init will be completed before the first frame draws.
 
When doing this, we could also address an unrelated animation weakness: asymmetric animations.  Some elements want to animate differently when appearing vs. disappearing (for example),  It'd be nice if we could separately specify durations, so as not to require changing animation curves on the fly (or similar).
The fast-forward method could be used at other times as well.  For example, when entering a mode, elements may be come visible and have positions assigned.  We may not want that initial position to be arrived at via animation, so a binding on mode could fast-forward to the initial state.
Cc: tiborg@chromium.org cjgrant@chromium.org
Owner: ----
Owner: vollick@chromium.org
Status: Assigned (was: Available)
Assigning to Ian as per chat.  This is in Ian's wheelhouse and would be a handy tool.
Labels: M-69
Project Member

Comment 6 by bugdroid1@chromium.org, May 18 2018

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

commit 6280845b34d88c4850c2960226f3e4be8de339f2
Author: Ian Vollick <vollick@chromium.org>
Date: Fri May 18 22:27:36 2018

[vr] Finish all enqueued animations on the first frame

The animations due to scene setup cause issues for tests that require
steady state after startup.

Bug:  837339 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_vr
Change-Id: I7a712516d3d5b462bcd0cd0b9baf9ccae6079091
Reviewed-on: https://chromium-review.googlesource.com/1065528
Reviewed-by: Christopher Grant <cjgrant@chromium.org>
Commit-Queue: Ian Vollick <vollick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560070}
[modify] https://crrev.com/6280845b34d88c4850c2960226f3e4be8de339f2/chrome/browser/vr/animation.cc
[modify] https://crrev.com/6280845b34d88c4850c2960226f3e4be8de339f2/chrome/browser/vr/animation.h
[modify] https://crrev.com/6280845b34d88c4850c2960226f3e4be8de339f2/chrome/browser/vr/elements/rect_unittest.cc
[modify] https://crrev.com/6280845b34d88c4850c2960226f3e4be8de339f2/chrome/browser/vr/elements/spinner_unittest.cc
[modify] https://crrev.com/6280845b34d88c4850c2960226f3e4be8de339f2/chrome/browser/vr/elements/throbber_unittest.cc
[modify] https://crrev.com/6280845b34d88c4850c2960226f3e4be8de339f2/chrome/browser/vr/elements/transient_element_unittest.cc
[modify] https://crrev.com/6280845b34d88c4850c2960226f3e4be8de339f2/chrome/browser/vr/elements/ui_element.cc
[modify] https://crrev.com/6280845b34d88c4850c2960226f3e4be8de339f2/chrome/browser/vr/elements/ui_element.h
[modify] https://crrev.com/6280845b34d88c4850c2960226f3e4be8de339f2/chrome/browser/vr/elements/ui_element_unittest.cc
[modify] https://crrev.com/6280845b34d88c4850c2960226f3e4be8de339f2/chrome/browser/vr/ui_scene.cc
[modify] https://crrev.com/6280845b34d88c4850c2960226f3e4be8de339f2/chrome/browser/vr/ui_scene.h
[modify] https://crrev.com/6280845b34d88c4850c2960226f3e4be8de339f2/chrome/browser/vr/ui_unittest.cc

Status: Fixed (was: Assigned)

Sign in to add a comment