10

For example, if I enter steam://connect/127.0.0.1 in the Omnibox, it will search for the URL instead of launching the program that handles that protocol.

How can Chrome be configured to treat custom protocols correctly?

  • Did you ever get the dialog box asking you for permission to launch an external program? – Synetech Jul 20 '12 at 15:44
11

This can be adjusted in Chrome's Local State file.

The exact location depends on your OS. For example:

  • %LOCALAPPDATA%\Google\Chrome\User Data\Local State on Windows 7.
  • ~/Library/Application Support/Google/Chrome/Local State on Mac OS X 10.8.
  • ~/.config/google-chrome/Local State on Ubuntu 12.04.

Steps:

  1. Close Google Chrome.

  2. Open the Local State file and search for excluded_schemes in protocol_handler.

  3. Add the line

    "steam": false,
    

    to excluded_schemes.

  4. Restart Google Chrome.

  • Hmm, that’s strange. ed2k:// and magnet: work fine without having to manually change anything. What’s special/wrong with steam://? Maybe the program didn’t register the protocol correctly? I assume that Steam has an associate function… – Synetech Jul 20 '12 at 15:09
  • I'm not sure, but I suppose Google has those predefined. There's no entry for any of the common protocols: http, ftp, etc. I just know I had to add it for Skype. – Dennis Jul 20 '12 at 15:12
  • Nope. I just checked and Chrome does not include any protocols by default (create a new profile and then check the Local State file; it will not even have a protocol_handler section). Further, setting it to true does not make it search, it makes it do nothing whatsoever, so that can’t be the problem. – Synetech Jul 20 '12 at 15:44
  • By by default, I meant that Chrome recognized the protocol natively, so there's no need to create a Local State entry. But that's just a guess. I don't know if the "steam": false, entry is the proper way to achieve this, but it definitely worked for skype:// . – Dennis Jul 20 '12 at 16:01
  • 1
    @Behrang: As stated in my answer, the file's full path is ~/.config/google-chrome/Local State on Ubuntu 12.04. I wouldn't know about other distributions. – Dennis Nov 28 '12 at 2:12
1

As a reference it looks like Custom URIs not being followed in the Omnibox or when passed as a command line parameter is known issue 560809 in Chromium.

As of writing the issue does not describe any workarounds :/

  • 1
    Looks like this issue was fixed April 10 2018. Version 66.0.3359.170 works. Woo! – CrazyTim May 15 '18 at 6:27

Not the answer you're looking for? Browse other questions tagged or ask your own question.