Switch Smart Card Connector to Extensions Manifest V3
Opened this issue · 4 comments
Currently, Smart Card Connector is a Chrome App. A couple of years ago we started the work on migrating it an Extension (https://github.com/GoogleChromeLabs/chromeos_smart_card_connector/projects/3), however originally this was targeting Manifest V2 Extensions.
With the new deprecation timelines (https://developer.chrome.com/docs/extensions/develop/migrate/mv2-deprecation-timeline), we should switch to Extensions Manifest V3 instead.
Is it possible that this could this be an issue for us, considering the fact that we use a chrome kiosk app with manifest version 2 and also using smart card connector reader chrome app, or does this only apply for extension of smart card connector?
Is it possible that this could this be an issue for us, considering the fact that we use a chrome kiosk app with manifest version 2 and also using smart card connector reader chrome app, or does this only apply for extension of smart card connector?
The latter is correct, so the timelines aren't pressuring as long as one stays on ChromeOS Apps.
Okay, thank you, that is good news.
Capturing one thought: probably #1152 should be enhanced in a way similar to the code touched in #1155. In other words, when we await
on an incoming port, the port should initially freeze incoming messages until it's marked as "ready". Otherwise we risk the following race condition:
- receiver: creates
PortMessageChannelWaiter
, and startsawait
ing on it - sender:
port = chrome.runtime.connect(...)
- receiver:
chrome.runtime.onConnect
received byPortMessageChannelWaiter
, and thePort
is created - receiver: the
await
ed promise starts being resolved - sender:
port.postMessage(...)
- receiver: the
Port
receives the message, and discards it because there's been no service registered for incoming messages yet - receiver: the
await
ed promise gets resolved, and the code registers services, but the message that has been sent is already lost
So the fix would be to move the message handling to happen at a later step ("8") instead of step 6.