Issue metadata
Sign in to add a comment
|
WebXrVrInputTest#testAppButtonExitsPresentation_WebXr__ChromeTabbedActivity flaky |
||||||||||||||||||||||||||||
Issue descriptionWebXrVrInputTest#testAppButtonExitsPresentation_WebXr__ChromeTabbedActivity is flakily reporting that the app button does not cause the WebXr immersive session to end. This is most prevalent on Oreo. After some testing and discussion with acndor@, this appears to be due to two separate issues: 1. Due to DON flow skipping weirdness, we can get paused and resumed extremely quickly, which can cause the controller to reconnect. This reconnection can cause the button up transition to be missed, but is easily fixable by only updating previous button states if the controller is connected. 2. It looks like we may be reporting immersive session entry too early, so that the app button press is sent before we actually start doing anything with controller input. If this is the case, this could be fixed by either: a. Only reporting session entry after we're able to submit frames (test infrastructure change) b. Not giving out an immersive session until we're fully ready (production change) It's currently not clear which of those two solutions is the correct one.
,
Aug 1
I lied. #2 appears to be the same as #1, but instead of only missing the button up due to the disconnect/reconnect, we miss both the button down and up.
,
Aug 1
Unfortunately, the only workarounds I can think of for #2 are either adding a sleep so that the potential disconnect/reconnect has happened by the time we start sending input, or by spamming multiple button presses instead of sending one. I think I actually prefer the sleep since multiple button presses could hide flakiness in our gesture detection code. Hopefully the proposed VrCore-side fix for Issue 762724 that makes DON flow skipping more like a really quickly and automatically completed DON flow will actually fix this.
,
Aug 2
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fcb71d1ab3a40d13ced2559259a02b76b2c44152 commit fcb71d1ab3a40d13ced2559259a02b76b2c44152 Author: bsheedy <bsheedy@chromium.org> Date: Thu Aug 02 17:20:36 2018 Work around VR controller disconnect flakiness Adds a sleep (ew) after entering presentation in VR tests for testing that the Daydream controller's app buton exits presentation. This works around a VrCore issue when skipping the DON flow that causes the controller to briefly disconnect and reconnect when entering VR, eating any controller input that's sent during that time. Bug: 870031 Change-Id: Id888826907c9548120d36b0dde67e30271d4bc85 Reviewed-on: https://chromium-review.googlesource.com/1159398 Reviewed-by: Amirhossein Simjour <asimjour@chromium.org> Commit-Queue: Brian Sheedy <bsheedy@chromium.org> Cr-Commit-Position: refs/heads/master@{#580225} [modify] https://crrev.com/fcb71d1ab3a40d13ced2559259a02b76b2c44152/chrome/android/javatests/src/org/chromium/chrome/browser/vr/WebXrVrInputTest.java
,
Aug 3
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/04d2f0f8ddf85bb106eb43e2b9a9ee3d8754a529 commit 04d2f0f8ddf85bb106eb43e2b9a9ee3d8754a529 Author: bsheedy <bsheedy@chromium.org> Date: Fri Aug 03 18:35:11 2018 Only update VR controller states if connected Only updates the VR controller's previous button states if the controller is connected. This fixes some flakiness with VR tests caused by the controller briefly disconnecting then reconnecting. Bug: 870031 Change-Id: If1e0e8807120e9ddba94c05b651ae553b1e4f60b Reviewed-on: https://chromium-review.googlesource.com/1159273 Reviewed-by: Aldo Culquicondor <acondor@chromium.org> Reviewed-by: Amirhossein Simjour <asimjour@chromium.org> Commit-Queue: Brian Sheedy <bsheedy@chromium.org> Cr-Commit-Position: refs/heads/master@{#580609} [modify] https://crrev.com/04d2f0f8ddf85bb106eb43e2b9a9ee3d8754a529/chrome/browser/android/vr/vr_controller.cc
,
Aug 3
Marking as an external dependency since fully fixing this will require a VrCore-side change.
,
Aug 7
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b3597e15a245a728d3eedd7cfd049f90dbd9ca94 commit b3597e15a245a728d3eedd7cfd049f90dbd9ca94 Author: bsheedy <bsheedy@chromium.org> Date: Tue Aug 07 16:48:37 2018 Move VR controller disconnect workaround Moves the workaround for the Daydream controller flakily disconnecting and reconnecting immediately after entering VR into the EmulatedVrController class. This means that we don't have to add sleeps anytime we use the emulated controller, and tests don't have to care about the workaround unless they're re-entering VR while using the emulated controller (none currently do). Bug: 870031 Change-Id: Icd590ffbd1348764cc945ddd1d72e341febba33e Reviewed-on: https://chromium-review.googlesource.com/1164317 Reviewed-by: Amirhossein Simjour <asimjour@chromium.org> Commit-Queue: Brian Sheedy <bsheedy@chromium.org> Cr-Commit-Position: refs/heads/master@{#581255} [modify] https://crrev.com/b3597e15a245a728d3eedd7cfd049f90dbd9ca94/chrome/android/javatests/src/org/chromium/chrome/browser/vr/EmulatedVrController.java [modify] https://crrev.com/b3597e15a245a728d3eedd7cfd049f90dbd9ca94/chrome/android/javatests/src/org/chromium/chrome/browser/vr/WebXrVrInputTest.java
,
Aug 29
,
Nov 20
This should no longer be an issue since the app button tests have been moved over to Chrome-side controller code instead of the VrCore-side controller emulation. |
|||||||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||||||
Comment 1 by acondor@chromium.org
, Aug 1