UI performs animations immediately following scene creation |
|||||
Issue descriptionAs 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.
,
May 15 2018
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.
,
May 15 2018
,
May 15 2018
Assigning to Ian as per chat. This is in Ian's wheelhouse and would be a handy tool.
,
May 15 2018
,
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
,
May 18 2018
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by cjgrant@chromium.org
, May 1 2018