W3C home > Mailing lists > Public > www-tag@w3.org > January 2012

Re: HTML5 proposes introduction of new family of URI schemes

From: Christopher B Ferris <chrisfer@us.ibm.com>
Date: Thu, 19 Jan 2012 09:26:02 -0500
To: "Martin J. Dürst" <duerst@it.aoyama.ac.jp>
Cc: Noah Mendelsohn <nrm@arcanedomain.com>, Jonathan A Rees <rees@mumble.net>, Julian Reschke <julian.reschke@gmx.de>, "www-tag@w3.org" <www-tag@w3.org>, Paul Cotton <Paul.Cotton@microsoft.com>, Maciej Stachowiak <mjs@apple.com>, Sam Ruby <rubys@intertwingly.net>
Message-ID: <OF6B36E435.E5476470-ON8525798A.004A13A3-8525798A.004F4B53@us.ibm.com>
Martin,

I still do not understand, from your explanations, what value the 'web+' 
prefix brings to the table over the status quo. 

I get that it would be bad for a malicious web service to try to trick the 
user into associating all http traffic with it. However, 
'web+' doesn't really fix that, instead it creates more problems that it 
intends to solve.

The authors of a protocol are likely not the same individuals who might 
conceive of the idea of a web-based handler. Seems as if the scheme will 
simply encourage
all protocol designers to register their URI scheme with the 'web+' prefix 
simply to leave open the prospect of a web-based handler. This defeats the 
intended
purpose of the 'web+' prefix.

Further, I notice the whitelist omits xmpp. Is there no hope for web-based 
IM, absent a formal change in the spec? Someone better alert Meebo.

It seems to me that a blacklist might better serve to address the security 
concerns. Specifically, blacklist those protocols for 
which there is a known security threat profile should that protocol be 
usurped by a web-based handler. I imagine that list will be fairly short.

Cheers,

Christopher Ferris
IBM Distinguished Engineer, CTO Industry and Cloud Standards
Member, IBM Academy of Technology
IBM Software Group, Standards Strategy
email: chrisfer@us.ibm.com
blog: 
https://www.ibm.com/developerworks/mydeveloperworks/blogs/chrisferris/
phone: +1 508 234 2986



From:   "Martin J. Dürst" <duerst@it.aoyama.ac.jp>
To:     Noah Mendelsohn <nrm@arcanedomain.com>, 
Cc:     Jonathan A Rees <rees@mumble.net>, Julian Reschke 
<julian.reschke@gmx.de>, "www-tag@w3.org" <www-tag@w3.org>, Paul Cotton 
<Paul.Cotton@microsoft.com>, Maciej Stachowiak <mjs@apple.com>, Sam Ruby 
<rubys@intertwingly.net>
Date:   01/19/2012 06:08 AM
Subject:        Re: HTML5 proposes introduction of new family of URI 
schemes



Hello Noah,

On 2012/01/19 12:10, Noah Mendelsohn wrote:
> Martin,
>
> There's something about your example that confuses me. Let's say I
> author a Web page, and to make it easy for you to email me, I include a
> link to mailto:nrm@arcanedomain.com. You read my page, and click on the
> link, and you've explained why as a (hypothetical) Webmail user you'd
> want your new, smart HTML5 Web browser to invoke the Webmail Web app to
> compose the e-mail. If someone else clicks the link, then they might
> want that same link to open Outlook or Thunderbird. So far, no problem.
> We've got an existing scheme, it's in the whitelist, and each client can
> be configured to do what its user needs.
>
> What strikes me as important, though, is that I in composing the Web
> page don't want to know how you want your particular client to handle
> the links. I want to use a URI that's independent of the implementation
> technology of, in this case, the e-mail reader, which may in some cases
> be Web-based and in others a native client app.

Yes indeed. As a page author, you just use the 'mailto' scheme, and 
that's it.

> So my question is: why would the story be any different for other links?
> Don't we want to continue to use URI schemes that are independent of the
> implementation technology of the application? Don't we want it to be
> possible that the same link will sometimes invoke a Web-based version of
> an application and sometimes a native?

Yes indeed.

> That suggests to me that, rather
> than minting new URI schemes,

There is no proposal for creating new schemes. There's no need to create 
a web+mailto scheme, or a web+http scheme, or anything like that. The 
web+ prefix is only for future schemes. The idea (not mine, I'm just 
trying to explain) is that if somebody has an idea for a new scheme 
(lets say for the foobar protocol or some such), then they decide 
whether it may make sense for a Web application to handle this protocol 
or not. If yes, they register 'web+foobar' as the scheme name; if no, 
they register 'foobar' as the scheme name.

This then allows an HTML5 browser (see 
http://dev.w3.org/html5/spec/Overview.html#custom-handlers) to know 
whether it's a good idea to allow delegation of all URIs/IRIs in this 
scheme to a particular Web page after that Web page has requested it and 
the user has confirmed it, or not. For existing schemes, this decision 
already has been taken, you can find it under "whitelisted schemes" in 
the above section.

So the "web+" convention is intended for future schemes, and it's a 
security device on top of user confirmation, because one would not want 
a single page to handle e.g. all the HTTP traffic of a user, even if the 
user accidentally clicked okay when asked for permission.

> we need to enable the use of something in
> the spirit of URI templates in the client, so that links using existing
> URI schemes can be directed to Web or native apps as appropriate.

If you look at the above cited section of HTML5, then the "%s" in the 
url parameter of window.navigator.registerProtocolHandler indeed looks 
like a mini-template.


> Why do we need or want web+ for this?

I hope I have made it clear enough why the proponents of this prefix 
came up with it.

In *procedural* terms (and https://www.w3.org/html/wg/tracker/issues/189 
is to quite some extent written as a procedural issue),
it's not really such a problem. Indeed "web+" can't be registered the 
way it's currently proposed in the HTML5 spec, but we could just put a 
provision for such a prefix into RFC 4395bis, on which the IRI WG is 
working anyway. That would have the advantage that people who create new 
URI schemes might actually become aware of it.

The question is whether a prefix is a good idea. Julian strongly thinks 
it's not, and gives some good reasons. I also feel it's not a very good 
solution, but I think it would really help if somebody came up with an 
alternative.

There are several directions that I can think of:

- Put a 'column' into the URI/IRI registry that indicates whether
   a scheme is suitable for a web application or not.
   (problem: browsers need to be updated)
- Let browser makers decide, because they will ultimately be blamed for
   security issues. (problem: work for browser vendors)
- Keep the browsers out of the picture, let the OS handle it. Currently,
   the OS knows which application I want to use for http:, and which for
   mailto:,..., and this could be extended to allow redirection to
   another URI/IRI. (problem: OSes need to implement this, and they
   would have to make the same decisions)

I'm also a bit skeptical that a permanent decision can be made for which 
schemes to be allowed handling by Web applications. After let's say that 
ftp is getting even less popular than it is now, and browsers drop 
support for it, why wouldn't I be okay for a Web application to handle 
my ftp needs if I'm okay to let a Web application handle my mail?

Regards,    Martin.


> On 1/18/2012 9:59 PM, "Martin J. Dürst" wrote:
>> Hello Jonathan, Julian,
>>
>> On 2012/01/19 0:31, Jonathan A Rees wrote:
>>> On Sat, Jan 14, 2012 at 5:56 PM, Julian Reschke<julian.reschke@gmx.de>
>>> wrote:
>>
>>>> It seem<http://dev.w3.org/html5/spec/Overview.html#custom-handlers>
>>>> contains the rest of the information.
>>>
>>> Maybe it does, but it doesn't answer my question - to what problem is
>>> this a solution? Also how is it expected to play out in practice? What
>>> will the new security dialogs look like and will they baffle users
>>> like all the others do? Has anyone already implemented it?
>>>
>>> The list of 'legacy schemes' is a red flag for me. By what criteria is
>>> inclusion in the list determined? Suppose the list needs to be
>>> changed, does that require a change to the HTML specification? What is
>>> it about 'mailto', really, that causes it to be treated differently
>>> from 'http'? The word 'core' doesn't explain much to me.
>>
>> Actually, it's not too difficult to explain. And 'mailto' is really at
>> the
>> core of it. If you use a 'traditional' email client, and you click on a
>> 'mailto' link on a Web page, then the browser makes sure this 'mailto'
>> URI/IRI is handed off to your email client, and the email client
>> creates a
>> new mail message for you and lets you edit it.
>>
>> These days however, webmail is being used more and more. What web mail
>> users would like to have is the same facility: You click on a 'mailto'
>> link, and a new email message is created by your webmail. It's easy for 
a
>> webmail service to provide an URI/IRI where the 'mailto' URI/IRI can be
>> added and the result creates the new email message that you were hoping
>> for. But there's a missing piece: How to get the 'mailto' into that
>> URI/IRI
>> automatically.
>>
>> I have to admit that personally, I'm not using webmail. But at least
>> to me,
>> the above scenario, and the need for some additional facility, is quite
>> evident. And we probably don't want to restrict this to 'mailto' only,
>> because we don't know how technology will evolve.
>>
>> I think once we can agree that there's a need, we can look at the
>> issues in
>> more detail. Would you agree with what I wrote above as a starting 
point?
>> Also, Julian, you seems to be very clearly opposed to the specific
>> proposed
>> solution, with some serious arguments, but do you actually agree that
>> there
>> is a need to be able to activate webmail with a 'mailto' link, and that
>> there may be similar needs for other URI/IRI schemes?
>>
>> As you are asking for a distinction with 'http', that's easy: Because
>> http
>> is already handled by the browser, there's at least currently no need 
for
>> such a thing as 'webhttp' (i.e. a single web site handling all of your
>> browsing activity). But that also may not be set in stone, it may be
>> possible that in the future, some users will view all their pages 
through
>> facebook, and others through tor :-(.
>>
>> Regards, Martin.
>>
>>
>>> A more conservative design would be to have a single new web: URI
>>> scheme with a subscheme registry (sort of link urn:), rather than lots
>>> of new URI schemes. This wouldn't allow registering behavior for
>>> mailto:, but might mean fewer surprises and less standards innovation.
>>>
>>> Not opposed, just confused. Someone has thought about this a lot, and
>>> I don't know what they've thought.
>>>
>>>> Best regards, Julian
>>>
>>>
>>
>
>
Received on Thursday, 19 January 2012 14:27:39 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 26 April 2012 12:48:44 GMT