Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:zhmars:arch
chromium122
_wrapper.py
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _wrapper.py of Package chromium122
#!/usr/bin/python # -*- coding: utf-8 -*- # chrome/installer/linux/common/wrapper # chrome/tools/build/linux/chrome-wrapper # grep -v -E '^#|^$' ~/.config/chromium-flags.conf | tr '\n' ' ' # https://salsa.debian.org/chromium-team/chromium/-/blob/master/debian/scripts/chromium # https://wiki.gentoo.org/wiki/Chromium # https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files # https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-launcher-r7.sh # https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium.default # https://github.com/foutrelis/chromium-launcher # https://aur.archlinux.org/cgit/aur.git/tree/?h=google-chrome # https://aur.archlinux.org/cgit/aur.git/tree/?h=brave-bin # https://aur.archlinux.org/cgit/aur.git/tree/?h=chromium-snapshot-bin # https://src.fedoraproject.org/rpms/chromium/tree/rawhide # https://src.fedoraproject.org/rpms/chromium/blob/rawhide/f/chromium-browser.sh # https://build.opensuse.org/package/show/network:chromium/chromium # https://build.opensuse.org/package/view_file/network:chromium/chromium/chrome-wrapper?expand=1 # https://build.opensuse.org/package/view_file/network:chromium/chromium/INSTALL.sh?expand=1 import os import sys import shlex FLAGS = '' FLAGS_FILE = '' APP_PATH = '' APP_DESKTOP = '' ENVIRON = True CHANNEL = 'stable' VENDOR = 'Arch Linux' # APP_PATH = '/usr/lib/chromium/chromium' # APP_PATH = '/usr/lib/opera/opera' # # ENVIRON = False # APP_PATH = '/opt/vivaldi/vivaldi' # FLAGS_FILE = 'vivaldi-stable.conf' # # ENVIRON = False # APP_PATH = '/usr/lib/brave-bin/brave-browser' # APP_DESKTOP = 'brave-browser.desktop' # FLAGS_FILE = 'brave-flags.conf' # # ENVIRON = False # APP_PATH = '/opt/microsoft/msedge/microsoft-edge' # APP_DESKTOP = 'microsoft-edge.desktop' # FLAGS_FILE = 'microsoft-edge-stable-flags.conf' def display_flags(flags): print() if not flags: print('no flags found') return print('found flags:') for i in flags: print(f'\t{i}') def set_environ(app_name): global APP_DESKTOP os.environ['CHROME_WRAPPER'] = sys.argv[0] # desktop-entry-spec, see https://specifications.freedesktop.org/ if not APP_DESKTOP: APP_DESKTOP = f'{app_name}.desktop' if os.environ['XDG_DATA_DIRS']: for i in os.environ['XDG_DATA_DIRS'].split(os.pathsep): if not os.path.isfile(os.path.join(i, 'applications', APP_DESKTOP)): continue os.environ['CHROME_DESKTOP'] = APP_DESKTOP break # docs/user_data_dir.md # chrome/common/channel_info_posix.cc # chrome/tools/build/linux/chrome-wrapper # stable extended beta unstable # brave # build/linux/BUILD.gn # build/linux/channels.gni # stable beta dev/unstable nightly # Custom version string for this release. This can be used to add a downstream # vendor string or release channel information. # os.environ['CHROME_VERSION_EXTRA'] = CHANNEL os.environ['CHROME_VERSION_EXTRA'] = VENDOR os.environ['GNOME_DISABLE_CRASH_DIALOG'] = 'SET_BY_GOOGLE_CHROME' def check_app(debug=False): global APP_PATH, FLAGS_FILE # app_name = os.path.splitext(os.path.basename(__file__))[0] app_name = os.path.basename(APP_PATH) if APP_PATH \ else os.path.splitext(os.path.basename(__file__))[0] if not APP_PATH: APP_PATH = os.path.join(os.sep, 'usr', 'lib', app_name, app_name) if ENVIRON: set_environ(app_name) if not FLAGS_FILE: FLAGS_FILE = f'{app_name}-flags.conf' system_flags_files = ( os.path.join(os.sep, 'etc', app_name, FLAGS_FILE), os.path.join(os.sep, 'etc', FLAGS_FILE)) user_config_dir = os.environ.get('XDG_CONFIG_HOME') \ if os.environ.get('XDG_CONFIG_HOME') else os.environ.get('HOME') user_flags_files = ( os.path.join(user_config_dir, '.config', app_name, FLAGS_FILE), os.path.join(user_config_dir, '.config', FLAGS_FILE)) switch_flags = [] feature_flags = {} for file in (*system_flags_files, *user_flags_files): if not os.path.isfile(file): continue with open(file, 'r') as f: for line in f: line = line.strip() if line.startswith('#') or not line: continue for flag in shlex.split(line): if flag.startswith('--enable-features=') or \ flag.startswith('--disable-features='): key, value = flag.split('=', 1) if not feature_flags.get(key): feature_flags[key] = [value] else: feature_flags[key].append(value) else: switch_flags.append(flag) flags = shlex.split(FLAGS) + switch_flags[:] for key in feature_flags: flags.append(f'{key}={",".join(list(dict.fromkeys(feature_flags[key])))}') if debug: if not os.path.isfile(APP_PATH) and app_name != '_wrapper': print(f'{APP_PATH}: No such file or directory', file=sys.stderr) sys.exit(1) print(f'{APP_PATH}{os.linesep}') if ENVIRON: print('environment variables:') for i in [ 'CHROME_WRAPPER', 'CHROME_DESKTOP', 'CHROME_VERSION_EXTRA', 'GNOME_DISABLE_CRASH_DIALOG']: if not os.environ.get(i): continue print(f'\t{i}="{os.environ[i]}"') print() print('flags files:') for i in (*system_flags_files, *user_flags_files): print(f'\t{i}{" [not found]" if not os.path.isfile(i) else ""}') return flags def launch_app(flags): try: os.execv(APP_PATH, [sys.argv[0]] + flags + sys.argv[1:]) except OSError as err: print(f'{APP_PATH}: {err.args[1]}', file=sys.stderr) def main(): debug = True if '--debug' in sys.argv[1:] else False flags = check_app(debug) display_flags(flags) if debug else launch_app(flags) if __name__ == '__main__': try: main() except KeyboardInterrupt: sys.exit(130)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor