Skip to content

Commit d8c08e4

Browse files
committed
pythongh-105983: added incognito flag for edge browser
1 parent 9580689 commit d8c08e4

1 file changed

Lines changed: 31 additions & 28 deletions

File tree

‎Lib/webbrowser.py‎

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ class UnixBrowser(BaseBrowser):
249249
remote_action = None
250250
remote_action_newwin = None
251251
remote_action_newtab = None
252-
remote_action_incognito = ""
252+
remote_action_incognito = None
253253

254254
def _invoke(self, args, remote, autoraise, url=None):
255255
raise_opt = []
@@ -288,20 +288,20 @@ def _invoke(self, args, remote, autoraise, url=None):
288288

289289
def open(self, url, new=0, autoraise=True):
290290
sys.audit("webbrowser.open", url)
291-
if new == 0:
292-
action = self.remote_action
293-
elif new == 1:
294-
action = self.remote_action_newwin
295-
elif new == 2:
296-
if self.remote_action_newtab is None:
291+
match new:
292+
case 0:
293+
action = self.remote_action
294+
case 1:
297295
action = self.remote_action_newwin
298-
else:
299-
action = self.remote_action_newtab
300-
elif new == 3:
301-
action = self.remote_action_incognito
302-
else:
303-
raise Error("Bad 'new' parameter to open(); " +
304-
f"expected 0, 1, 2, or 3, got {new}")
296+
case 2:
297+
if (action := self.remote_action_newtab) is None:
298+
action = self.remote_action_newwin
299+
case 3:
300+
if (action := self.remote_action_incognito) is None:
301+
action = self.remote_action_newwin
302+
case _:
303+
raise Error("Bad 'new' parameter to open(); " +
304+
f"expected 0, 1, 2, or 3, got {new}")
305305

306306
args = [arg.replace("%s", url).replace("%action", action)
307307
for arg in self.remote_args]
@@ -333,7 +333,7 @@ class Epiphany(UnixBrowser):
333333
remote_args = ['%action', '%s']
334334
remote_action = "-n"
335335
remote_action_newwin = "-w"
336-
remote_action_incognito = "--incognito-mode"
336+
remote_action_incognito = "-i"
337337
background = True
338338

339339

@@ -357,6 +357,7 @@ class Opera(UnixBrowser):
357357
remote_action = ""
358358
remote_action_newwin = "--new-window"
359359
remote_action_newtab = ""
360+
remote_action_incognito = "--private"
360361
background = True
361362

362363

@@ -367,6 +368,7 @@ class Elinks(UnixBrowser):
367368
remote_action = ""
368369
remote_action_newwin = ",new-window"
369370
remote_action_newtab = ",new-tab"
371+
remote_action_incognito = ""
370372
background = False
371373

372374
# elinks doesn't like its stdout to be redirected -
@@ -434,6 +436,7 @@ class Edge(UnixBrowser):
434436
remote_action = ""
435437
remote_action_newwin = "--new-window"
436438
remote_action_newtab = ""
439+
remote_action_incognito = "--inprivate"
437440
background = True
438441

439442

@@ -641,6 +644,7 @@ def main():
641644
usage = """Usage: %s [-l] | [-b browser] [-i | -n | -t | -h] url
642645
-n: open new window
643646
-t: open new tab
647+
-i: open new incognito / private tab
644648
-b <browser>: uses <browser> to open
645649
-h, --help: show help""" % sys.argv[0]
646650
try:
@@ -651,19 +655,18 @@ def main():
651655
sys.exit(1)
652656
new_win = 0
653657
for o, a in opts:
654-
if o == '-n': new_win = 1
655-
elif o == '-t': new_win = 2
656-
elif o == "-i":
657-
new_win = 3
658-
elif o == "-b":
659-
browser = a
660-
elif o == "-l":
661-
for nam in _get_supported_browsers():
662-
print(nam)
663-
sys.exit()
664-
elif o == '-h' or o == '--help':
665-
print(usage, file=sys.stderr)
666-
sys.exit()
658+
match o:
659+
case '-n': new_win = 1
660+
case '-t': new_win = 2
661+
case '-i': new_win = 3
662+
case '-b': browser = a
663+
case '-l':
664+
for nam in _get_supported_browsers():
665+
print(nam)
666+
sys.exit()
667+
case '-h' | '--help':
668+
print(usage, file=sys.stderr)
669+
sys.exit()
667670
if len(args) != 1:
668671
print(usage, file=sys.stderr)
669672
sys.exit(1)

0 commit comments

Comments
 (0)