Description
#437 is the latest instance of generic design of the abort controller. (#434 is a previous iteration that also has discussion.)
whatwg/fetch#523 is a specific implementation of the abort controller for the Fetch API.
We need to decide if the generic abort signal needs to be serializable. @domenic argued in favor. Such a design would require a private MessageChannel. We might have to abstract MessageChannel or create some technical debt for someone to cleanup later.
For the Fetch API we will need to expose a signal to the service worker that signals "abort" whenever the "main thread" signal signals "abort" or the "main thread" fetch that caused the service worker to dispatch a fetch event is terminated with reason "abort" (I don't think we want to trigger that signal in the service worker for other reasons).
I believe these are the main outstanding things to sort through. Apologies to everyone about the various repositories this ends up involving. Open to suggestions on how to organize things better.