https://github.com/python/cpython/commit/bf0d8bb30197a10867e48814a1b0595d50e02695
commit: bf0d8bb30197a10867e48814a1b0595d50e02695
branch: 3.13
author: Miss Islington (bot) <[email protected]>
committer: Yhg1s <[email protected]>
date: 2024-09-02T13:18:27+02:00
summary:

[3.13] gh-108172: do not override OS preferred browser if it is a super-string 
of a known browser (GH-113011) (#123527)

gh-108172: do not override OS preferred browser if it is a super-string of a 
known browser (GH-113011)

When checking if the registering browser is the "OS preferred browser", do not 
use a substring search - that makes no sense: one can have a preferred browser 
that looks like a super-string of a known browser, e.g. "firefox-nightly" vs 
"firefox".

https://github.com/python/cpython/issues/108172 explains in more detail, and 
lays out a potential better future enhancement for this case of just using 
xdg-open.  We'll go with this for now.

---------

(cherry picked from commit 10bf615bab9f832971a098f0a42b0d617aea6993)

Co-authored-by: Oded Arbel <[email protected]>
Co-authored-by: Alex Waygood <[email protected]>

files:
A Misc/NEWS.d/next/Library/2023-12-12-15-19-58.gh-issue-108172.KyDPuG.rst
M Lib/webbrowser.py

diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py
index 3101afad362a37..2f9555ad60dde4 100755
--- a/Lib/webbrowser.py
+++ b/Lib/webbrowser.py
@@ -32,7 +32,7 @@ def register(name, klass, instance=None, *, preferred=False):
         # Preferred browsers go to the front of the list.
         # Need to match to the default browser returned by xdg-settings, which
         # may be of the form e.g. "firefox.desktop".
-        if preferred or (_os_preferred_browser and name in 
_os_preferred_browser):
+        if preferred or (_os_preferred_browser and f'{name}.desktop' == 
_os_preferred_browser):
             _tryorder.insert(0, name)
         else:
             _tryorder.append(name)
diff --git 
a/Misc/NEWS.d/next/Library/2023-12-12-15-19-58.gh-issue-108172.KyDPuG.rst 
b/Misc/NEWS.d/next/Library/2023-12-12-15-19-58.gh-issue-108172.KyDPuG.rst
new file mode 100644
index 00000000000000..5c6b9cd3f81a21
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2023-12-12-15-19-58.gh-issue-108172.KyDPuG.rst
@@ -0,0 +1 @@
+``webbrowser`` honors OS preferred browser on Linux when its desktop entry 
name contains the text of a known browser name.

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]

Reply via email to