summaryrefslogtreecommitdiffstats
path: root/Lib/webbrowser.py
diff options
context:
space:
mode:
authorGregory P. Smith <greg@krypto.org>2014-08-27 16:34:38 (GMT)
committerGregory P. Smith <greg@krypto.org>2014-08-27 16:34:38 (GMT)
commitfeac3980ced0d80dc21982d87658876644c60e72 (patch)
treefd2a9e5b390400156487a63858ec09350f3fd169 /Lib/webbrowser.py
parent2ced87f3e6f61b777a5cc4368527e6fc8928464f (diff)
downloadcpython-feac3980ced0d80dc21982d87658876644c60e72.zip
cpython-feac3980ced0d80dc21982d87658876644c60e72.tar.gz
cpython-feac3980ced0d80dc21982d87658876644c60e72.tar.bz2
The webbrowser module now uses subprocess's start_new_session=True rather
than a potentially risky preexec_fn=os.setsid call.
Diffstat (limited to 'Lib/webbrowser.py')
-rwxr-xr-xLib/webbrowser.py15
1 files changed, 4 insertions, 11 deletions
diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py
index 9e47084..845f1d0 100755
--- a/Lib/webbrowser.py
+++ b/Lib/webbrowser.py
@@ -159,10 +159,8 @@ class BackgroundBrowser(GenericBrowser):
if sys.platform[:3] == 'win':
p = subprocess.Popen(cmdline)
else:
- setsid = getattr(os, 'setsid', None)
- if not setsid:
- setsid = getattr(os, 'setpgrp', None)
- p = subprocess.Popen(cmdline, close_fds=True, preexec_fn=setsid)
+ p = subprocess.Popen(cmdline, close_fds=True,
+ start_new_session=True)
return (p.poll() is None)
except OSError:
return False
@@ -321,11 +319,6 @@ class Konqueror(BaseBrowser):
action = "openURL"
devnull = subprocess.DEVNULL
- # if possible, put browser in separate process group, so
- # keyboard interrupts don't affect browser as well as Python
- setsid = getattr(os, 'setsid', None)
- if not setsid:
- setsid = getattr(os, 'setpgrp', None)
try:
p = subprocess.Popen(["kfmclient", action, url],
@@ -343,7 +336,7 @@ class Konqueror(BaseBrowser):
p = subprocess.Popen(["konqueror", "--silent", url],
close_fds=True, stdin=devnull,
stdout=devnull, stderr=devnull,
- preexec_fn=setsid)
+ start_new_session=True)
except OSError:
# fall through to next variant
pass
@@ -356,7 +349,7 @@ class Konqueror(BaseBrowser):
p = subprocess.Popen(["kfm", "-d", url],
close_fds=True, stdin=devnull,
stdout=devnull, stderr=devnull,
- preexec_fn=setsid)
+ start_new_session=True)
except OSError:
return False
else: