Commit graph

15250 commits

Author SHA1 Message Date
Joshua A. Horton
0596ef15b8 fix(web): set(layer) should not trigger for hardware keystrokes 2022-07-15 08:35:23 +07:00
Marc Durdin
9ffca15f64 fix(developer): set contextDevice in web debugger
With the fix in fix/web/context-only-device, we need to ensure that the
debugger correctly tells KeymanWeb which device is active.

@keymanapp-test-bot skip
2022-07-15 08:35:22 +07:00
Joshua A. Horton
6b5ef29fcc fix(web): reverts prior commit, adds related docs 2022-07-15 08:35:21 +07:00
Joshua Horton
0eb828ed53 chore(web): Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2022-07-15 08:35:20 +07:00
Joshua A. Horton
29f6c16c08 chore(web): unit test fix 2022-07-15 08:17:13 +07:00
Joshua A. Horton
43a21c6b7b chore(web): reduce layer-change noise 2022-07-15 08:17:12 +07:00
Joshua A. Horton
6fd9647957 fix(web): postkeystroke should use the 'context' device, not event device 2022-07-15 08:17:10 +07:00
Marc Durdin
b5b6b884c3
Merge pull request #6935 from keymanapp/fix/ios/cherry-pick/6932-version-ignore-bundle-metadata
fix(ios): ignore CFBundleShortVersionString 🍒
2022-07-13 15:31:24 +10:00
Marc Durdin
38929b82ac fix(ios): ignore CFBundleShortVersionString
Use KeymanVersionWithTag from .plist instead of
CFBundleShortVersionString when checking version information, because
XCode can rewrite bundle version of frameworks. Details: #6932.
2022-07-13 06:30:27 +10:00
Marc Durdin
30d034d35a
Merge pull request #6927 from keymanapp/fix/developer/cherry-pick/6922-qrcode-for-package-editor
fix(developer): QR Code for Package Editor had wrong path 🍒
2022-07-12 15:27:24 +10:00
Marc Durdin
b4b53aa341 fix(developer): QR Code for Package Editor had wrong path 2022-07-12 15:07:03 +10:00
Keyman Server
826e18543f
Merge pull request #6915 from keymanapp/auto/version-stable-15.0-15.0.267
auto: increment stable-15.0 version to 15.0.267
2022-07-08 21:34:12 +10:00
Keyman Build Agent
d9d0d83c42 auto: increment stable-15.0 version to 15.0.267 2022-07-08 07:33:31 -04:00
Marc Durdin
50baf2ae06
Merge pull request #6913 from keymanapp/fix/web/cherry-pick/6910-ncaps-rules-not-matching-on-touch
fix(web): ncaps rules not matching on touch 🔥 🍒
2022-07-08 21:29:01 +10:00
Marc Durdin
70949fc38f fix(web): ncaps rules not matching on touch
Fixes #6910.

Regression introduced in #6874 / #6849 (which themselves were improving
the Caps Lock situation).

Ensures that either `NO_CAPS` or `CAPS` is always set in the modifier
flags.
2022-07-08 16:14:18 +10:00
Marc Durdin
060e926863
Merge pull request #6904 from keymanapp/fix/web/cherry-pick/improve-console-error-reporting
fix(web): improve `console.error()` reporting 🍒
2022-07-08 05:01:51 +10:00
Marc Durdin
4875fad407 chore(web): ts-ignore for downlevel Sentry calls 2022-07-07 10:58:19 +10:00
Marc Durdin
fced98e741 chore(android): tweak sendError for js errors 2022-07-07 09:50:20 +10:00
Marc Durdin
f95298a593 chore(android): disable sendError for js errors 2022-07-07 09:48:41 +10:00
Marc Durdin
22d21e30f7 chore: Apply suggestions from code review
Co-authored-by: Joshua Horton <joshua_horton@sil.org>
2022-07-07 09:37:45 +10:00
Marc Durdin
5abf2daffb fix(web): remove spurious log "No keyboard stubs exist"
This error has been logged for every start of Keyman Engine for Web in
embedded contexts, but nothing bad ever happens. It does not really seem
to be anything we need to worry about. (It may be that the
`setDefaultKeyboard()` call will never return true, but it is still
harmless in any case.)
2022-07-07 09:37:44 +10:00
Marc Durdin
6bbc0316f3 fix(ios): only override console object in ios-host if debug enabled 2022-07-07 09:37:43 +10:00
Marc Durdin
2e38d403b3 fix(web): only report console errors if _enabled 2022-07-07 09:37:42 +10:00
Marc Durdin
e3e8039d8e fix(web): improve console.error() reporting
The back story:

Currently Keyman for Android reports errors sent to the console via
`console.error()` into Sentry but sentry-manager itself does not. This
means that Keyman for iPhone and iPad and other users of sentry-manager
do not report these errors. Many of these errors are important.

What's worse is that Keyman for Android's error reporting here (via the
`sendKMWError()` function in Keyman Engine for Android) does not capture
stack traces, and so many of the errors we get do not have enough
information to resolve them.

Furthermore, by having `sendKMWError()` in Keyman for Android, we
capture exceptions and other program errors twice -- once on the web
side, and once on the Java side -- this adds noise to our error
reporting. Sentry also tends to lump many unrelated `sendKMWError()`
events together, so tracking resolution to the errors is painful.

The fix:

This adds a patch to sentry-manager to capture `console.error()` and
`console.warning()` events and report them through Sentry's normal error
reporting, and disables the `sendKMWError()` report (although we leave
the breadcrumb in place for when there are later, related Java errors).
There is a Sentry integration called CaptureConsole, but it does not
support capturing stack traces until v6.14
(https://github.com/getsentry/sentry-javascript/pull/4034). Updating
Sentry to 6.14 or newer is a bigger job (due to ES6 baseline req. etc.)

Note that Keyman for iOS currently has some other stubs in place
overriding the `console.*` functions. These should be removed for
release builds, so that we can use this pattern instead. I will try and
tackle this in a follow-up PR (I will build it on my mac so I can test
it).

A sample error report captured with this mechanism (no sourcemaps here
because this is a -local build):

https://sentry.io/organizations/keyman/issues/3401287467/events/c40fd2cebb7743cc8dfe72e0dd34bf65/?project=5983524

I am proposing we back-port this to 15.0-stable as we are missing a lot
of data in many of our error reports on Android.
2022-07-07 09:37:33 +10:00
Eberhard Beilharz
d1796da780
Merge pull request #6895 from keymanapp/fix/linux/cherry-pick/6893-postinstall
fix(linux): Fix post-install script 🍒
2022-07-06 09:14:43 +02:00
Eberhard Beilharz
928864fed1
fix(linux): Fix post-install script
This change fixes the ibus-keyman post install script which
previously failed if for whatever reason `SUDO_USER` is not set.

Fixes #6893

(cherry picked from commit 1f84299d08)
2022-07-05 18:17:29 +02:00
Keyman Server
42aa1b9a01
Merge pull request #6888 from keymanapp/auto/version-stable-15.0-15.0.266
auto: increment stable-15.0 version to 15.0.266
2022-07-04 19:02:25 +10:00
Keyman Build Agent
62a20ea48b auto: increment stable-15.0 version to 15.0.266 2022-07-04 05:01:46 -04:00
Joshua Horton
ae2acfb913
Merge pull request #6886 from keymanapp/fix/web/6885-unbound-banner-event-handler
fix(web): post-keystroke processing after use of pred. text selection
2022-07-04 15:03:20 +07:00
jahorton
e65656f3c3 chore(web): cleanup 2022-07-04 09:00:07 +07:00
jahorton
5add44e915 fix(web): properly binds 'suggestionApplied' event handler 2022-07-04 08:54:52 +07:00
Marc Durdin
1cec7a4e68
Merge pull request #6879 from keymanapp/fix/common/cherry-pick/trigger-builds-stable
fix(common): trigger builds correctly for stable builds 🍒
2022-07-02 05:52:06 +10:00
Keyman Server
03ec9dd580
Merge pull request #6880 from keymanapp/auto/version-stable-15.0-15.0.265
auto: increment stable-15.0 version to 15.0.265
2022-07-01 14:09:58 +10:00
Keyman Build Agent
d84434b235 auto: increment stable-15.0 version to 15.0.265 2022-07-01 00:09:13 -04:00
Marc Durdin
532a04936c fix(common): trigger builds correctly for stable builds 2022-07-01 05:02:34 +10:00
Marc Durdin
4ec147071d
Merge pull request #6874 from keymanapp/fix/web/cherry-pick/6799-caps-state-only-from-caps-layer-for-touch
fix(web): Maintain separate Caps Lock states for touch and physical 🍒
2022-07-01 04:55:14 +10:00
Marc Durdin
fd7edb12f5
Merge pull request #6873 from keymanapp/fix/developer/cherry-pick/6846-readonly-groups-never-emit
fix(developer): readonly groups should never emit output 🍒
2022-07-01 04:54:53 +10:00
Marc Durdin
e5293a695c fix(web): Maintain separate Caps Lock states for touch and physical
Fixes #6799.

Caps Lock state management for touch layouts was not quite right -- it
touched the base Caps state variables rather than just the event Lstates
property. This meant that it was impossible to track the physical Caps
Lock key separately to the touch layout layer, and that the two states
would interfere with each other.
2022-06-30 07:03:04 +10:00
Marc Durdin
870d1c8598 fix(developer): readonly groups should never emit output
Fixes #6799.

For KeymanWeb compiled keyboards, readonly groups should never emit any
output. Rules in these groups permitted only to:
  * `use` other readonly groups
  * `call` external functions (which MUST NOT emit output)
  * `set`, `reset` or `save` store values

The base kmx compiler does emit output for rules in readonly groups.
Thus, the KeymanWeb compiler, when it transpiles from the generated
.kmx, needs to omit output for any readonly group, while avoiding any
other potential change in behaviour.
2022-06-30 06:54:50 +10:00
Joshua Horton
133d6ca5a3
Merge pull request #6861 from keymanapp/fix/web/stable/6853-refresh-layout-undef-guard
fix(web): better stability during transient OSK load state 🍒
2022-06-29 13:30:05 +07:00
Joshua Horton
420b48e214
Merge pull request #6863 from keymanapp/fix/web/cherry/6735-sticky-backspace-on-resize
fix(web): clears repeating bksp on keyboard reload ⬅️ 🍒
2022-06-29 13:27:58 +07:00
Joshua Horton
edb75ff86f
chore(web): applies code suggestion
Co-authored-by: Marc Durdin <marc@durdin.net>
2022-06-29 08:14:25 +07:00
jahorton
5cc4d98914 fix(web): keytip null-guard in shutdown 2022-06-28 12:47:37 +07:00
jahorton
56e4037031 fix(web): oh yeah, clear the key preview too 2022-06-28 12:47:36 +07:00
jahorton
55a6ba11a9 fix(web): clears repeating bksp on keyboard reload 2022-06-28 12:47:36 +07:00
jahorton
70913b9155 fix(web): a more polished version 2022-06-28 08:44:32 +07:00
jahorton
b046a3cf14 fix(web): null-guard for refreshLayout 2022-06-28 08:44:31 +07:00
Joshua Horton
c0f1b997d0
Merge pull request #6857 from keymanapp/fix/ios/cherry/6807-known-image-height
fix(ios): eliminates conditional height for banner image 🍒
2022-06-28 08:28:24 +07:00
jahorton
6e3176af94 fix(ios): eliminates conditional height for banner image 2022-06-27 15:51:28 +07:00
Keyman Server
2c288fb758
Merge pull request #6839 from keymanapp/auto/version-stable-15.0-15.0.264
auto: increment stable-15.0 version to 15.0.264
2022-06-24 15:03:25 +10:00