- From: Rich Tibbett <richt@opera.com>
- Date: Tue, 22 Nov 2011 15:47:17 +0100
- To: Charles Pritchard <chuck@jumis.com>
- CC: Paul Kinlan <paulkinlan@google.com>, timeless <timeless@gmail.com>, WebIntents <public-web-intents@w3.org>, Greg Billock <gbillock@google.com>
On Fri, Nov 18, 2011 at 2:42 PM, Charles Pritchard <chuck@jumis.com> wrote: > ** > Thanks for exploring this complex use case. This is an edge case, and > I appreciate you taking the time. > > Here's my understanding: > > The following sends an entangled port through intents. The client can > then dispatch a Transferable ArrayBuffer. > > var channel = new MessageChannel(); > > var intent = new Intent("http://webintents.org/transfer", > "application/octet-stream+myprotocol", channel.port2); > channel.port1.onmessage = function (event) { > if(event.data == "OK") > channel.port1.postMessage("DATA", [myArrayBuffer], event.origin); > }; > window.navigator.startActivity(intent); > > This extra work is to ensure the ArrayBuffer is neutered: > http://www.khronos.org/registry/typedarray/specs/latest/#9.2 So my understanding is that we'd be better of with an optional sequence<Transferable> parameter in the Intent constructor rather than making this behavior specific to a 'transfer' action as suggested above. I don't see why the target Intent should need to be 'http://webintents.org/transfer'. Presumably, you might want to transfer objects in combination with any other intent. For example, a valid example for setting up the MessageChannel (by transferring channel.port2 to the Intent Handler) above could just be: var intent = new Intent("http://webintents.org/share", "text/uri-list", "http://foo.com/bar", [channel.port2]); How exactly the transferable objects can be captured by the intent handler page should be discussed. I'd imagine the port2 in the transferable sequence I passed above would be available at something like window.intent.transferData[0]. - Rich > > > -Charles > > > On 11/18/11 1:52 PM, Paul Kinlan wrote: > > The Pseudo code you have is nearly exactly how we envisaged it. We just > passed the port, then the data over the port as that could be part of the > lower level protocol (the 'myprotocol' bit). > > > P > > On Fri, Nov 18, 2011 at 10:40 PM, Charles Pritchard <chuck@jumis.com>wrote: > >> Carrying this thread over to the web intents mailing list. >> >> The current issue I'm asking about, in this thread, is how we might >> present the postMessage transfer semantic in Web Intents. >> >> Web Intents currently works much like postMessage(message). The >> Transferable semantic is relatively new to Web Messaging >> and allows the transfer of Array Buffer objects and MessagePorts. >> >> In pseudo-code: >> >> var intent = new Intent("http://webintents.org/transfer", >> "application/octet-stream+myprotocol", >> [messagePort, arrayBuffer]); >> > > >
Received on Tuesday, 22 November 2011 14:48:05 UTC