1. Jun 17, 2022
    • Marc Durdin's avatar
      fix(web): crash on custom modifier keys · 0741b88d
      Marc Durdin authored
      Fixes #6788.
      Fixes KEYMAN-WEB-22.
      Fixes KEYMAN-DEVELOPER-BQ.
      Fixes KEYMAN-ANDROID-160.
      
      Fixes a crash introduced in #6473 which was trying to prevent modifier
      keys from triggering "fat finger" alternate lookups, due to incomplete
      nullish coalescing.
      
      Related to this, from what I can see, a secondary side-effect of the fix
      in #6473 was that some key events may have never had their ruleBehaviors
      finalized if they matched the `isOnlyLayerSwitchKey` heuristic, leading
      to potential issues with edge case 'deadkey+layer switch' keys or keys
      that set store values, for example. So this fix also makes the
      `isOnlyLayerSwitchKey` test more targeted.
      
      Identified this when adding a Caps Lock layer to sil_euro_latin and
      testing the layer switching. At time of fix, the error had been raised
      in KeymanWeb, Keyman Developer and Keyman for Android, but not yet
      Keyman for iPhone and iPad.
      0741b88d
  2. Jun 16, 2022
  3. Jun 15, 2022
  4. Jun 14, 2022
  5. Jun 13, 2022
  6. Jun 11, 2022
  7. Jun 10, 2022
  8. Jun 08, 2022
  9. Jun 07, 2022
  10. Jun 06, 2022
  11. Jun 05, 2022
    • Marc Durdin's avatar
      chore(web): add BrowserStack to command-line · 6340a59d
      Marc Durdin authored
      6340a59d
    • Marc Durdin's avatar
      chore(web): switch on additional BrowserStack reporting · f521b6ce
      Marc Durdin authored
      Per support case with BrowserStack, am turning on deeper
      reporting for BrowserStack-based testing in karma.
      f521b6ce
    • Marc Durdin's avatar
      chore: add 14.0 entries to beta HISTORY.md · 949f2cf4
      Marc Durdin authored
      949f2cf4
    • Marc Durdin's avatar
      fix(android): check index validity in getCurrentKeyboardInfo · 958fbd3e
      Marc Durdin authored
      This fixes crash reported as #6703. This issue was first reported in
      14.0.282-stable. I have done a careful review of changes in 14.0.282
      (and 14.0.281) but have been unable to find any changes that could have
      bearing on this.
      
      The basic issue is that there appears to be some circumstances where
      `KMManager` thinks that it has a keyboard loaded (ref
      `SystemKeyboardLoaded` variable), but `KMKeyboard.currentKeyboard` is
      still `null`.
      
      The crash has been reported for only a very small set of users, 119 at
      time of fix, but average reports per user is over 100. As is usual with
      this type of thing, a small fraction of those users are reporting the
      majority of crashes. I have not found any real commonality across the
      error reports -- they are geographically dispersed, across multiple
      device types and Android versions.
      
      Note that this addresses the error at hand but as I am unable to
      reproduce the issue, does not necessarily address the root problem, so
      there may still be other issues reported even after this is fixed.
      
      A longer-term refactor would eliminate `SystemKeyboardLoaded` because
      from what I can tell, we should always be able to determine that from
      the state of `KMKeyboard.currentKeyboard`. However, the state
      entanglement is a lot deeper than just those two variables, with cross
      references to keyboard indexes between `KMManager` and `KMKeyboard`
      which need to be resolved (`KMKeyboard` should *never* refer to
      `KMManager`).
      958fbd3e
  12. Jun 04, 2022