- From: Glenn Maynard <glenn@zewt.org>
- Date: Tue, 26 Feb 2013 19:10:38 -0600
- To: Anne van Kesteren <annevk@annevk.nl>
- Cc: Aaron Colwell <acolwell@chromium.org>, WebApps WG <public-webapps@w3.org>
- Message-ID: <CABirCh8xuOyPb_o+kOY6Zu=NdGGDFw9+GDzowe4+zh379+y01Q@mail.gmail.com>
On Tue, Feb 26, 2013 at 11:12 AM, Anne van Kesteren <annevk@annevk.nl>wrote: > Okay, so we want to keep something like Stream around. Do you need a > Blob without size kind of object? E.g. that would mean it cannot have > "chunked" semantics (the stuff you read is thrown away), which is > something we probably want for XMLHttpRequest. It seems like these are > the types we've been discussing: > > * Blob fixed in size > * Blob that grows over time > * Blob that grows over time and shrinks from the start on read > For taking an XHR response and handing it off to some native API, the Stream interface does seem like the right abstraction: it represents a logical stream, not a block of data like Blob. The only parts of the Streams API needed to make this work are the simple Stream interface (which is nothing but an object with a MIME type) and createObjectURL support for it. You don't need StreamReader or StreamBuilder. You'd want XHR itself to behave a bit differently if it returns a Stream, though. It should never enter LOADING, instead finishing as soon as headers complete, as if XHR hands off the file descriptor to the stream object as soon as the headers finish. That said, I'm not fully convinced about the overall picture of Stream: - What happens if you start a video stream, then the user pauses the video and goes away? The browser (or server) will want to shut down the TCP stream and reopen it again if the user unpauses a day later. If the stream comes from an XHR POST, it's not allowed to do that. Similarly, you have to deal with restarting the stream after a dropped connection. - What about seekable streams (eg. streaming large but static videos, rather than a live feed)? You can't do it, for the same reason. If you structure services with the GET, you don't have any of these problems; the browser can stop, restart and seek the request whenever it wants; and we don't need any new APIs. What are the actual use cases for POST (or other custom XHR-based requests) that are so hard to structure as a GET (or an initial authenticating POST that replies with a GET URL) to warrant all this? -- Glenn Maynard
Received on Wednesday, 27 February 2013 01:11:06 UTC