Fixes: #16577
From 14.0 up until now, our correction-search focused on the minimum "correction distance" to a possible text _correction_, then performed prediction _on top of that_. This PR changes the search to integrate word-frequency weighting from models within the search, allowing us to optimize for the most likely predictions. There is no additional performace cost impact of note here - the probability associated with a correction's best prediction is already accessible O(1) with operations we've already been doing.
It is likely that this will help further mitigate issues with transposition handling noted in the user tests for #16450.
Build-bot: skip release:web,android,ios
fix(web): allow to set default keyboard to 'off'
The parameters for setKeyboardForControl basically have three different modes: - an id of a keyboard/language to set that keyboard, enabling independent keyboard mode - empty string to set the system keyboard, enabling independent keyboard mode - null to disable independent keyboard mode.
Our previous code didn't properly handle the last two modes. This change fixes the problems and also clarifies and updates the documentation.
Also included is an improvement to the guide-examples e2e tests that now wait until all keyboards are loaded (which may fix#16167).
Partially drafted by kilo.ai.
User tests will follow in an upcoming PR for #16522.
Fixes: #16080
The parameters for `setKeyboardForControl` basically have three
different modes:
- an id of a keyboard/language to set that keyboard, enabling independent
keyboard mode
- empty string to set the system keyboard, enabling independent keyboard
mode
- `null` to disable independent keyboard mode.
Our previous code didn't properly handle the last two modes. This change
fixes the problems and also clarifies and updates the documentation.
Also included is an improvement to the guide-examples e2e tests that now
wait until all keyboards are loaded (which may fix#16167).
Partially drafted by kilo.ai.
Fixes: #16080
Build-bot: skip release:web
This is a legacy behaviour from pre KeymanWeb 2.0 days, probably to deal
with buggy rendering in older browsers. Removing as an unwanted
side-effect.
Fixes: #16503
Test-bot: skip
refactor(web): clarify scope of PageContextAttachment functions
Also refactor function comments to follow the style we usually use, and rename some parameters.
chore(web): tweak error message
Previously the browser component and web engine had the same error message which made it harder to know where the exception happened if a call stack or source map were missing. This change modifies the message in engine.
Related-to: #16190
The `onunload` event is deprecated. The only thing we do is cleanup,
which is not necessary if the page is being unloaded anyway.
Fixes: #16477
Test-bot: skip
Previously the browser component and web engine had the same error message
which made it harder to know where the exception happened if a call stack
or source map were missing. This change modifies the message in engine.
Related-to: $#16190
Build-bot: skip release:android,ios,web
Test-bot: skip
Fixes: #16398Fixes: #12311
Note: will not handle transpositions that cross token boundaries.
Also note: major changes will be needed for epic/boundary-correction, as it will discontinue use of the LegacyQuotientSpur type.
Build-bot: skip release:web,android,ios
Previously we uploaded the webview source map during a web build. This
can lead to problems because that is not the actual artifact used for
Android and iOS.
This change therefore moves uploading the webview source map to Sentry
to the android and ios builds.
Build-bot: skip build:web,android,ios
Test-bot: skip