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.
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.
-
Chromium was closed completely so it could not overwrite its profile preferences during shutdown.
-
The preferences file was backed up as:
~/.config/chromium/Default/Preferences.bak-bitwarden-zoom-20260825-092538 -
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 )
-
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.
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.