plasmo icon indicating copy to clipboard operation
plasmo copied to clipboard

[RFC] Progressive migration for messaging

Open samdoeswork opened this issue 8 months ago • 0 comments

How do you envision this feature/change to look/work like?

If you already have a chrome.runtime.onMessage.addListener, then messaging does not work.

This makes it unrealistically challenging to migrate an existing app - as every single command needs to be migrated simultaneously.

I think it would be quite strightforward to provide a migration-path:

  1. When sending events, add a "plasmoVersion: x" - or some other metadata which makes it clear this was a framework-sent event
  2. Provide a method to manually trigger the Plasmo event handler

This way if you need to run the listener yourself, you can check for the existence of plasmoVersion on the event & pass it through to Plasmo's handler.

I am proposing "plasmoVersion" as the key here because it's extremely unlikely to have collisions (unlike something like "from").

What is the purpose of this change/feature? Why?

To provide a gradual migration path with existing projects which already have listeners (or anyone who needs to have a listener for any other purpose).

(OPTIONAL) Example implementations

No response

(OPTIONAL) Contribution

  • [ ] I would like to contribute to this RFC via a PR

Verify canary release

  • [X] I verified that the issue exists in plasmo canary release

Code of Conduct

  • [X] I agree to follow this project's Code of Conduct
  • [X] I checked the current issues for duplicate problems.

samdoeswork avatar Nov 24 '23 00:11 samdoeswork