Skip to content

MB 80: Enable Mullvad Browser as a default browser

Merge Info

Related Issues

Backporting

Timeline

  • Immediate: patchset needed as soon as possible
  • Next Minor Stable Release: patchset that needs to be verified in nightly before backport
  • Eventually: patchset that needs to be verified in alpha before backport
  • No Backport (preferred): patchset for the next major stable

(Optional) Justification

  • Emergency security update: patchset fixes CVEs, 0-days, etc
  • Critical bug-fix: patchset fixes a bug in core-functionality
  • Consistency: patchset which would make development easier if it were in both the alpha and release branches; developer tools, build system changes, etc
  • Sponsor required: patchset required for sponsor
  • Localization: typos and other localization changes that should be also in the release branch
  • Other: please explain

Merging

  • Merge to mullvad-browser - !fixups to mullvad-browser-specific commits, new features, security backports
  • Merge to base-browser -!fixups to base-browser-specific commits, new features to be shared with tor-browser
    • NOTE: if your changeset includes patches to both base-browser and mullvad-browser please clearly label in the change description which commits should be cherry-picked to base-browser after merging

Issue Tracking

Review

Request Reviewer

  • Request review from an applications developer depending on modified system:
    • NOTE: if the MR modifies multiple areas, please /cc all the relevant reviewers (since gitlab only allows 1 reviewer)
    • accessibility : henry
    • android : clairehurst, dan
    • build system : boklm
    • extensions : ma1
    • firefox internals (XUL/JS/XPCOM) : ma1
    • fonts : pierov
    • frontend (implementation) : henry
    • frontend (review) : donuts, richard
    • localization : henry, pierov
    • macos : clairehurst, dan
    • nightly builds : boklm
    • rebases/release-prep : dan, ma1, pierov, richard
    • security : ma1
    • signing : boklm, richard
    • updater : pierov
    • misc/other : pierov, richard

Change Description

The so long awaited MR to set MB as the default browser on Windows.

This MR shows the default browser button when we're not in portable mode, and then it makes a series of changes to the default browser agent.

Basically, Mozilla has this Swiss-knife for the default browser that sets Firefox as the default browser, does some telemetry and check if Edge is the default browser (and in case tells the user that the default browser has recently changed and they might want to undo that change).

We need only the part to set the default browser (and we're not compatible with some of the other parts because of Mingw). So, I disabled them and wrote a shorter replacement for the main function.

This MR needs some changes to the installer to work (to associate file types to the AUMID and other Windows stuff I might have forgotten).

How Tested

Installed, check that we can open links, HTML files and PDF files with Mullvad Browser, uninstalled.

I've checked only Windows 10 and 11 (after all, MB never says anything about previous Windows versions).

Missing parts

  • We will need a follow up to decide how to enable the default browser prompt but only for install mode (I say we can re-enable the pref and check if we're on portable mode before showing that dialog)
  • Firefox is inconsistent, and adds a taskbar entry only if you click to make the default browser in the dialog, but not if you click that in about:preferences. Is it fine for us?
  • Uninstalling doesn't clear the default browser, but also Firefox doesn't (i.e., reinstalling MB just after uninstalling will make MB default again, but you won't be able to create a pinned taskbar item, because of the inconsistency written above)

Related to #80 (closed)

Merge request reports