Skip to content

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?