How to always allow specific local protocol

Iron Contributor

I often use Edge Chromium to open urls that rely on local protocols like:

zotero://select/items/1_EDK2F
vscode://file/C:/Users/user/Desktop/script.py:52:1

But each time I want to open these urls, Edge always asks me if I want to open Zotero or VsCode. I didn't have this confirmation popup when I used Chrome. Is there a way to always allow specific local protocols so I won't get this popup?

Edge version: Version 78.0.249.1

14 Replies

@07_19 thanks for submitting this report. I see the prompt in Chrome, but there is a checkbox there that says "Always open these types of links in the associated app". I am betting you checked that box at some time in the past and have forgotten. What I find interesting is that Edge is not presenting that option. I'm going to follow up on why we removed the checkbox. 

 

-John 

@johnjansen  Yes I probably have forgotten that I checked this box at some point. Thanks for following up on this!

@07_19 It turns out that that setting is now removed from Chrome (Canary) as well. It's being removed so that you always have to approve using a protocol because with the old design there was no way for you to know you'd checked that box, which is a bit of a security concern.

 

Thanks again for reporting this one. 

 

-John

@johnjansen  Thanks for checking, but if it's the case, why not having a setting in the "Site permissions" section so we can always allow specific local protocol. That way, there is no security issue (we can always go to site permissions to remove the protocol permission) and you keep the users happy!

@07_19 yeah, I already sent mail internally to brainstorm the best way to move forward with this. I don't really like the idea of being prompted with every protocol link if I trust the domain serving the link, but I always defer to our security experts.

@johnjansen You're just amazing, thanks a lot for your time and your dedication!

Is there an update on this? This is very disruptive in our enterprise environment during our testing.

@AndrewSAIF - thanks!  This worked.  Now to figure out where it's storing this so I can set our apps (WebEx, Teams, etc) to do this automatically for our users.

@jagrock 

 

The handler preference is stored in %localappdata%\Microsoft\Edge[version]\User Data\Default [or profile name]\Preferences.


The two ways to prepopulate it I know of are:

  • Add a master_preferences file to the installation directory of Edge for it to load on first run
    https://support.google.com/chrome/a/answer/187948?hl=en
  • Use PowerShell to add this to the end of the preferences file before the last curly brace
    ,"protocol_handler":{"excluded_schemes":{"yourhandlername":false}}

Unfortunately, this preference is undone whenever the user clears their browser cache, so I think I'm going to opt to just have folks check the box. 

Thanks a lot @AndrewSAIF. I didn't have to use a master_preferences or powershell to edit Preferences. I simply right-click it and choose to open it with my text editor "vscode" 

 

Once open, Preferences looks like a json file, so you should be able to open it with any text editor. But your operating system doesn't know that because the extension is removed.

 

This work for me (to allow zotero and vscode protocols):

- close Edge

- go to %localappdata%\Microsoft\Edge[version]\User Data\Default [or profile name]\Preferences.

- Right-click Preference and choose a text editor

- scroll down to the very end of the text 

- remove the last

 

}

 

- add  (notice the first comma, and no need to add :// for the protocols

 

,"protocol_handler":{"excluded_schemes":{"zotero":false, "vscode":false}}}

 

 

edit: once you edit have edited Preferences and open Edge, the position of the protocol_handler will automatically be move just beneath "password_hash_data_list" so you won't see it anymore right a the very end of the text. So after the first edit, if you need to add more protocols, you will have to look for "protocol_handler". 

 

@07_19 

 

You're correct, you can manually edit the file with a text editor and achieve the same result. It looked like jagrock was trying to configure this on multiple machines at once though, which is why I suggested those methods.

@07_19 Yes, I had tried this prior to posting here and it didn't work.  Maybe it will now since the popup was added in.

Is this persistent or does the end user clearing cache/cookies, resetting settings, etc clear it out?

Since the new update (I have  Version 82.0.439.1 (Official build) dev (64-bit) ), this solution doesn't work anymore.

 

I checked my Preferences file in AppData\Local\Microsoft\Edge Dev\User Data\Default and the exclusion rule is still there ("protocol_handler":{"excluded_schemes":{"vscode":false,"zotero":false}} ) , but each time I open one of the specified protocol, I am asked to confirm that I want to open it.

 

How to fix this?