extra-keyboards-for-chrome-os icon indicating copy to clipboard operation
extra-keyboards-for-chrome-os copied to clipboard

Attempt at adding Manifest V3 support to Compose Key

Open gutschke opened this issue 1 year ago • 2 comments
trafficstars

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 avatar Sep 15 '24 03:09 gutschke

@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?

colmbuckley avatar Apr 08 '25 19:04 colmbuckley

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.

gutschke avatar Apr 10 '25 03:04 gutschke

Any chance of resurrecting this, even as a temporary workaround? The extension is now dead, and I'm finding I really miss it.

andyross avatar Jun 25 '25 17:06 andyross

Gave it a shot myself in #152. Please review.

andyross avatar Jul 01 '25 20:07 andyross