]> granicus.if.org Git - python/commitdiff
Issue #23262: The webbrowser module now supports Firefox 36+ and derived
authorSerhiy Storchaka <storchaka@gmail.com>
Sun, 30 Oct 2016 17:16:33 +0000 (19:16 +0200)
committerSerhiy Storchaka <storchaka@gmail.com>
Sun, 30 Oct 2016 17:16:33 +0000 (19:16 +0200)
browsers.  Based on patch by Oleg Broytman.

Lib/test/test_webbrowser.py
Lib/webbrowser.py
Misc/NEWS

index c3292c493d16095c348307187464e2163e98cc98..e46b6fb08938664d6ff2c3a326346cd4e5e2d12e 100644 (file)
@@ -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'],
index 0292c3aa7ab7f2a2d223adbfee90a0606fd06d67..6f43b7f1265d1abdbb213b9e634bfa6d55122032 100755 (executable)
@@ -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"))
index 4d84e7ed1e05942e0397c43e4822754a66f34107..f7226fddf07add14a20d70064954a52ce2f35a52 100644 (file)
--- 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.