Engineering service

Brave extension development

Brave installs extensions from the Chrome Web Store, so the work is making your Chrome extension behave under Brave's defaults: Shields blocking, Brave Wallet, fingerprinting protection and the Google services Brave leaves out. We test in Brave with its default settings, fix what breaks, and build the extension first if you don't have one.

See what's included
  • 11+ years of experience
  • 300+ projects delivered
  • Remote team, clients worldwide
  • NDA on request

Overview

What it is and when it fits

Brave installs extensions from the Chrome Web Store and has no store of its own, so a Brave extension is a Chrome extension. What differs is what Brave changes around it. Shields blocks ads, trackers and some scripts on pages. Brave Wallet injects its own Ethereum provider. Fingerprinting protection adds small random changes to canvas, WebGL and audio output. Google services such as account sign-in and push messaging are also missing or off by default.

Each of these can break a feature that works in Chrome. We test your extension in Brave with its default settings, trace each failure to its cause and fix it in the same codebase, so there is still one package for Chrome and Brave.

Who this is for

  • Teams whose Chrome extension misbehaves in Brave and who need to know why.
  • Wallet and Web3 products that have to work next to Brave Wallet.
  • Teams whose extension uses Google sign-in, push messages or canvas-based device checks.
  • Teams whose extension depends on scripts, requests or page features that Brave blocks by default.

How it works

Architecture at a glance

A Chrome extension running in Brave

Popup, side panel, options

The interface users see. Talks to the background through messages.

Service worker (background)

The same Manifest V3 service worker as in Chrome. Brave stops it when idle, so state must live in storage.

Content script

Runs inside pages you choose. Can read and change the page, in an isolated JavaScript world.

Chromium extension APIs

The Chrome set, minus Google services: identity.getAuthToken does not work, and gcm push messages are off by default.

Web page, after Brave

Shields may have removed scripts and requests, Brave Wallet may inject window.ethereum, and canvas, WebGL and audio output carry random noise.

The extension is a standard Chrome Manifest V3 extension. Brave changes what surrounds it: which Google services exist, what pages load under Shields, which wallet provider pages see, and what fingerprint-sensitive APIs return.

What we offer

What's included

Shields compatibility

Features fixed so they keep working with Shields on, including for users who choose aggressive blocking.

Google sign-in that works in Brave

Sign-in rebuilt so users can log in with Google, or with your own accounts, in Brave as well as Chrome.

Wallets next to Brave Wallet

Wallet extensions that dapps can find and users can choose, even with Brave Wallet turned on.

Canvas, WebGL and audio features

Device checks and other features that read these outputs, reworked so Brave's fingerprinting protection does not break them.

Push messages without Google

Real-time updates that keep arriving in Brave, where Google's push service is off by default.

Brave-specific code paths

Separate handling for Brave only where it is needed, detected reliably even though Brave reports Chrome's user agent.

Deliverables

What you get

  • 01

    Brave test report

    Pass and fail results for every feature in Brave, with default and aggressive Shields, and the cause of each failure.

  • 02

    Fixes in your existing codebase

    Code changes merged into your Chrome extension, not a separate Brave fork. One package still serves both browsers.

  • 03

    Wallet test matrix

    For wallet products: results with each Brave default-wallet setting and next to other wallet extensions.

  • 04

    Brave checks in your test suite

    Test cases added to your regression suite, so future releases are checked in Brave as well as Chrome.

  • 05

    Help-center article

    A short page for your users on the Brave settings that affect the extension, such as per-site Shields and the default wallet.

  • 06

    Chrome Web Store release

    The fixed version published to the Chrome Web Store, which is where Brave users get their updates.

Compare

Brave-specific checks

These are the places where a working Chrome extension most often breaks in Brave, and what we change.

Brave-specific checks
AreaWhat goes wrong in BraveWhat we do
Shields blockingShields removes ads, trackers and some scripts from pages, including scripts your content script injects from a blocked domain.We test with default and aggressive Shields, find what is blocked, and bundle the script, change how it loads or add a fallback.
Google sign-inchrome.identity.getAuthToken does not work, so "Sign in with Google" fails.We move sign-in to chrome.identity.launchWebAuthFlow or your own OAuth flow, which works in Brave, Chrome and other Chromium browsers.
Wallet providerBrave Wallet and your extension both want window.ethereum. Brave's default-wallet setting decides which one pages get.We add EIP-6963 provider announcements so dapps can list both wallets, and stop assuming your provider owns window.ethereum.
Fingerprinting protectionCanvas, WebGL and audio output get small changes that differ per site and per session, so hashes of them keep changing.We replace those reads with an ID the extension stores itself, or make the feature tolerate the variation.
Push messageschrome.gcm relies on Google's push service, which Brave turns off by default.We move real-time updates to a connection your backend controls, or to scheduled checks with alarms.
Browser detectionBrave sends the same user agent as Chrome, so code that sniffs the user agent cannot tell them apart.Where the extension needs Brave-specific handling, we detect Brave with navigator.brave.isBrave().

Why it matters

What this gives you

Works with Shields left on

Your users keep Brave's protections, and the extension still works. Lowering Shields is never the fix we hand them.

Sign-in that works in more browsers

Moving off getAuthToken fixes Google sign-in in Brave and in other Chromium browsers that lack Google's account services.

A wallet users can actually pick

Dapps list your wallet next to Brave Wallet, so users who chose your wallet are not routed to Brave's.

Brave support you can stand behind

You can list Brave as a supported browser, backed by a test report rather than an assumption that "it is Chromium, so it works".

Our approach

How a Brave compatibility project runs

  1. Baseline in Brave

    We install your extension in a clean Brave profile with default settings and record how each feature behaves.

    You get: A pass and fail list

  2. Trace the causes

    For each failure we find whether Shields, Brave Wallet, fingerprinting protection, a missing Google service or something else is responsible.

    You get: Root causes for each issue

  3. Adjust the extension

    We change the extension so it works with Brave's defaults instead of asking users to turn protections off.

    You get: Code fixes and fallbacks

  4. Retest and document

    We rerun the tests with default and aggressive Shields, add Brave to your regression checks, and write down results and known limits.

    You get: A test report and support notes

When this is not the right fit

  • Your extension already works in Brave and does not use Google sign-in, push messages, a wallet or canvas-based checks. Chrome extension development is the place to start.
  • You want the fix to be "turn Shields off". We work with Brave's defaults, not against them.
  • You want Brave itself changed, with built-in features. That is Brave browser development, a separate service.

Tech stack

Technologies we use

The engines, APIs and tools we use on this service.

Manifest V3Chromium extension APIsChrome Web StoreBrave Shieldschrome.identity.launchWebAuthFlowEIP-6963EIP-1193 (window.ethereum)navigator.braveCanvas, WebGL and Web Audio APIsTypeScript

FAQ

Common questions

No. Brave installs extensions from the Chrome Web Store, so a Brave extension is a Chrome extension that has been tested and adjusted for Brave. One package serves both browsers.

Start a project

Make your extension work in Brave

Tell us what the extension does. We will test it against Shields, Brave Wallet, sign-in and fingerprinting protection, and fix what breaks.

Send a project brief