From 4ef1c7e7efbd8827b9f97c73d0eb9a31604e83f2 Mon Sep 17 00:00:00 2001 From: Ronald Oussoren Date: Sun, 2 May 2010 09:48:21 +0000 Subject: [PATCH] For for issue #7192: with this patch webbrowser.get("firefox") works on OSX --- Lib/webbrowser.py | 28 +++++++++++++++++++++++++++- Misc/NEWS | 3 +++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py index 01922f41723..45e0b54ac26 100644 --- a/Lib/webbrowser.py +++ b/Lib/webbrowser.py @@ -599,9 +599,35 @@ if sys.platform == 'darwin': rc = osapipe.close() return not rc + class MacOSXOSAScript(BaseBrowser): + def __init__(self, name): + self._name = name + + def open(self, url, new=0, autoraise=True): + if self._name == 'default': + script = 'open location "%s"' % url.replace('"', '%22') # opens in default browser + else: + script = ''' + tell application "%s" + activate + open location "%s" + end + '''%(self._name, url.replace('"', '%22')) + + osapipe = os.popen("osascript", "w") + if osapipe is None: + return False + + osapipe.write(script) + rc = osapipe.close() + return not rc + + # Don't clear _tryorder or _browsers since OS X can use above Unix support # (but we prefer using the OS X specific stuff) - register("MacOSX", None, MacOSX('default'), -1) + register("MacOSX", None, MacOSXOSAScript('default'), -1) + register("safari", None, MacOSXOSAScript('safari'), -1) + register("firefox", None, MacOSXOSAScript('firefox'), -1) # diff --git a/Misc/NEWS b/Misc/NEWS index 355654b3ef0..c75f95c90b8 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -31,6 +31,9 @@ Core and Builtins Library ------- +- Issue #7192: webbrowser.get("firefox") now wors on Mac OS X, as does + webbrowser.get("safari"). + - Issue #8577: distutils.sysconfig.get_python_inc() now makes a difference between the build dir and the source dir when looking for "python.h" or "Include".