I've reworked it to make `setDefaultBrowserUserChoice()` async using Subprocess.jsm, it's implemented now in ShellService.jsm instead of directly on nsWindowsShellService. It still does not fall back on its own. `ShellService.setDefaultBrowser()` (which is how all existing code calls `setDefaultBrowser()`, now overriddes `nsIShellService.setDefaultBrowser()`, falling back if `setDefaultBrowserUserChoice()` rejects. `ShellService.setDefaultBrowser()` is synchronous, maintaining the status quo.
Bug 1703578 Comment 4 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
I've reworked it to make `setDefaultBrowserUserChoice()` async using Subprocess.jsm, it's implemented now in ShellService.jsm instead of directly on nsWindowsShellService. It still does not fall back on its own. `ShellService.setDefaultBrowser()` (which is how all existing code calls `setDefaultBrowser()`), now overriddes `nsIShellService.setDefaultBrowser()`, falling back if `setDefaultBrowserUserChoice()` rejects. `ShellService.setDefaultBrowser()` is synchronous, maintaining the status quo.