From: Serhiy Storchaka Date: Sun, 30 Oct 2016 17:16:33 +0000 (+0200) Subject: Issue #23262: The webbrowser module now supports Firefox 36+ and derived X-Git-Tag: v3.6.0b3~13^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c9b750d249136b88125c28cd139c4bc694c18003;p=python Issue #23262: The webbrowser module now supports Firefox 36+ and derived browsers. Based on patch by Oleg Broytman. --- diff --git a/Lib/test/test_webbrowser.py b/Lib/test/test_webbrowser.py index c3292c493d..e46b6fb089 100644 --- a/Lib/test/test_webbrowser.py +++ b/Lib/test/test_webbrowser.py @@ -93,6 +93,31 @@ class MozillaCommandTest(CommandTestMixin, unittest.TestCase): browser_class = webbrowser.Mozilla + def test_open(self): + self._test('open', + options=[], + arguments=[URL]) + + def test_open_with_autoraise_false(self): + self._test('open', kw=dict(autoraise=False), + options=[], + arguments=[URL]) + + def test_open_new(self): + self._test('open_new', + options=[], + arguments=['-new-window', URL]) + + def test_open_new_tab(self): + self._test('open_new_tab', + options=[], + arguments=['-new-tab', URL]) + + +class NetscapeCommandTest(CommandTestMixin, unittest.TestCase): + + browser_class = webbrowser.Netscape + def test_open(self): self._test('open', options=['-raise', '-remote'], diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py index 0292c3aa7a..6f43b7f126 100755 --- a/Lib/webbrowser.py +++ b/Lib/webbrowser.py @@ -245,7 +245,17 @@ class UnixBrowser(BaseBrowser): class Mozilla(UnixBrowser): - """Launcher class for Mozilla/Netscape browsers.""" + """Launcher class for Mozilla browsers.""" + + remote_args = ['%action', '%s'] + remote_action = "" + remote_action_newwin = "-new-window" + remote_action_newtab = "-new-tab" + background = True + + +class Netscape(UnixBrowser): + """Launcher class for Netscape browser.""" raise_opts = ["-noraise", "-raise"] remote_args = ['-remote', 'openURL(%s%action)'] @@ -254,8 +264,6 @@ class Mozilla(UnixBrowser): remote_action_newtab = ",new-tab" background = True -Netscape = Mozilla - class Galeon(UnixBrowser): """Launcher class for Galeon/Epiphany browsers.""" @@ -430,14 +438,18 @@ def register_X_browsers(): if shutil.which("x-www-browser"): register("x-www-browser", None, BackgroundBrowser("x-www-browser")) - # The Mozilla/Netscape browsers - for browser in ("mozilla-firefox", "firefox", - "mozilla-firebird", "firebird", - "iceweasel", "iceape", - "seamonkey", "mozilla", "netscape"): + # The Mozilla browsers + for browser in ("firefox", "iceweasel", "iceape", "seamonkey"): if shutil.which(browser): register(browser, None, Mozilla(browser)) + # The Netscape and old Mozilla browsers + for browser in ("mozilla-firefox", + "mozilla-firebird", "firebird", + "mozilla", "netscape"): + if shutil.which(browser): + register(browser, None, Netscape(browser)) + # Konqueror/kfm, the KDE browser. if shutil.which("kfm"): register("kfm", Konqueror, Konqueror("kfm")) diff --git a/Misc/NEWS b/Misc/NEWS index 4d84e7ed1e..f7226fddf0 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -113,6 +113,9 @@ Core and Builtins Library ------- +- Issue #23262: The webbrowser module now supports Firefox 36+ and derived + browsers. Based on patch by Oleg Broytman. + - Issue #27939: Fixed bugs in tkinter.ttk.LabeledScale and tkinter.Scale caused by representing the scale as float value internally in Tk. tkinter.IntVar now works if float value is set to underlying Tk variable.