This misses the final, most important part of actually creating a
service worker object and sending the script over to it in a WebWorker
process.
(cherry picked from commit 85541f1e763f2db63a235f57a29026331138a29e)
There was no need to use FlyString for error messages, and it just
caused a bunch of churn since these strings typically only existed
during the lifetime of the error.
(cherry picked from commit 175f3febb8037a440d4ead7347d3266ee3d345e1;
minorly amended to fix conflict in WebSocket.cpp due to serenity
not having the adapter class removal in LadybirdBrowser/ladybird#1671)
This approach will need some rework to be properly handled at the user
agent level instead of per renderer process, but it's a start.
(cherry picked from commit 7faebb2702a2a19fc401fde1856a0d90861d2904)
Now we can register jobs and they will be executed on the event loop
"later". This doesn't feel like the right place to execute them, but
the spec needs some updates in this regard anyway.
(cherry picked from commit 29416befe640eae7bf44b72e3f4ad42a1e397701)