I tried to use `registerProtocolHandler()` in extension page. For example:
navigator.registerProtocolHandler("magnet", location.href + "?uri=%s", "Title");
It registers successfully. But when I click a magnet link in a web page, the browser navigate the page to chrome-extension://id/page.html?uri=.... , and you will see

I understand what happened. My question is that registerProtocolHandler is
virtually unusable at the moment in extensions.
I searched a bit. There are some issues like
crbug-86115 and
crbug-1079333.
Simeon
mentioned it in the past, but I don't think he's ever really used it.