Swapping Chrome for Brave on Windows

Swapping Chrome for Brave on Windows

Unfortunately, Google phased out Manifest V2 in Chrome, so the full version of uBlock Origin is no longer available:

In late 2024, Google completed its transition to Manifest V3 in Chrome, which fundamentally changed how browser extensions work. As a result, the full version of uBlock Origin is no longer available for Chrome users. Here's what happened and what your options are now.

Let's switch to Brave, a more privacy-focused browser.

Installation

We can install it from the command-line:

winget install Brave.Brave

Disable Brave features

I don't need Leo, Wallet, or the built-in VPN. We can disable these features with a registry policy. Run the following in an elevated terminal:

& {
    if (!(whoami /groups | findstr S-1-16-12288)) {
        throw 'Run PowerShell as Administrator.'
    }

    $policyPath = 'HKLM:\SOFTWARE\Policies\BraveSoftware\Brave'

    New-Item -Path $policyPath -Force | Out-Null

    $policies = @{
        BraveAIChatEnabled  = 0
        BraveWalletDisabled = 1
        BraveVPNDisabled    = 1
    }

    foreach ($policy in $policies.GetEnumerator()) {
        New-ItemProperty `
            -Path $policyPath `
            -Name $policy.Key `
            -PropertyType DWord `
            -Value $policy.Value `
            -Force | Out-Null
    }

    Write-Host 'Brave policies applied successfully.'
    Write-Host 'Restart Brave for the changes to take effect.'
}

Restart Brave and check brave://policy to verify that the policies are active.

"Help" my muscle memory

I'm quick to do ctrl+v and type chrome. But if you want to run Brave (and you still have Chrome due to company policy), you have to patch it in the registry:

& {
  $brave = @(
    "$env:ProgramFiles\BraveSoftware\Brave-Browser\Application\brave.exe"
    "${env:ProgramFiles(x86)}\BraveSoftware\Brave-Browser\Application\brave.exe"
    "$env:LOCALAPPDATA\BraveSoftware\Brave-Browser\Application\brave.exe"
  ) | Where-Object { $_ -and (Test-Path $_) } | Select-Object -First 1

  if (-not $brave) {
    throw 'Brave niet gevonden.'
  }

  $key = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe'

  New-Item $key -Force | Out-Null
  Set-Item $key -Value $brave
  Set-ItemProperty $key -Name 'Path' -Value (Split-Path $brave)

  $item = Get-Item $key

  Write-Host 'Registry patch gezet:'
  Write-Host "  chrome.exe -> $($item.GetValue(''))"
  Write-Host "  Path       -> $($item.GetValue('Path'))"
}

Fix the profile icons

I'm using 2 profiles on my browser, one for business, one for private. In Chrome one can load custom profile pictures, but Brave does not have this much wanted feature. Fortunately, there is a workaround: just copy the two pictures to %LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Avatars and give them these file names:

So now my how screen looks like this:

Use custom profile icons.