This can now be done with Chrome 79+. Thanks to the Reddit link from @Kropotoff's earlier answer, you can restore the "Always open these types of links in the associated app" option by updating your system settings.
For Windows:
Apply the "ExternalProtocolDialogShowAlwaysOpenCheckbox" registry policy
Or edit the registry and add a REG_DWORD registry entry to:
Software\Policies\Google\Chrome\ExternalProtocolDialogShowAlwaysOpenCheckbox
For macOS:
defaults write com.google.Chrome ExternalProtocolDialogShowAlwaysOpenCheckbox -bool true
At least on Mac, it seems you need to quit and restart Chrome before the option becomes available.
Another Method
As an alternative to enabling the checkbox, then launching Chrome to select the checkbox, and ensuring it is persisted in the Chrome profile, it also appears to be possible to whitelist specific protocol handler URIs via the command line. This is helpful for Selenium and other automation, meaning that the URIs open without user intervention and you don't need to pre-configure the browser.
Assuming that your protocol handlers are myprotocol1://whatever
and myprotocol2://whatever
, you can do this on Mac. If you go this route, it doesn't look like you need to bother with the checkbox setting above.
defaults write com.google.Chrome URLWhitelist -array myprotocol1://* myprotocol2://*
I have not tried this on Windows, but it looks like there is guidance on the enterprise policy page for URLWhitelist.
Doesn't the popup have a checkbox to always allow that specific link type? – user1686 – 2019-09-12T11:05:43.470
@grawity No it does not. Just "Open" or "Cancel". – sieppl – 2019-09-12T11:37:16.180