fix(browser-core): explain overlay-hidden webviews - #990
Merged
Conversation
Pre-commit hook ran. Total eslint: 0, total circular: 0
Harry19081
marked this pull request as ready for review
August 26, 2026 08:15
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Opening a menu or dialog over an active native browser can park the webview offscreen or place it behind the React layer. The visible BrowserCore pane then appears blank with no explanation because overlay blocking and native webview ownership are not projected into the browser chrome.
Solution
Render a non-interactive placeholder while a nonblank, visible BrowserCore pane has its native webview hidden by overlay state. The condition uses the overlay-only blocking atom plus the active overlay count for the macOS layering path, while excluding blank tabs, host-hidden panes, and the hidden owner host. Add localized title/body copy for every supported locale and regression coverage for the blocking, macOS, shared-runtime, and exclusion paths.
Potential risks
The notice is driven by global overlay state, so a future overlay that does not cover the browser could surface the message more broadly than intended. The exclusions and platform paths are unit-tested, and the change does not alter persisted data, public APIs, IPC, or wire formats. Native Tauri visual behavior remains unverified, so this PR is intentionally a draft.
Verification
git diff --check— passedpnpm run lint— passed with zero warningspnpm run typecheck— passedpnpm run check:circular— passed; no circular dependencies across 6,566 modulespnpm run test— passed; 1,229 files and 9,773 tests, including all 10 BrowserCore testsUI evidence
No screenshot was captured because running and inspecting the desktop UI would require explicit desktop-control authorization. The PR remains draft until the native overlay paths and relevant themes are checked in a running Tauri build.