Migrate extensions activation to a new model described in RFC 155
Created by: twop
See this WIP PR #10651 to overview API complexity RFC: https://docs.google.com/document/d/1ikrUNVe3YVbR-JpegxhjrFdmRkTGzTLcOMkKHnOyjuE/edit#
type State {
// ExtExtensions
extensionDeactivate: Map<string, () => void | Promise<void>>
}
// Main -> Worker
export interface FromMainThread {
// ExtExtensions
activateExtension: (extensionID: string, bundleURL: string) => Promise<void>
deactivateExtension: (extensionID: string) => Promise<void>
}
Challenges:
- Should we move activation logic to the worker too? We believe that the answer is yes but I don't have a good understanding yet what are the implications of doing this.
- it is probably going to be interconnected with settings area.
- how to test this? should we have any e2e/integrations tests as a part of this effort?