By using NativePromise instead of callback, it makes it easier to control which thread the completion task should run on once the sub-task has completed. As it is today, all of MSE can only run on the main thread.
subtask of 264134
<rdar://problem/118426574>
Pull request: https://github.com/WebKit/WebKit/pull/20513
Committed 270788@main (f15fc780c060): <https://commits.webkit.org/270788@main> Reviewed commits have been landed. Closing PR #20513 and removing active labels.