Wait, are you saying the default value in `_synthesize()` should be `False`? Since `_synthesize()` appears to only be used in situations where the browser is user-supplied, default False seems counterintuitive.
@serhiy-storchaka Thanks for the quick review. Actually, `register` is called 28 times in `webbrowser.py`, mostly with an implicit `preferred=False`, so changing the default value will be quite impactful. Of course, it is arguable that a default value of True may be more intuitive when exposed in the public API, but here comes another problem: since `webbrowser.register` is public API, is changing the default value of a kwarg allowed in a patch release? Or should I not worry about backporting and let committers figure out that part?
I'll look into adding/updating tests a bit later.
bpo-35308: Fix regression where BROWSER env var is not respected
================================================================
<!-- issue-number: [bpo-35308](https://bugs.python.org/issue35308) -->
https://bugs.python.org/issue35308
<!-- /issue-number -->