On 11/13/11 3:18 PM, Paul Kinlan wrote:
On Sun, Nov 13, 2011 at 10:35 PM, Charles Pritchard <ch...@jumis.com
<mailto:ch...@jumis.com>> wrote:
On 11/10/11 3:10 PM, Greg Billock wrote:
On Thu, Nov 10, 2011 at 8:15 AM, Rich Tibbett <ri...@opera.com
<mailto:ri...@opera.com>> wrote:
Dominique Hazael-Massieux wrote:
Le jeudi 10 novembre 2011 à 16:27 +0100, Rich Tibbett a
écrit :
Hi
a.) to register a URL endpoint as an intent provider
the user must visit
a web page (presumably hosted by the target device
itself) and capture
the intent registration from that page before that
intent provider can
be used within the UA.
My understanding is that this is not a MUST at all, but
the way
Web-based services can be added by a user.
Yes. The API as currently proposed has a way for web apps to
register services, but it is not intended to limit the ability of
the user agent to register services by other methods. If you look
at our Chromium commits, we're experimenting with ways to
register services through installation of web apps, for instance.
Registering handlers through local network discovery or
interaction with the host OS also seems like a promising direction.
Has there been further movement toward the existing
register*Handler APIs:
http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#custom-handlers
I've practiced with those methods and from a usability
perspective, I'm starting to think those html5 methods are not
going to be worth using.
Whatever the end-case, Web Intents seems to be where the UI is
going to evolve.
I understand that from the Chromium-OS side, Web Intents is likely
to take over the fileHandlers permission.
That tells me that registerContentHandler is not going to happen.
The intent model can support "view" with the associated MIME-type
which is what regsiterContentHandler does. The point we need to
discuss is registerContentHandler will implicitly start when a file is
loaded with that mime-type, so should a UA initiate "startActivity"
implicitly with a "view", the detected mime type and the file data?
Seems like the UA gets to make all of the decisions here.
I think the disposition=inline vs. [a download] really sets up the
intent well. If the anchor is marked for inline, it makes a lot of sense
that the UA would check on its registered intents for handling it
implicitly. There's no reason to push authors into triggering intents
when the user can setup those preferences on their own.
PDF is a good model for this one... it's a "view" situation and it's
likely to have only one viewer, and it's also likely to be viewed
inline. Mozilla's work on PDF.js is certainly showing the power of web
app registration for this complex file format. I know if I register
pdf.js as my PDF viewer, that's what I want to pop up. I also know that,
if I'm running Chrome, I want, somewhere, the option of switching
between the Foxit and Mozilla viewers.
I'm not really happy with the Chrome interface for adding and removing
registered protocol handlers. It's so buried, nobody is going to know
about it. Web Intents really fills that gap of "Open With..." and
context menus. I find the existing context-menu solution distasteful: a
background page just so I can register a link? ugh!#$.
Does anybody use registerProtocolHandler in any real sense? Is
registerContentHandler needed? It seems like Web Intents is an evolution
on the concept. I don't think we're going to see convergence on those
old methods. I'm ready to leave them both in favor of a yet-to-be
announced candidate (web intents).
URIs are better than protocols, and Intents are better than content
handlers. In my opinion.
Thanks for the quick reply and good to ensure this stuff gets
captured in the TF charter.
As Chaals said, let's get going on this. The concept of Web
Intents is great and we're not married to any particular
proposal at this point. We can see if it works for our UCs
when the task force kicks off.
Clarke Stevens asked about a discovery mechanism whereby a client
page discovers a set of local network devices which is then
updated by an event driven mechanism. As currently sketched out,
there's room in our web intents proposal for the return of a
MessagePort for persistent communication. The proposal doesn't
focus on that problem, though. It is aimed more at an RPC-style
request/response interaction paradigm. Web Intents, the way we're
currently thinking about it, has a lot to do with user consent to
the connection between the applications. When there's a
persistent connection, that consent model starts to break down.
That said, there are definitely use cases for which establishing
a persistent connection is appropriate. I'm eager to discuss how
to best handle those cases as the TF starts up. I think that'll
be a key focus of refinement.
Hixie made a good point when he asked us to review Web Messaging.
Intents as it's implemented by Google -- and it's already
happening -- Google started this push awhile ago and I get the
impression that Paul Kinlan has high level support -- intents as
it's implemented is built upon Web Messaging and postMessage dynamics.
postMessage has MessagePort and Transferable arrays (thank
goodness). I believe those semantics already solve issues of RPC,
bi-di and zero-copy. They've had years of work put into them to
get to this place of consensus.
timeless brought up some excellent corner cases that I hope are
discussed soon in the upcoming TF mailing list. That stated, I
think building Intents atop postMessage is the right move. Web
Messaging has already solved many of the difficult problems.
They have also introduced a lot of problems. The RPC style isn't
easily supported over MessageChannel and from the developer side of
the things the less they have to do the less chance there is for error
(i.e, removing the need to close channels, removing the need to know
if the response should be 1 or n responses) and the
higher likelihood of adoption. All being said, there will be a class
of applications where that channel based communication with it's own
protocols will be needed and we should discuss that (it was something
we have talked about by passing a message port as the data with the
intent), but the model we have now feels very good when developing
against it.
As far as I can tell, the model doesn't prohibit, nor does it encourage,
the passing of MessageChannel.
It's very much made for an RPC style of communication, but if the
message being passed back is a channel, well that's just fine.
Am I mistaken? What I'm seeing is that we get MessageChannel for free,
and there's no need to specify further.
Individual Intent authors can do that themselves.
As far as I can tell, Web Intents adds another high level
semantic: the "Intent" semantic. I've proposed previously that
intents could work over HTTP in addition to the browser and OS
interoperability, simply by adding a "Web-Intent(s):" header onto
Web Sockets and HTTP RPC requests.
It is interesting, some of the applications I have built have had to
read the state in JS and then send the data to the server via XHR,
removing this step would ease the pain for developers and can make it
a more seamless experience for the user. It is something we should
discuss further IMO.
Even the MessageChannel concept can work over Web Sockets. So can
postMessage ( ArrayBuffer ) -- once the server has received the
ArrayBuffer, the client can clear it from RAM.
As developers, we can often make things seamless for the user. The thing
is, I think it can be fairly seamless for the developer as well.
A Web-Intent may have a mime-type, it'll have some kind of message
body, perhaps some arguments -- the one thing it adds onto
existing semantics is yet-another text field describing the
intent. That extra dimension of information seems sufficient to
handle many use cases -- yet to be discussed on the Web Intents TF
list.
Can't wait.
Well, if it's this easy, then I guess I'll find something more difficult
to discuss ;-)
Onward to "discovery" intents.
-Charles