--- webbrowser.py.orig 2016-06-26 00:52:31.000000000 +0300 +++ webbrowser.py 2016-07-16 13:12:33.841261288 +0300 @@ -257,6 +257,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.""" @@ -436,7 +464,11 @@ "iceweasel", "iceape", "seamonkey", "mozilla", "netscape"): if shutil.which(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 shutil.which("kfm"):