ext/resources: use standardised frontend messaging #13
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR starts to standardise the messaging format between the different JS files, with the goal of being able to validate and type messages from cradle to grave, from JS to Swift and back again.
Since each component has its own communication method and security policies, this PR introduces a
Messenger
object that is defined in terms of the component it is in:This Messenger abstraction knows for a given
(source, destination)
pair how to send messages, and over which pipeline (eitherbrowser.runtime
orbrowser.tabs
orwindow.sendMessage
).Currently, it's not responsible for listening to these messages, though that is a natural next step.
It also:
Explicitly not included in this PR:
There are probably more things missing, or code that's unclear here. The PR was starting to get big, so I figured it'd be better to merge earlier. Feel free to pop any questions in here / Twist and I'll get back to you soon!