Skip to content

installer: add opt-in Chrome launcher setup and recovery - #457

Closed
AoTofu wants to merge 1 commit into
elFarto:masterfrom
AoTofu:upstream/chrome-launcher-recovery
Closed

AoTofu wants to merge 1 commit into
elFarto:masterfrom
AoTofu:upstream/chrome-launcher-recovery

Conversation

@AoTofu

@AoTofu AoTofu commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

Native Chrome/Chromium users currently have to maintain desktop overrides for the documented VA-API settings themselves. If an override calls a custom browser wrapper that stops working after a Chrome update, there is also no installer command to return that entry to the packaged browser while retaining VA-API configuration.

This adds two explicit, launcher-only commands:

./install.sh --configure-chrome-launcher google-chrome.desktop
./install.sh --restore-chrome-launcher google-chrome.desktop
  • Configuration creates a user override from the matching system desktop template and refuses to overwrite an existing entry. Restoration backs up the previous contents to a unique file before replacing them.
  • Applies the existing README's decode flags, LIBVA_DRIVER_NAME=nvidia, the driver directory, and NVD_BACKEND=direct to the main command and desktop actions. NVD_DRIVER_DIR can select a local build.
  • Preserves localized template names, incognito actions and desktop field codes; handles both desktop-entry escaping layers. Disables D-Bus activation in the generated entry so its Exec environment takes effect.
  • Supports directly launched native browsers. Missing/unsupported templates and backup failures leave the current entry unchanged; Flatpak, Snap and wrapper templates are rejected.
  • Ordinary installation behavior is unchanged. These optional commands use Python 3's standard library and exit before build/install operations.

The branch is based directly on upstream master (982ba1c). It changes five installer/documentation/test/CI files, with no driver-source changes or dependency on fork-specific export-layout settings.

Validation:

  • bash -n install.sh and git diff --check passed.
  • All 11 Python tests passed locally, including backup/write failure cases, isolated XDG directories, command-mode isolation, desktop-file-validate, and actual GIO argument delivery with spaces/quotes/backslashes/dollar signs/percent signs in paths. The suite also passed with display/session-bus environment variables removed. GIO and desktop-file-utils checks skip explicitly when those tools are unavailable.
  • Added a separate Ubuntu CI job for the launcher tests.
  • Built upstream with Meson/GCC and launched Chrome 153.0.8010.36 through the generated command, using an isolated profile and that upstream library. On Fedora 44 / Wayland / RTX 5080 / NVIDIA 610.57.04, CDP reported VaapiVideoDecoder, process mappings confirmed the selected library, and a three-second VP9 1080p playback produced 90 frames with zero drops.
  • The smoke harness also reproduced an existing seek-frame mismatch (6/10 seeks); this PR addresses launcher configuration, and does not claim to fix decoder/image correctness.

@AoTofu AoTofu closed this Sep 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant