Edge URL Schemes

The microsoft-edge: Application Protocol Microsoft Edge implements an Application Protocol with the scheme microsoft-edge: that is designed to launch Microsoft Edge and pass along a web-schemed URL and/or additional arguments. A basic invocation might be as simple as: microsoft-edge:http://example.com/ However, as is often the case with things I choose to write about, there’s a bitContinue reading “Edge URL Schemes”


This content originally appeared on text/plain and was authored by ericlaw

The microsoft-edge: Application Protocol

Microsoft Edge implements an Application Protocol with the scheme microsoft-edge: that is designed to launch Microsoft Edge and pass along a web-schemed URL and/or additional arguments. A basic invocation might be as simple as:

microsoft-edge:http://example.com/

However, as is often the case with things I choose to write about, there’s a bit of hidden complexity that may not be immediately obvious.

Non-Public

The purpose of this URL scheme is to enable Windows and cooperating applications to invoke particular user-experiences in the Edge browser.

This scheme is not considered “public” — there’s no official documentation of the scheme, and the Edge team makes no guarantees about its behavior. We can (and do) add or modify functionality as needed to achieve desired behaviors.

Over the last few years, we’ve added a variety of functionality to the scheme, including the ability to invoke UX features, launch into a specific user profile, and implement other integration scenarios. By way of example, Windows might advertise the Edge Surf game and, if the user chooses to play, the game is launched by ShellExecuting the URL microsoft-edge:?ux=surf_game.

Because of the non-public and inherently unstable (not backward-compatible) nature of this URL scheme, it is not an extensibility point and it is not supported to configure the handler to be anything other than Microsoft Edge.

Under the hood: handling of this scheme can be found in Edge’s non-public version of the StartupBrowserCreator::ProcessCmdLineImpl function I wrote about recently as a part of my post on Chromium Startup.

Tricky Bits

One (perhaps surprising) restriction on the microsoft-edge scheme is that it cannot be launched from inside Edge itself. If a user inside Edge clicks a link to the microsoft-edge: scheme, nothing visibly happens. Only if they open the F12 Console will they see an error message:

The microsoft-edge protocol is blocked inside Edge itself to avoid “navigation laundering” problems, whereby going through the external handler path would result in loss of context. Losing the context of a navigation can introduce vulnerabilities in both security and abuse. For example, a popup blocker bypass existed on Android when Android Chrome failed to block the Chrome version of this protocol. The Edge WebView2 control also blocks navigation to the protocol, although I expect that an application which wants to allow it can probably do so with the appropriate event handlers.

Another tricky bit concerns the fact that a user may have multiple different channels of Edge (Stable, Beta, Dev, Canary) installed, but the microsoft-edge protocol can only be claimed by one of them. This can be potentially confusing if a user has different channels selected to handle HTTPS: and microsoft-edge links:

…because some links will open in Edge Canary while others will open in Edge Beta.


The edge: Built-In Scheme

Beyond the aforementioned application protocol, Microsoft Edge also supports a Built-In Scheme named edge: and unlike the application protocol, this scheme is only available within the browser.

This protocol is simply an alias for the chrome and about schemes used in Chromium to support internal-pages like about:flags, about:settings, and similar. For security reasons, regular webpages cannot navigate to or load subresources from the edge/chrome schemes.


This content originally appeared on text/plain and was authored by ericlaw


Print Share Comment Cite Upload Translate Updates
APA

ericlaw | Sciencx (2022-07-18T22:58:29+00:00) Edge URL Schemes. Retrieved from https://www.scien.cx/2022/07/18/edge-url-schemes/

MLA
" » Edge URL Schemes." ericlaw | Sciencx - Monday July 18, 2022, https://www.scien.cx/2022/07/18/edge-url-schemes/
HARVARD
ericlaw | Sciencx Monday July 18, 2022 » Edge URL Schemes., viewed ,<https://www.scien.cx/2022/07/18/edge-url-schemes/>
VANCOUVER
ericlaw | Sciencx - » Edge URL Schemes. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/07/18/edge-url-schemes/
CHICAGO
" » Edge URL Schemes." ericlaw | Sciencx - Accessed . https://www.scien.cx/2022/07/18/edge-url-schemes/
IEEE
" » Edge URL Schemes." ericlaw | Sciencx [Online]. Available: https://www.scien.cx/2022/07/18/edge-url-schemes/. [Accessed: ]
rf:citation
» Edge URL Schemes | ericlaw | Sciencx | https://www.scien.cx/2022/07/18/edge-url-schemes/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.