On 9/20/2011 10:27 AM, Marcos Caceres wrote:
On Tuesday, September 20, 2011 at 7:17 PM, Ian Fette (イアンフェッティ) wrote:
While issuing a ton of patent exclusions for something like this would be 
rather poor, I would frankly rather have that then a spec that doesn't get any 
attention from a party that's clearly relevant only to have patents come up 
/after/ the spec is published and implemented.
  Agreed, but for that we need to go through rechartering this group to include 
the new deliverable (i.e., to give everyone a fair chance to say if they are 
willing to give up their IPR around this). I think your concerns are fair.

While all that gets worked out, it'd be great to have active participation on public-webapps from Microsoft and occasional input from the HTML5 Editor and assistant.

I'd like to see navigator.registerContentHandler integrated into Web Intents. window.navigator.startActivity seems like a solid addition to HTML5 NavigatorContentUtils.
There is some overlap with File API FileSaver.

I understand that Web Intents has been in development for some time: I'd like to deconstruct and reconstruct the components to get a clear idea of side effects.

Web Intents proposes three items: registration, invocation and schema URLs.

Invocation:

Invocation seems straightforward with startActivity. We could use FileSaver, but
MIME does not have the added "schema URL" semantic that Intents adds.

Example:
var intent = new Intent("http://webintents.org/share";, "text/uri-list", "http://news.bbc.co.uk";);
var saver =  new FileSaver(blob, "filename.ext");

FileSaver requires blob encapsulation.
Blob encapsulation is a bit of extra-work when working with array buffers, and strings, and the like.

FileSaver Progress events are handy:
http://www.w3.org/TR/file-writer-api/#the-filesaver-interface



Schema URLs:

Web Intents proposes a new "type" of information, an intent keyword, essentially. There are a handful of common intents defined in the proposal, all of them prefixed with "http://webintents.org/";.

I'd like to see that prefix stripped. Given that Web Intents -is- defining the standard, I do not see a good reason for the extra baggage.
I'd prefer  keyword | uri as option, instead of just URI.

Thus: var intent = new Intent('share', 'text/uri-list', 'http://w3c.org'); // Much shorter.

Intents does seem to be something that can work for RPC, in addition to current HTTP headers. I could easily see this working across web sockets as well as it works through intra-browser postMessage.

A "Web-Intent" HTTP header might prove valuable.
A URL might register itself to accept POST and Web Sockets submissions.

Consider a header of:
Web-Intent: share

A supporting server could then process that data server-side.



Registration:

Register Content/Protocol Handler: Google has limited support for these APIs, protocol handlers, prefixed with "web+" are rarely used.
http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#custom-handlers
http://code.google.com/p/chromium/issues/detail?id=11359

Web Intents-style is easy to understand, and seems to be more of a priority:
http://code.google.com/p/chromium/issues/detail?id=90458
http://code.google.com/apis/picker/docs/

Mozilla proposes registration in application manifest files:
https://github.com/mozilla/openwebapps/blob/master/docs/ACTIVITIES.md

Google has a registration technique for Chrome OS, for handling file types by file extension.
It is limited to packaged, locally installed applications.
http://code.google.com/chrome/extensions/fileBrowserHandler.html

Permissions: Mozilla has expressed concerns about registerPermission APIs, having used a synchronous variant for extensions.
http://dev.w3.org/2009/dap/perms/FeaturePermissions.html


TL;DR:

FileSaver and Intent have very similar use cases -- it's quite reasonable that a FileSaver would run an Intent session on the UA, allowing a user to "save" their file to various registered targets. Look for harmony.

Intent schema URLs seem fine, but there's no reason to have "http://webintents.org/"; as a standard prefix, strip the prefix there. Consider HTTP 1.0/Web Sockets support, as an addition to the scope.

Registration is tricky. Manifest files seem like a solid place to start. registerHandler seems like a good addition to registerContentHandler and registerProtocolHandler.


Reply via email to