How to install Bitwarden extension on Brave?

Whenever I try to install Bitwarden on Brave browser, I get an error message saying “Could not unzip extension” but I can install other extensions. How can I get Bitwarden on my browser so that I can autofill?

It would be helpful if you told us what that error message is.

I never presume to speak for the Qubes team. When I comment in the Forum I speak for myself.

A dialogue comes up on the upper left that says “Could not unzip extension”

What template do you use debian/fedora minimal/standard?
How did you install brave?
There seems to be a similar report:

If it’s a minimal template then maybe there is something missing there like some package or some library in the system. Try to use standard template instead.

I’m using the Fedora XFCE template that comes with Qubes 4.2.1 (I assume it’s the minimal?) and I installed Brave via the built-in Software Store.

How do I install the other template?

No, fedora-X-xfce is a standard template, the minimal one is called fedora-X-minimal.
You can start brave from terminal and there could be additional debug information printed there when this error occurs. You can check this.

1 Like

Do you know the command(s) I would use to do this?

should be somethings like brave-bin 'duckduckgo.com' or sudo brave-bin 'qubes-os.org'

Neither command was recognized.

[user@work ~]$ brave-bin ‘duckduckgo.com
bash: brave-bin: command not found
[user@work ~]$ sudo -brave-bin ‘qubes-os.org
sudo: qubes-os.org: command not found
[user@work ~]$

Write brave in terminal and press Tab key twice to view all commands starting with brave to find the correct command to start the browser.

what’s the output of flatpak list?

brave is not packaged by fedora, there is a rpm repository managed by brave, but if it was installed from the store it’s likely it pulled in the flatpak version

  1. dowload the → CRX Extractor/Downloader https://chrome.google.com/webstore/detail/crx-extractordownloader/ajkhmmldknmfjnmeedkbkkojgobmljda
  2. search in the chrome web store for “bitwarden” and select the right Extension of your choise
  3. then click on the “CRX Extractor/Downloader” Extension Icon
  4. select now “Dowload as ZIP” or “Download as CRX”
  5. navigate to brave://extensions
  6. toggle developer mode on
  7. click load unpacked and navigate to your extension or drag & drop the Extension in the right place
  8. close Brave and open it again, your “bitwarden” Extension should be actual

I don’t understand, I try to enter the .xsession-errors command but whether I enter a space between Brave and .xsession-errors or not, it returns an error message. I’m assuming this is the command we’re looking for.

[user@work ~]$ brave 
.bash_history     .config/          Desktop/          Public/
.bash_logout      .local/           Documents/        QubesIncoming/
.bash_profile     .mozilla/         Downloads/        Templates/
.bashrc           .var/             Music/            Videos/
.cache/           .xsession-errors  Pictures/         
[user@work ~]$ brave .xsession-errors
bash: brave: command not found
[user@work ~]$ brave.xsession-errors
bash: brave.xsession-errors: command not found
[user@work ~]$ 

[user@work ~]$ flatpak list
Name                Application ID           Version  Branch      Installation
Bitwarden           com.bitwarden.desktop    2024.2.0 stable      user
Brave Software      com.brave.Browser        1.65.114 stable      system
Yubico Authenticat… com.yubico.yubioath      6.3.1    stable      user
Mullvad             ….mullvad.MullvadBrowser 13.0.14  stable      system
BleachBit           org.bleachbit.BleachBit  v4.6.0   stable      system
Freedesktop Platfo… org.freedesktop.Platform 22.08.24 22.08       system
Freedesktop Platfo… org.freedesktop.Platform 23.08.16 23.08       system
Mesa                …top.Platform.GL.default 24.0.4   22.08       system
Mesa (Extra)        …top.Platform.GL.default 24.0.4   22.08-extra system
Mesa                …top.Platform.GL.default 24.0.5   23.08       system
Mesa (Extra)        …top.Platform.GL.default 24.0.5   23.08-extra system
openh264            …sktop.Platform.openh264 2.1.0    2.2.0       system
GNOME Application … org.gnome.Platform                45          system
Adwaita dark GTK t… ….Gtk3theme.Adwaita-dark          3.22        system
The Document Found… …libreoffice.LibreOffice 24.2.1.2 stable      user
Signal Foundation   org.signal.Signal        7.0.0    stable      user
[user@work ~]$ 

I tried downloading Bitwarden as both ZIP and CRX but when I click on Brave “Load unpacked,” the downloaded files are grayed out. When I drag the ZIP file into the extensions page, it gives the unable to unzip error. When I drag the CRX file into the extensions page, it seems to install but with errors. Clicking the Errors button gives the following details:

"ErrorsClear all

Unchecked runtime.lastError: The extensions gallery cannot be scripted.

Cannot find menu item with id autofill-card

Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist."

  1. What do these mean? The extension connects to the internet and autofills just fine.
  2. Are there any security risks with this setup?
  3. Will the extension update automatically or will I need to follow this process again each time an update is released?

it’s installed using flatpak, so you need flatpak run com.brave.Browser to start it from the command line.

[user@work ~]$ flatpak run com.brave.Browser

(cobalt:2): Gdk-CRITICAL **: 18:06:23.880: gdk_atom_intern: assertion 'atom_name != NULL' failed

(cobalt:2): Gdk-CRITICAL **: 18:06:23.881: gdk_atom_intern: assertion 'atom_name != NULL' failed
Opening in existing browser session.
[user@work ~]$ 

it seems you already had brave started and it opened a new tab maybe?

Yes, it was open. I didn’t know that the browser needed to be closed. Here is the output after I opened it from the terminal:

[user@work ~]$ flatpak run com.brave.Browser

(cobalt:2): Gdk-CRITICAL **: 18:34:06.627: gdk_atom_intern: assertion 'atom_name != NULL' failed

(cobalt:2): Gdk-CRITICAL **: 18:34:06.627: gdk_atom_intern: assertion 'atom_name != NULL' failed
[2:2:0419/183406.879964:ERROR:browser_main_loop.cc(280)] Gdk: gdk_atom_intern: assertion 'atom_name != NULL' failed
[2:2:0419/183406.880543:ERROR:browser_main_loop.cc(280)] Gdk: gdk_atom_intern: assertion 'atom_name != NULL' failed
MESA: error: ZINK: failed to choose pdev
glx: failed to create drisw screen
[52:52:0419/183407.170474:ERROR:viz_main_impl.cc(198)] Exiting GPU process due to errors during initialization
libsecret-Message: 18:34:08.660: Remote error from secret service: org.freedesktop.DBus.Error.UnknownMethod: Object does not exist at path “/org/freedesktop/secrets/collection/login”
libsecret-Message: 18:34:08.996: Remote error from secret service: org.freedesktop.DBus.Error.UnknownMethod: Object does not exist at path “/org/freedesktop/secrets/collection/login”
[2:2:0419/183408.996966:ERROR:chrome_browser_cloud_management_controller.cc(161)] Cloud management controller initialization aborted as CBCM is not enabled. Please use the `--enable-chrome-browser-cloud-management` command line flag to enable it if you are not using the official Google Chrome build.
MESA: error: ZINK: failed to choose pdev
glx: failed to create drisw screen
[92:92:0419/183409.389800:ERROR:viz_main_impl.cc(198)] Exiting GPU process due to errors during initialization
MESA: error: ZINK: failed to choose pdev
glx: failed to create drisw screen
[166:166:0419/183410.402620:ERROR:viz_main_impl.cc(198)] Exiting GPU process due to errors during initialization
[138:36:0419/183411.144564:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
[2:2:0419/183419.072316:ERROR:sharing_service.cc(221)] Device registration failed with fatal error
[2:2:0419/183420.000361:ERROR:CONSOLE(2276)] "[Brave Settings Overrides] Appearance Page cannot find use default theme button template", source: chrome://settings/settings.js (2276)

Try to install the extension in the brave that you’ve started from the terminal and see if there will be anything relevant in the log.