-
-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(web): fixes touch form-factor default kbd on cookieless keymanweb.com page load #9786
Conversation
User Test ResultsTest specification and instructions User tests are not required Test Artifacts
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't really understand the fix -- it seems complex. But LGTM
@@ -175,6 +175,19 @@ export default class KeymanEngine extends KeymanEngineBase<BrowserConfiguration, | |||
|
|||
await super.init(totalOptions); | |||
|
|||
// Used by keymanweb.com; if no keyboard-cookie exists, we need this to trigger |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really only used by keymanweb.com? Not by almost every single site that uses keymanweb? After all, no sites will have cookies on initial use.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Most sites don't directly call keyman.register
.
keymanweb.com's cdn/prog/keyboards.php
resolves to this due to caching:
/* tier alpha, version 17.0, cached 2023-10-18T02:25:03+00:00 */
function addKeyboards() {
keyman.register({
"options": {
// ...
which is then called here:
keyman.init({
attachType:'auto',
setActiveOnRegister: setActiveOnRegister
}).then(function() {
if(typeof afterInit == 'function') {
afterInit();
}
if(typeof addKeyboards == 'function') {
addKeyboards();
Thus, it completely bypasses KeymanWeb's addKeyboards
API - there's no use of keyman.addKeyboards()
or similar - instead using an unofficial, undocumented optimization. Therefore...
not by almost every single site that uses keymanweb
// globe key - are accessible. | ||
// | ||
// The `super` call above initializes `keyboardRequisitioner`, as needed here. | ||
this.keyboardRequisitioner.cloudQueryEngine.once('unboundregister', () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This event was added in #9304 to facilitate handling of keymanweb.com's direct call of keyman.register
with cached keyboard lists.
Changes in this pull request will be available for download in Keyman version 17.0.194-alpha |
Fixes keymanapp/keymanweb.com#86.
Refer to #9304, which provides lots of very relevant context for the issue and the needed fix.
Unfortunately, the main way I know to test this fix... is to wait for the next alpha build and try then.
It should be possible to build a test page with a similar rigging when time permits, come to think of it, but no such test page exists yet.
@keymanapp-test-bot skip