Subject: [apps-discuss] Status of URI scheme prefix issue

From: Dave Thaler <[email-masked]>
Date: Thu, 3 Jul 2014 23:49:36 +0000

Regarding "support for scheme prefix registration/delegation" (ticket #16), last IETF there was rough consensus in room for NOT allowing registering a prefix, and that we would communicate this to the W3C and discuss with them, and then come back to the WG.

We just sent a liaison statement to the W3C on this (and other issues we said we would welcome W3C input on), see http://www.ietf.org/mail-archive/web/apps-discuss/current/msg12289.html.

Separately, I also managed to get ahold of some interesting data on current use.

Total # of schemes currently registered with IANA: 188 (of which 74 were done by Alexey and me during the third-party registration experiment)

Total # of all registered schemes outside of our experiment: 114

Xbox Live has apparently always used a prefix to generate a URI scheme for every game title, which is used to launch the game. That is "ms-xbl-<guid>" where <guid> is replaced with a GUID.
Approximate # of Xbox Live scheme names used: 6873

I strongly suspect that Xbox Live isn't the only such deployed example.  As previously discussed, using URI schemes to launch associated apps is already a de facto standard on most platforms (Android, iOS, Windows, etc.) whether we like it or not.  This new data point implies that widely deployed use of prefixes probably dwarf the number of all registered schemes by two orders of magnitude.

In light of this data, the view of "no prefixes" starts sounding suspiciously like the "no NATs"
position of denial that the IETF was once in before Behave was chartered.
It would seem to me that we should think about how we DO want to deal with prefixes, if not by registering the prefix itself.

-Dave

---

From: Eric Burger <[email-masked]>
Date: Thu, 3 Jul 2014 20:44:35 -0400

Is there a way of not breaking everything all at once? What is the difference between a prefixed ‘scheme’ and a scheme with a parameter? I.e., instead of ms-xbl-<guid>:mumble, one has ms-xbl:mumble;guid=<guid>? Or, ms-xbl://<guid>/mumble? Or, ms-xbl://foo/<guid>/mumble? The particular way is registered by MS in this case.

There may be two orders of magnitude of prefixed ‘schemes’ than registered schemes, but I would bet there are seven or nine orders of magnitude more usage of the registered schemes than the prefixed schemes. And, since these are really only happening in the past few months with the advent of "deep application links,” I would offer it is not too late to do the right thing.

The thing we call a prefixed ‘scheme’ is not a scheme at all. There is no interoperability, there is no directives for how to interpret the scheme, it breaks standards-based tools, it is less than ideal.

On Jul 3, 2014, at 7:49 PM, Dave Thaler <[email-masked]> wrote:

> _______________________________________________
> apps-discuss mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/apps-discuss

---

From: Dave Thaler <[email-masked]>
Date: Fri, 4 Jul 2014 00:58:03 +0000

> -----Original Message-----
> From: apps-discuss [mailto:[email-masked]] On Behalf Of
> Eric Burger
> Sent: Thursday, July 3, 2014 5:45 PM
> To: Apps Discuss
> Subject: Re: [apps-discuss] Status of URI scheme prefix issue
> 
> Is there a way of not breaking everything all at once? What is the difference
> between a prefixed 'scheme' and a scheme with a parameter? I.e., instead of
> ms-xbl-<guid>:mumble, one has ms-xbl:mumble;guid=<guid>? Or, ms-
> xbl://<guid>/mumble? Or, ms-xbl://foo/<guid>/mumble? The particular way
> is registered by MS in this case.

It might be nice to define a scheme that was an applaunch://<guid>/mumble or whatever,
for many years now, all common OS's (Android/iOS/Windows/etc.) have already been
using app-specific scheme names to launch. Having an 'applaunch' (or whatever) generic
scheme would not be usable for some time since it would require changes in the
launching logic of the OS, and apps want to run on the widely deployed OS's and not
future ones that aren't the vast majority of deployed base.  So in the mean time,
everyone will continue existing practice.

> 
> There may be two orders of magnitude of prefixed 'schemes' than registered
> schemes, but I would bet there are seven or nine orders of magnitude more
> usage of the registered schemes than the prefixed schemes.

I'd agree with you there.

> And, since these
> are really only happening in the past few months with the advent of "deep
> application links," I would offer it is not too late to do the right thing.

Not sure where "past few months" comes from.   This has been going on for
years.

-Dave

> 
> The thing we call a prefixed 'scheme' is not a scheme at all. There is no
> interoperability, there is no directives for how to interpret the scheme, it
> breaks standards-based tools, it is less than ideal.
> 
> > Regarding "support for scheme prefix registration/delegation" (ticket #16),
> last IETF there was rough consensus in room for NOT allowing registering a
> prefix, and that we would communicate this to the W3C and discuss with
> them, and then come back to the WG.
> >
> > We just sent a liaison statement to the W3C on this (and other issues we
> said we would welcome W3C input on), see http://www.ietf.org/mail-
> archive/web/apps-discuss/current/msg12289.html.
> >
> > Total # of schemes currently registered with IANA: 188 (of which 74 were
> done by Alexey and me during the third-party registration experiment)
> >
> > Xbox Live has apparently always used a prefix to generate a URI scheme
> for every game title, which is used to launch the game. That is "ms-xbl-
> <guid>" where <guid> is replaced with a GUID.
> > I strongly suspect that Xbox Live isn't the only such deployed example.  As
> previously discussed, using URI schemes to launch associated apps is already
> a de facto standard on most platforms (Android, iOS, Windows, etc.)
> whether we like it or not.  This new data point implies that widely deployed
> use of prefixes probably dwarf the number of all registered schemes by two
> orders of magnitude.
> >
> > It would seem to me that we should think about how we DO want to deal
> with prefixes, if not by registering the prefix itself.
> >
> > -Dave
> >

---

From: Eric Burger <[email-masked]>
Date: Thu, 3 Jul 2014 21:25:37 -0400

This argument would fly if (1) it was a small deviation from the definition of a scheme and (2) the IETF would not be willing to acknowledge there is a problem to be solved.

I would offer we do see there is a problem to be solved.

I would offer we can solve this problem with minimal changes to what is deployed.

I would offer if we relatively quickly solve the problem, the bad stuff will go away over the next three years. Remember, we are talking mobile phones with average life spans of 18 months, not desktop PC that are still running WindowsXP or DOS 5.1.

In fact, fix it now before this leaks much more into the desktop realm. 

What is being done today is a misguided attempt to enshrine silos (iOS, Android, etc.) that will not talk with each other. Apple, MS, and Google might not want a working scheme, but developers (and users) do.

There is still 20 hours before the -00 cutoff…

---

From: Dave Thaler <[email-masked]>
Date: Fri, 4 Jul 2014 01:40:36 +0000

> From: Eric Burger [mailto:[email-masked]]
> Sent: Thursday, July 3, 2014 6:26 PM
> To: Dave Thaler
> Cc: Apps Discuss
> This argument would fly if (1) it was a small deviation from the definition of a
> scheme and (2) the IETF would not be willing to acknowledge there is a
> problem to be solved.
> 
> I would offer if we relatively quickly solve the problem, the bad stuff will go
> away over the next three years. Remember, we are talking mobile phones
> with average life spans of 18 months, not desktop PC that are still running
> WindowsXP or DOS 5.1.

It's not just mobile phones.  App launch is used on mobile phones,
desktop PCs, and other devices like Xboxes.

> In fact, fix it now before this leaks much more into the desktop realm.

It's been in the desktop realm already for at least 2 years.

> What is being done today is a misguided attempt to enshrine silos (iOS,
> Android, etc.) that will not talk with each other. Apple, MS, and Google might
> not want a working scheme, but developers (and users) do.

I'm not sure anyone "might not want" one (i.e. I think they do or would).

> There is still 20 hours before the -00 cutoff...

Go ahead :)

-Dave

> > It might be nice to define a scheme that was an
> > applaunch://<guid>/mumble or whatever, for many years now, all
> common
> > OS's (Android/iOS/Windows/etc.) have already been using app-specific
> > scheme names to launch. Having an 'applaunch' (or whatever) generic
> > scheme would not be usable for some time since it would require
> > changes in the launching logic of the OS, and apps want to run on the
> > widely deployed OS's and not future ones that aren't the vast majority of
> deployed base.  So in the mean time, everyone will continue existing
> practice.