extra-keyboards-for-chrome-os
extra-keyboards-for-chrome-os copied to clipboard
Attempt at adding Manifest V3 support to Compose Key
I made an attempt to convert the compose key extension to Manifest V3. But I am very unclear on how the transition to this new API is supposed to work. There are a bunch of API changes for the background service worker, that I addressed as best as I could. Please review before blindly applying these changes.
In particular, the service worker no longer has access to local storage and has to use a Chrome-specific API. I don't know if I have done this correctly, or if my changes interfere with sync'ing of settings across browsers. I don't quite understand the interactions between "chrome.storage.local" and "chrome.storage.sync".
Furthermore, it looks as if service workers don't have access to "KeyboardEvent". That affects a bunch of code that handles composed sequences. But I believe it really only matters for the location of the key on the keyboard (i.e. number pad vs. main area). And maybe, it's OK to skip that? That's why my changes do. But maybe there is a way to retain this data by refactoring the code? manifest-v3.diff.txt
@gutschke I might be able to find someone able to review these changes, if you could open a proper PR against ComposeKey using this diff?
Thank you so much for that offer. That would be absolutely amazing. I use ComposeKey daily, and I'd be much happier if it was (again) officially available in a version that works for everyone.
I am insanely busy for the next week or so. But if you ping me again, I will absolutely send you a proper PR and make time to respond to feedback. I'll also try to remind myself.
The reason that I haven't previously sent a PR is that I need a proper review not just a rubber stamp. I am not sufficiently confident that I understand this code to trust my changes. They (mostly) seem to work fine in my personal testing, but I would prefer if somebody who actually understands this stuff took a close look.
Any chance of resurrecting this, even as a temporary workaround? The extension is now dead, and I'm finding I really miss it.
Gave it a shot myself in #152. Please review.