--- webbrowser.py.orig 2013-01-02 21:46:38.000000000 +0400 +++ webbrowser.py 2016-07-16 13:34:49.746799021 +0300 @@ -294,6 +294,34 @@ Netscape = Mozilla +class NewFirefox(Mozilla): + """Launcher class for Mozilla Firefox browsers with versions >= 36.0""" + + remote_args = ['%action', '%s'] + remote_action = "" + remote_action_newwin = "-new-window" + remote_action_newtab = "-new-tab" + + +def _get_firefox_major_version(): + try: + firefox_proc = subprocess.Popen(['firefox', '--version'], + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) + firefox_proc.wait() + firefox_ver = firefox_proc.stdout.readline() + firefox_proc.stdout.read() + firefox_proc.stdout.close() + except OSError: + return -1 + + # firefox_ver is something like "Mozilla Firefox 40.0" + try: + return int(firefox_ver.split()[-1].split(b'.')[0]) + except: + return -1 + + class Galeon(UnixBrowser): """Launcher class for Galeon/Epiphany browsers.""" @@ -466,7 +494,11 @@ "iceweasel", "iceape", "seamonkey", "mozilla", "netscape"): if _iscommand(browser): - register(browser, None, Mozilla(browser)) + if browser == "firefox" and _get_firefox_major_version() >= 36: + klass = NewFirefox + else: + klass = Mozilla + register(browser, None, klass(browser)) # Konqueror/kfm, the KDE browser. if _iscommand("kfm"):