Skip to content

Instantly share code, notes, and snippets.

@chgeuer
Created August 25, 2026 07:49
Show Gist options
  • Select an option

  • Save chgeuer/d455f2a45539afdf2f93bf114a13865a to your computer and use it in GitHub Desktop.

Select an option

Save chgeuer/d455f2a45539afdf2f93bf114a13865a to your computer and use it in GitHub Desktop.
Bitwarden/Chromium extension rendering cut off fix

Chromium Bitwarden Popup Rendering Problem

Symptom

The Bitwarden Chromium extension popup rendered with incorrect geometry:

  • Content was clipped on the left.
  • A large unused strip appeared on the right.
  • Navigation and controls were partially outside the visible area.
  • Changing Chromium between XWayland and native Wayland changed the visual symptom but did not solve the problem.

Normal page zoom in Chromium did not cause the problem. After the fix, web pages can still be zoomed independently while the Bitwarden popup remains correct.

Diagnosis

Chromium stores zoom levels per origin. Its profile preferences contained non-default zoom entries for extension origins:

{
  "bitwarden": {
    "zoom_level": 1.2239010857415449
  },
  "extensions": {
    "zoom_level": 2.223901085741545
  }
}

Chromium converts these internal levels to zoom multipliers using 1.2 ^ zoom_level. The Bitwarden value therefore represented exactly:

1.2 ^ 1.2239010857415449 = 1.25

Bitwarden had a saved zoom level of 125%, while the generic extension origin had another non-default zoom level. The 125% value matched the observed geometry: Chromium allocated a 600-pixel popup surface, but the extension rendered as though only 480 logical pixels were available (600 / 1.25 = 480).

The relevant Bitwarden extension ID was:

nngceckbapebfimnlniiiahkandclblb

The values were stored in:

~/.config/chromium/Default/Preferences

under:

partition.per_host_zoom_levels.x.nngceckbapebfimnlniiiahkandclblb
partition.per_host_zoom_levels.x.extensions

Pressing Ctrl+0 while attempting to focus the popup did not persist a reset, so the profile preferences had to be changed while Chromium was stopped.

Applied Fix

  1. Chromium was closed completely so it could not overwrite its profile preferences during shutdown.

  2. The preferences file was backed up as:

    ~/.config/chromium/Default/Preferences.bak-bitwarden-zoom-20260825-092538
    
  3. The Bitwarden-specific and generic extension zoom entries were deleted:

    del(
      .partition.per_host_zoom_levels.x.nngceckbapebfimnlniiiahkandclblb,
      .partition.per_host_zoom_levels.x.extensions
    )
  4. Chromium was relaunched with its original X11 launcher configuration.

Chromium then recreated the extension popup at its default 100% zoom, and the Bitwarden UI rendered correctly. Regular browser-page zoom remains independent and continues to work normally.

Reusable Recovery Procedure

Close Chromium completely, back up the profile preferences, remove only the affected extension zoom entries with jq, and relaunch Chromium:

pref="$HOME/.config/chromium/Default/Preferences"
cp "$pref" "$pref.bak-$(date +%Y%m%d-%H%M%S)"

tmp=$(mktemp "$HOME/.config/chromium/Default/Preferences.XXXXXX")
jq 'del(
  .partition.per_host_zoom_levels.x.nngceckbapebfimnlniiiahkandclblb,
  .partition.per_host_zoom_levels.x.extensions
)' "$pref" > "$tmp"
chmod --reference="$pref" "$tmp"
mv "$tmp" "$pref"

Do not run this while Chromium is active; it may overwrite the edited preferences when it exits.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment