keymanapp / keyman

Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
https://keyman.com/
Other
399 stars 112 forks source link

feat(android): detect Chrome version on Keyman install and prompt for upgrade #5017

Open mcdurdin opened 3 years ago

mcdurdin commented 3 years ago

Is your feature request related to a problem? Please describe.

While Android allows for an evergreen Chrome browser, we are observing that many users still have an older version installed. This breaks Keyman, even for version 14. For version 15, our minimum version will be bumped to 57 to support WASM, and this will increase the scope of this problem.

Describe the solution you'd like

We should be able to detect the version of Chrome that is installed, and prompt the user to update it and block use of the keyboard (or progressively reduce functionality? stretch goal) until that prerequisite is filled.

If possible, we should try and lead the user to the method of running the upgrade, e.g. Play Store, or manual install? Some research may be required here.

If possible, we should backport this to 14.0 and just set the Chrome minver to 37(?) for Keyman 14.


Keyman for iPhone/iPad/Android:

darcywong00 commented 3 years ago

Play Store links: https://play.google.com/store/apps/details?id=com.google.android.webview https://play.google.com/store/apps/details?id=com.android.chrome

darcywong00 commented 3 years ago

Spec question: Is this check performed every time the app starts? (vs trying to install ldml keyboard)

mcdurdin commented 3 years ago

Yes, on app start makes sense.

darcywong00 commented 3 years ago

block use of the keyboard (or progressively reduce functionality? stretch goal) until that prerequisite is filled.

Can you give more clarification on the "degraded" mode if the minimum Chrome version isn't 57? The Keyman app should still function with sil_euro_latin. Maybe just block kmp installation if the keyboard keyman version >= 15.0?

mcdurdin commented 3 years ago

Can you give more clarification on the "degraded" mode if the minimum Chrome version isn't 57?

darcywong00 commented 3 years ago

So for the scope of things:

Then the Keyman engine change would impact 3rd party keyboards / FV Android / KAB?

mcdurdin commented 3 years ago

Then the Keyman engine change would impact 3rd party keyboards / FV Android / KAB?

Yes, potentially. After all, they'll all go wrong in the same way if the Chrome version is too old.

darcywong00 commented 3 years ago

Can you give more clarification on the "degraded" mode if the minimum Chrome version isn't 57?

  • If chrome version <57, allow installation of keyboards but if the keyboard requires v15 then show a warning at keyboard install time, at a minimum, and then if possible, don't allow the keyboard to be selected.
  • If chrome version <37, then we should block all usage of the touch keyboard entirely. [e.g.] don't show the osk at all because it just won't function correctly. Show instead an upgrade message

These are the remaining TODOs on this issue

mcdurdin commented 3 years ago

Is this resolved?

darcywong00 commented 3 years ago

Is this resolved?

The remaining TODOs on this issue are for handling LDML keyboards (when that time comes). I'll change milestone to Future for 16.0

mcdurdin commented 1 year ago

Query: can(should) we bundle our own version of chromium and avoid this issue? Is it possible to bundle only for specific versions of Android?