Modern browsers intentionally suppress the "Set as default" prompt if they detect another browser is already registered as the system handler for HTTP and HTTPS protocols. To bypass this check without changing your actual default settings, you must manipulate the Windows registry keys that store protocol associations. This allows Chrome, Firefox, or Edge to believe it holds the primary association, restoring the welcome banner.
Understanding Browser Default Checks
Browsers do not simply ask the operating system who is in charge; they perform a specific lookup during startup. On Windows, this involves checking the HKEY_CURRENT_USER\Software\Classes and HKEY_LOCAL_MACHINE\SOFTWARE\Classes hives. Specifically, they look for keys like http and https and verify which executable is linked to the shell\open\command verb.
If a browser finds its own installation path in these keys, it assumes it is the default and skips the UI prompt. If it finds another browser's path, it displays the prompt asking to take over. The trick relies on temporarily pointing these keys to the target browser, restarting it to trigger the internal logic, and then optionally reverting the changes.
Prerequisites and Safety Warnings
Modifying the Windows Registry carries inherent risks. An incorrect change can break file associations for web links across your entire system. Always create a restore point before proceeding. Additionally, modern versions of Chrome and Edge may have additional checks beyond the registry, such as verifying digital signatures or checking user profile state, so this method works best on standard installations.
If you encounter certificate errors while testing web applications, remember that registry changes do not affect SSL/TLS trust stores. For issues related to secure connections, refer to our guide on Troubleshooting: Unable to Access Web Telegram Website (Error NET::ERR_CERT_AUTHORITY_INVALID).
Step-by-Step Registry Modification
The following steps apply primarily to Google Chrome and Microsoft Edge, as they share similar registry structures under Software\Classes. Firefox uses a different mechanism but can be influenced similarly.
1. Open the Registry Editor
Press Win + R, type regedit, and press Enter. Accept the UAC prompt if it appears.
2. Locate the Protocol Keys
Navigate to the following paths in the left pane:
HKEY_CURRENT_USER\Software\ClassesHKEY_LOCAL_MACHINE\SOFTWARE\Classes
Under each, find the folders named http and https. These are the keys that define how the OS opens web links.
3. Modify the Default Value
Click on the http key. In the right pane, locate the (Default) value. Note its current data (e.g., ChromeHTML or FirefoxURL). You will need this to revert later.
Change the (Default) value to match the browser you want to trick. For Google Chrome, use ChromeHTML. For Microsoft Edge, use MSEdgeHTM. For Firefox, use FirefoxURL.
Repeat this process for the https key.
4. Verify the Command Path
Inside the http key, expand the shell folder, then open, then command. Check the (Default) value here. It should point to the executable of the browser you are trying to make appear as default. For example, for Chrome, it might look like:
"C:\Program Files\Google\Chrome\Application\chrome.exe" -- "%1"
If it points to another browser, update it to your target browser's executable path. Ensure the quotes are correctly placed around the path with spaces.
5. Restart the Browser
Close any running instances of the target browser. Open it fresh. Because the registry now claims it is the default handler, the browser will skip the "Set as default" screen. You can now proceed with other tasks.
Reverting Changes
To restore the original state, return to the registry keys modified above. Change the (Default) values back to their original entries (e.g., FirefoxURL if Firefox was previously default). Close the Registry Editor and restart your computer to ensure all associations refresh properly.
Alternative Methods
If registry editing feels too invasive, some users prefer using third-party tools like "Default Programs Editor" which provide a GUI for managing these associations safely. However, manual registry editing gives you precise control over which specific protocol handlers are affected.
Note that this technique does not affect notification permissions or scroll behaviors. If you need to manage notifications in fullscreen mode, see How to Enable Chrome Notifications While Using Another App in Fullscreen. Similarly, if you are dealing with search result navigation quirks, check out How to Stop Firefox from Scrolling to First Search Result When Using CTRL-F.
Frequently Asked Questions
Does this work on macOS or Linux?
No, this method is specific to Windows because it relies on the Windows Registry. macOS uses launchservices and defaults commands, while Linux uses MIME type configuration files in XDG directories. The registry paths provided are invalid on non-Windows systems.
Will Windows Security or Antivirus block this change?
Most security software allows registry edits unless they involve boot sectors or critical system files. Modifying HKCU\Software\Classes is generally considered low-risk. However, some enterprise environments with strict Group Policy may prevent these changes entirely.
Why doesn't the browser show the default prompt after I edit the registry?
Ensure you closed and reopened the browser completely. Some browsers cache their default status in memory. Also, verify that the command subkey points exactly to the browser executable, including the correct arguments like -- "%1".
Can I use PowerShell to automate this?
Yes, you can use Set-ItemProperty to modify registry keys via PowerShell. For example: Set-ItemProperty -Path "HKCU:\Software\Classes\http\(Default)" -Value "ChromeHTML". This is useful for scripting across multiple machines.
Does this trick affect my ability to open links from other apps?
Only temporarily. As long as the registry keys point to the correct browser executable, links opened from email clients or documents will launch that browser. Once you revert the registry changes, the system returns to its previous default behavior.