Skip to content

Add fullscreen compatibility mode - #125

Draft
PathGao wants to merge 1 commit into
mainfrom
feat/fullscreen-compatibility-mode
Draft

Add fullscreen compatibility mode#125
PathGao wants to merge 1 commit into
mainfrom
feat/fullscreen-compatibility-mode

Conversation

@PathGao

@PathGao PathGao commented Aug 31, 2026

Copy link
Copy Markdown
Owner

Summary

Adds an Advanced setting for users who need native macOS / WebKit fullscreen for YouTube and Bilibili. The setting is applied on the next launch because WebKit chooses its fullscreen host while creating the web view.

  • Wallpaper mode remains the default: YouTube gets a runtime-only fs=0 and keeps Nifro’s wallpaper presentation.
  • Compatibility mode starts as a regular app, enables WKPreferences.isElementFullscreenEnabled, and removes every stale fs parameter from the runtime YouTube player URL.
  • YouTube is loaded directly with Nifro’s Referer header, rather than through an app-built iframe, so element fullscreen is requested by the actual WKWebView document.
  • Saved website URLs are not mutated; presentation policy is derived at load time.

Scope

Does not include the macOS Control Center menu-bar permission repair from #124 or any machine-local Control Center state.

Verification

  • swift test — 219 tests / 49 suites passed
  • xcodebuild -project Nifro.xcodeproj -scheme Nifro -configuration Release -derivedDataPath .build/pr-derived-2 CODE_SIGNING_ALLOWED=NO build
  • jq empty Nifro/Localizable.xcstrings
  • git diff --check

@PathGao
PathGao marked this pull request as draft September 1, 2026 02:43
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