MCPcopy Index your code
hub / github.com/python/cpython / register_standard_browsers

Function register_standard_browsers

Lib/webbrowser.py:489–590  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

487
488
489def register_standard_browsers():
490 global _tryorder
491 _tryorder = []
492
493 if sys.platform == 'darwin':
494 register("MacOSX", None, MacOSXOSAScript('default'))
495 register("chrome", None, MacOSXOSAScript('google chrome'))
496 register("firefox", None, MacOSXOSAScript('firefox'))
497 register("safari", None, MacOSXOSAScript('safari'))
498 # macOS can use below Unix support (but we prefer using the macOS
499 # specific stuff)
500
501 if sys.platform == "ios":
502 register("iosbrowser", None, IOSBrowser(), preferred=True)
503
504 if sys.platform == "serenityos":
505 # SerenityOS webbrowser, simply called "Browser".
506 register("Browser", None, BackgroundBrowser("Browser"))
507
508 if sys.platform[:3] == "win":
509 # First try to use the default Windows browser
510 register("windows-default", WindowsDefault)
511
512 # Detect some common Windows browsers, fallback to Microsoft Edge
513 # location in 64-bit Windows
514 edge64 = os.path.join(os.environ.get("PROGRAMFILES(x86)", "C:\\Program Files (x86)"),
515 "Microsoft\\Edge\\Application\\msedge.exe")
516 # location in 32-bit Windows
517 edge32 = os.path.join(os.environ.get("PROGRAMFILES", "C:\\Program Files"),
518 "Microsoft\\Edge\\Application\\msedge.exe")
519 for browser in ("firefox", "seamonkey", "mozilla", "chrome",
520 "opera", edge64, edge32):
521 if shutil.which(browser):
522 register(browser, None, BackgroundBrowser(browser))
523 if shutil.which("MicrosoftEdge.exe"):
524 register("microsoft-edge", None, Edge("MicrosoftEdge.exe"))
525 else:
526 # Prefer X browsers if present
527 #
528 # NOTE: Do not check for X11 browser on macOS,
529 # XQuartz installation sets a DISPLAY environment variable and will
530 # autostart when someone tries to access the display. Mac users in
531 # general don't need an X11 browser.
532 if sys.platform != "darwin" and (os.environ.get("DISPLAY") or os.environ.get("WAYLAND_DISPLAY")):
533 try:
534 cmd = "xdg-settings get default-web-browser".split()
535 raw_result = subprocess.check_output(cmd, stderr=subprocess.DEVNULL)
536 result = raw_result.decode().strip()
537 except (FileNotFoundError, subprocess.CalledProcessError,
538 PermissionError, NotADirectoryError):
539 pass
540 else:
541 global _os_preferred_browser
542 _os_preferred_browser = result
543
544 register_X_browsers()
545
546 # Also try console browsers

Callers 3

registerFunction · 0.85
getFunction · 0.85
openFunction · 0.85

Calls 15

MacOSXOSAScriptClass · 0.85
IOSBrowserClass · 0.85
BackgroundBrowserClass · 0.85
EdgeClass · 0.85
register_X_browsersFunction · 0.85
GenericBrowserClass · 0.85
ElinksClass · 0.85
_synthesizeFunction · 0.85
registerFunction · 0.70
joinMethod · 0.45
getMethod · 0.45
splitMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…