percent-encode U+0020 SPACE when in URLs computed by custom protocol handlers

If you register a protocol handler with navigator.registerProtocolHandler() and follow a link for that protocol containing a space, then the space will be escaped as "%20" instead of "+". This makes Chrome consistent with other browsers such as Firefox.

* Improve interoperability with the other browser implementing registerProtocolHandler * Make consistent with other escaped characters. * Adhere to the specification.


Here is an example (be sure to follow usual registerProtocolHandler restrictions e.g. same-origin and https): <script> navigator.registerProtocolHandler("mailto", "") </script> <a href="mailto:frederic">send email</a> this would redirect to rather than which is handled the same by e.g. URLSearchParams


Editor's draft

Status in Chromium


No active development (tracking bug)

Consensus & Standardization

After a feature ships in Chrome, the values listed here are not guaranteed to be up to date.

  • Shipped/Shipping
  • N/A
  • No signal
  • Positive


Last updated on 2020-09-09