From discussion with Gordon, we should also exit VR and prompt the update, or whatever needs to be done. We can use a pattern similar to permission dialogs.
Based on discussion, the only feasible technical solution is to force VR keyboard update iff there is a breaking change or feature required in a new keyboard version.
UX recommendation for how to handle this:
1. (preferred approach) Allow user to go through DON and enter Chrome VR. Clicking any element that would ordinarily trigger keyboard (Omnibox or web input) will instead trigger a modal infobar prompting user to update the keyboard. Essentially, the Bare Bones Browser flow is still supported if the required keyboard is not present (you can view webpages, but you cannot navigate).
2. (alternative approach) User goes through DON. Upon entering Chrome VR, we immediately prompt user to install keyboard (no option to cancel). User is then DOFFed and in 2D, we intent them to Play Store to install keyboard.
We think approach #1 will result in a marginally better user experience. During discussion, #1 was thought to be the same effort as #2. In either case, we should use the same modal infobar component that we use for prompting voice input audio access.
Assumptions / constraints / givens:
- We can force keyboard update when we need to, but not all keyboard releases require a force-update.
- Keyboard update is only possible via a DOFF and intent to Google Play Store.
- We can only trigger a check once the user has gone through the DON flow and entered VR. This precludes us from taking the approach of prompting while still in 2D, the way VRCore does when keyboard is missing.
(Recap of discussion with ymalik, mthiesse, ericde)
This bug requires manual review: There is .grd file changes and we are only 42 days from stable.
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), josafat@(ChromeOS), abdulsyed@(Desktop)
For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Rationale for merge request:
Background: Chrome has an external dependency on the GVR Keyboard apk which renders the keyboard in VR mode. We found a bug in their code where selection was completely broken (b/72506018). A fix was rolled into the latest keyboard APK. This bug tracks forcing the user to upgrade their keyboard version if necessary.
Note that this bug was originally intended to only prompt when no keyboard apk was found, which was an edge case. The priority is significantly bumped after the bug was found.
Now as for the change itself, although it look a bit lengthy, its mostly just trivial plumbing and renaming. The logic changes are pretty trivial where we add code to show our already implemented UI dialog when the keyboard is out of date. The java side changes are again boilerplate plumbing to intent to the play store to install the apk. All the changes are contained within VR, and should have no effect outside of VR mode and rest of Chrome on Android. That is, the benefit to risk ratio is pretty high, hence the merge request.
Comment 1 by bugdroid1@chromium.org
, Jan 6 2018