Difference between revisions of "Protocol Handler"

From MgmtWiki
Jump to: navigation, search
(Chromium)
(Chromium)
Line 58: Line 58:
 
Was a topic in [https://www.youtube.com/user/blinkontalks/videos  BlinkOn 15 2021-11-17 now on YouTube]
 
Was a topic in [https://www.youtube.com/user/blinkontalks/videos  BlinkOn 15 2021-11-17 now on YouTube]
 
* [https://bugs.chromium.org/p/chromium/issues/detail?id=178097 Implement registerProtocolHandler on Android]  a CR bug issue 178097 originally posed on 2013-02-25
 
* [https://bugs.chromium.org/p/chromium/issues/detail?id=178097 Implement registerProtocolHandler on Android]  a CR bug issue 178097 originally posed on 2013-02-25
* [https://chromeenterprise.google/policies/?policy=AutoOpenAllowedForURLs AutoOpenAllowedForURLs] with example for each device platform.
 
* [https://chromeenterprise.google/policies/?policy=AutoOpenFileTypes AutoOpenFileTypes]
 
 
* [https://chromium-review.googlesource.com/c/chromium/src/+/2992306/36 Move ProtocolHandlerRegistry to a new //component] in Chromium Gerrit
 
* [https://chromium-review.googlesource.com/c/chromium/src/+/2992306/36 Move ProtocolHandlerRegistry to a new //component] in Chromium Gerrit
 
* Stephen Shankland twitter @stshank Google plans to add into Chrome the ability to handle decentralized web protocols (e.g. dat, dweb, ipfs, ipns, ssb). Decentralized web = more of a peer-to-peer design, where individuals host their own content. https://t.co/W05X4ljZUe?amp=1
 
* Stephen Shankland twitter @stshank Google plans to add into Chrome the ability to handle decentralized web protocols (e.g. dat, dweb, ipfs, ipns, ssb). Decentralized web = more of a peer-to-peer design, where individuals host their own content. https://t.co/W05X4ljZUe?amp=1
 
*  [https://groups.google.com/a/chromium.org/g/blink-dev/c/7nHTRUP1EGY Intent to Prototype and Ship: Add schemes for decentralized web protocols to the safelist of registerProtocolHandler] from Frederic Wang at igalia.com 2020-04-24
 
*  [https://groups.google.com/a/chromium.org/g/blink-dev/c/7nHTRUP1EGY Intent to Prototype and Ship: Add schemes for decentralized web protocols to the safelist of registerProtocolHandler] from Frederic Wang at igalia.com 2020-04-24
 +
 +
The following are features of enterprise installation as so would be a challenge to provide for other implementations, like for federations.
 +
* [https://chromeenterprise.google/policies/?policy=AutoOpenAllowedForURLs AutoOpenAllowedForURLs] with example for each device platform.
 +
* [https://chromeenterprise.google/policies/?policy=AutoOpenFileTypes AutoOpenFileTypes]
  
 
===PWA===
 
===PWA===

Revision as of 22:19, 17 November 2021

Full Title

Protocol Handlers are models that can be added to a user's computer to extend the range of protocols that can be handled by that computer.

Context

The scope of this wiki is focused on Protocol Handlers that process Identifiers and Authentication, but might involve payment procols as well.

Existing Providers

The list of whitelisted schemes is defined by the WHATWG specification:

 http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#whitelisted-scheme

These are the providers registered as of 201x

name Location Cat Recent News
bitcoin"
"geo"
"im"
"irc"
"ircs"
"magnet"
"mailto"
"mms"
"news"
"openpgp4fpr"
"sip"
"sms",
"smsto",
"ssh",
"tel",
"urn",
"webcal",
"wtai",
"xmpp"

Solutions

These solutions are directed primarily to Smartphones, although uses on desktop computers are also considered. Originally all protocol handlers were written in native code for the operating system and installed by the user.

Chromium

Was a topic in BlinkOn 15 2021-11-17 now on YouTube

The following are features of enterprise installation as so would be a challenge to provide for other implementations, like for federations.

PWA

Windows

The following adapts their example:

First, you need a ProgID in HKLM\SOFTWARE\Classes that dictates how to handle any input given to it (yours may already exist):

HKLM\SOFTWARE\Classes
    MyApp.ProtocolHandler //this is the ProgID, subkeys are its properties
       (Default) = My Protocol //name of any type passed to this
       DefaultIcon
          (Default) = %ProgramFiles%\MyApp\MyApp.exe, 0 //for example
       shell
          open
             command
                (Default) = %ProgramFiles%\MyApp\MyApp.exe %1 //for example

Then fill the registry with DefaultProgram info inside a Capabilities key:

HKLM\SOFTWARE\MyApp
   Capabilities
      ApplicationDescription
          URLAssociations
             myprotocol = MyApp.ProtocolHandler //Associated with your ProgID

Finally, register your application's capabilities with DefaultPrograms:

HKLM\SOFTWARE
     RegisteredApplications
        MyApplication = HKLM\SOFTWARE\MyApp\Capabilities

Now all "myprotocol:" links should trigger %ProgramFiles%\MyApp\MyApp.exe %1.

References