keymanapp / keyman

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

fix(web): gesture-model initial-state, callback failure handling #11321

Closed jahorton closed 2 weeks ago

jahorton commented 2 weeks ago

Fixes #11186.

Adds error-handling for the callbacks of gesture models passed to the gesture engine, adding stability when the models aren't properly defined. Also prevents a model with invalid initial state from evaluating any further, as that could invalidate assumptions based on said check in the path model.

The gesture engine uses configured callbacks in the specified gesture models to match the needs of the library's consumer. Should an error arise at critical points in that process, we need to ensure they don't destabilize the general core processes of the gesture engine, even if we do need to cancel the failed gesture-models.

@keymanapp-test-bot skip

keymanapp-test-bot[bot] commented 2 weeks ago

User Test Results

Test specification and instructions

User tests are not required

Test Artifacts

keyman-server commented 2 weeks ago

Changes in this pull request will be available for download in Keyman version 17.0.317-beta