Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-29 Thread Ian Hickson
On Fri, 29 Jul 2011, Takeshi Yoshino wrote:
 
 While conducting such experiments, user-agents are not standard 
 compliant. If W3C/WHATWG are confident that violating specs is the right 
 way to evolve specs, I'll stop arguing this. Yes, we'll make our 
 browsers standard non-compliant to seek the way to improve WebSocket.

I can't speak for the W3C, but yes, extensions to the standards are how we 
evolve the technology stack. As extensions are developed and adopted by 
browsers, the API spec will be updated accordingly. Updating the spec is a 
trivial matter.

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'



Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-27 Thread Takeshi Yoshino
Is new XHR spec going to make gzip mandatory for its underlying HTTP?

On Tue, Jul 26, 2011 at 06:05, Aryeh Gregor simetrical+...@gmail.comwrote:

 From the discussion here, it sounds like there are problems with
 WebSockets compression as currently defined.  If that's the case, it
 might be better for the IETF to just drop it from the protocol for now
 and leave it for a future version, but that's up to them.  As far as
 we're concerned, if the option is really a bad idea to start with, it
 might make sense for us to prohibit it rather than require it, but
 there's no reason at all we have to leave it optional for web browsers
 just because it's optional for other WebSockets implementations.


Regarding deflate-stream, I think prohibiting is better than requiring.

But I still don't understand the benefit of banning any extension other than
what specified in the API spec.

There are two different assertions made by W3C side.

(a) it's not acceptable to make support (== request) of good-compression
optional
(b) it's not acceptable to allow any other compression/extension than
specified in the API spec

(a) is supported by the discussion you and Anne made by using analogy with
HTTP. I may agree with this. (b) is what Hixie was asserting in the bug
entry. I'd like to see clear support for (b).

No one knows what kind of compression will be finally the win for WebSocket.
I'd like to see ideas about how the evolution of WebSocket will be like.
With (b), to experimentally implement some extension/compression not
specified in the API spec, we have to make our browser non-compliant with
W3C spec.

I'd suggest that, once better-deflate is ready by IETF, W3C uses text like 
the user agent MUST request better-deflate extension instead of JUST
better-deflate extension.

Thanks,
Takeshi


Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-27 Thread Anne van Kesteren
On Wed, 27 Jul 2011 03:35:03 -0700, Takeshi Yoshino tyosh...@google.com  
wrote:

Is new XHR spec going to make gzip mandatory for its underlying HTTP?


I do not think that analogy makes sense. The WebSocket protocol can only  
be used through the WebSocket API, HTTP is prevalent in more places.  
Having said that, XMLHttpRequest does place constraints on HTTP. E.g. it  
requires redirects to be followed, it does not expose 1xx responses, only  
works cross-origin in combination with CORS, etc.



--
Anne van Kesteren
http://annevankesteren.nl/



Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-27 Thread Takeshi Yoshino
On Thu, Jul 28, 2011 at 00:06, Anne van Kesteren ann...@opera.com wrote:

 On Wed, 27 Jul 2011 03:35:03 -0700, Takeshi Yoshino tyosh...@google.com
 wrote:

 Is new XHR spec going to make gzip mandatory for its underlying HTTP?


 I do not think that analogy makes sense. The WebSocket protocol can only be
 used through the WebSocket API, HTTP is prevalent in more places.


What do you mean by more places?


 Having said that, XMLHttpRequest does place constraints on HTTP. E.g. it
 requires redirects to be followed, it does not expose 1xx responses, only
 works cross-origin in combination with CORS, etc.


I agree that there're some constrains must be placed on underlying protocol
to make it useful/secure on browser.


Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-27 Thread Anne van Kesteren
On Wed, 27 Jul 2011 08:49:57 -0700, Takeshi Yoshino tyosh...@google.com  
wrote:

What do you mean by more places?


XMLHttpRequest is not the sole API for HTTP, there's also a, form,  
etc. So indicating what parts of the HTTP protocol are mandatory for  
browsers is not really in scope for XMLHttpRequest.



--
Anne van Kesteren
http://annevankesteren.nl/



Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-27 Thread Takeshi Yoshino
On Thu, Jul 28, 2011 at 02:03, Anne van Kesteren ann...@opera.com wrote:

 On Wed, 27 Jul 2011 08:49:57 -0700, Takeshi Yoshino tyosh...@google.com
 wrote:

 What do you mean by more places?


 XMLHttpRequest is not the sole API for HTTP, there's also a, form, etc.
 So indicating what parts of the HTTP protocol are mandatory for browsers is
 not really in scope for XMLHttpRequest.


So, let me correct my text by s/XHR/HTML5 http://www.w3.org/TR/html5//.


Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-27 Thread Anne van Kesteren
On Wed, 27 Jul 2011 11:04:09 -0700, Takeshi Yoshino tyosh...@google.com  
wrote:

So, let me correct my text by s/XHR/HTML5 http://www.w3.org/TR/html5//.


HTML5 is mostly transport-layer agnostic.

I am not sure why we are going through this theoretical side-quest on  
where we should state what browsers are required to implement from HTTP to  
function. The HTTP protocol has its own set of problems and this is all  
largely orthogonal to what we should do with the WebSocket protocol and  
API.


If you do not think this particular extension makes sense raise it as a  
last call issue with the WebSocket protocol and ask for the API to require  
implementations to not support it. Lets not meta-argue about this.



--
Anne van Kesteren
http://annevankesteren.nl/



Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-27 Thread イアンフェッティ
We are talking about it at IETF81 this week.

That said, I think either way browsers should not require deflate-stream. I
am hoping we can make forward progress on deflate-application-data (
http://tools.ietf.org/html/draft-tyoshino-hybi-websocket-perframe-deflate-01).
If we can get that through the process I could live with Chrome being
required to support that. As for the protocol doc, the protocol lists
deflate-stream as an example, not a requirement, so the mere fact that I
don't want to support that particular extension isn't necessarily the
strongest argument for taking it out of the protocol as the protocol doesn't
require that it be supported. The API should not require the support of that
particular extension either, as that extension is particularly bad.

-Ian

On Wed, Jul 27, 2011 at 11:11 AM, Anne van Kesteren ann...@opera.comwrote:

 On Wed, 27 Jul 2011 11:04:09 -0700, Takeshi Yoshino tyosh...@google.com
 wrote:

 So, let me correct my text by s/XHR/HTML5 http://www.w3.org/TR/html5//*
 *.


 HTML5 is mostly transport-layer agnostic.

 I am not sure why we are going through this theoretical side-quest on where
 we should state what browsers are required to implement from HTTP to
 function. The HTTP protocol has its own set of problems and this is all
 largely orthogonal to what we should do with the WebSocket protocol and API.

 If you do not think this particular extension makes sense raise it as a
 last call issue with the WebSocket protocol and ask for the API to require
 implementations to not support it. Lets not meta-argue about this.



 --
 Anne van Kesteren
 http://annevankesteren.nl/



Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-27 Thread James Robinson
On Wed, Jul 27, 2011 at 1:12 PM, Ian Fette (イアンフェッティ) ife...@google.comwrote:

 We are talking about it at IETF81 this week.

 That said, I think either way browsers should not require deflate-stream. I
 am hoping we can make forward progress on deflate-application-data (
 http://tools.ietf.org/html/draft-tyoshino-hybi-websocket-perframe-deflate-01).
 If we can get that through the process I could live with Chrome being
 required to support that. As for the protocol doc, the protocol lists
 deflate-stream as an example, not a requirement, so the mere fact that I
 don't want to support that particular extension isn't necessarily the
 strongest argument for taking it out of the protocol as the protocol doesn't
 require that it be supported. The API should not require the support of that
 particular extension either, as that extension is particularly bad.


Sounds like the consensus is to forbid this extension at the API layer,
then.

- James


 -Ian

 On Wed, Jul 27, 2011 at 11:11 AM, Anne van Kesteren ann...@opera.comwrote:

 On Wed, 27 Jul 2011 11:04:09 -0700, Takeshi Yoshino tyosh...@google.com
 wrote:

 So, let me correct my text by s/XHR/HTML5 http://www.w3.org/TR/html5//
 **.


 HTML5 is mostly transport-layer agnostic.

 I am not sure why we are going through this theoretical side-quest on
 where we should state what browsers are required to implement from HTTP to
 function. The HTTP protocol has its own set of problems and this is all
 largely orthogonal to what we should do with the WebSocket protocol and API.

 If you do not think this particular extension makes sense raise it as a
 last call issue with the WebSocket protocol and ask for the API to require
 implementations to not support it. Lets not meta-argue about this.



 --
 Anne van Kesteren
 http://annevankesteren.nl/





Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-27 Thread イアンフェッティ
I don't think we want to forbid any extensions. The whole point of
extensions is to allow people to do something that doesn't necessarily have
consensus by a broad enough group to be in the base protocol. That said, I
think a lot of people would be happier if deflate-stream were an independent
document as opposed to being the only extension included in the core
specification as a known extension.

-Ian

2011/7/27 James Robinson jam...@google.com

 On Wed, Jul 27, 2011 at 1:12 PM, Ian Fette (イアンフェッティ) 
 ife...@google.comwrote:

 We are talking about it at IETF81 this week.

 That said, I think either way browsers should not require deflate-stream.
 I am hoping we can make forward progress on deflate-application-data (
 http://tools.ietf.org/html/draft-tyoshino-hybi-websocket-perframe-deflate-01).
 If we can get that through the process I could live with Chrome being
 required to support that. As for the protocol doc, the protocol lists
 deflate-stream as an example, not a requirement, so the mere fact that I
 don't want to support that particular extension isn't necessarily the
 strongest argument for taking it out of the protocol as the protocol doesn't
 require that it be supported. The API should not require the support of that
 particular extension either, as that extension is particularly bad.


 Sounds like the consensus is to forbid this extension at the API layer,
 then.

 - James


 -Ian

 On Wed, Jul 27, 2011 at 11:11 AM, Anne van Kesteren ann...@opera.comwrote:

 On Wed, 27 Jul 2011 11:04:09 -0700, Takeshi Yoshino tyosh...@google.com
 wrote:

 So, let me correct my text by s/XHR/HTML5 http://www.w3.org/TR/html5/
 /**.


 HTML5 is mostly transport-layer agnostic.

 I am not sure why we are going through this theoretical side-quest on
 where we should state what browsers are required to implement from HTTP to
 function. The HTTP protocol has its own set of problems and this is all
 largely orthogonal to what we should do with the WebSocket protocol and API.

 If you do not think this particular extension makes sense raise it as a
 last call issue with the WebSocket protocol and ask for the API to require
 implementations to not support it. Lets not meta-argue about this.



 --
 Anne van Kesteren
 http://annevankesteren.nl/






Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-27 Thread James Robinson
On Wed, Jul 27, 2011 at 3:14 PM, Ian Fette (イアンフェッティ) ife...@google.comwrote:

 I don't think we want to forbid any extensions.


At the protocol level, sure. At the API level we have to pick which
functionality user agents are required to support and which they are
required not to support, having 'optional' stuff is not an option.  It
sounds like you are saying that deflate-stream is bad, so we should not have
it in the API.

- James


 The whole point of extensions is to allow people to do something that
 doesn't necessarily have consensus by a broad enough group to be in the base
 protocol. That said, I think a lot of people would be happier if
 deflate-stream were an independent document as opposed to being the only
 extension included in the core specification as a known extension.


 -Ian


 2011/7/27 James Robinson jam...@google.com

 On Wed, Jul 27, 2011 at 1:12 PM, Ian Fette (イアンフェッティ) 
 ife...@google.comwrote:

 We are talking about it at IETF81 this week.

 That said, I think either way browsers should not require deflate-stream.
 I am hoping we can make forward progress on deflate-application-data (
 http://tools.ietf.org/html/draft-tyoshino-hybi-websocket-perframe-deflate-01).
 If we can get that through the process I could live with Chrome being
 required to support that. As for the protocol doc, the protocol lists
 deflate-stream as an example, not a requirement, so the mere fact that I
 don't want to support that particular extension isn't necessarily the
 strongest argument for taking it out of the protocol as the protocol doesn't
 require that it be supported. The API should not require the support of that
 particular extension either, as that extension is particularly bad.


 Sounds like the consensus is to forbid this extension at the API layer,
 then.

 - James


 -Ian

 On Wed, Jul 27, 2011 at 11:11 AM, Anne van Kesteren ann...@opera.comwrote:

 On Wed, 27 Jul 2011 11:04:09 -0700, Takeshi Yoshino 
 tyosh...@google.com wrote:

 So, let me correct my text by s/XHR/HTML5 http://www.w3.org/TR/html5/
 /**.


 HTML5 is mostly transport-layer agnostic.

 I am not sure why we are going through this theoretical side-quest on
 where we should state what browsers are required to implement from HTTP to
 function. The HTTP protocol has its own set of problems and this is all
 largely orthogonal to what we should do with the WebSocket protocol and 
 API.

 If you do not think this particular extension makes sense raise it as a
 last call issue with the WebSocket protocol and ask for the API to require
 implementations to not support it. Lets not meta-argue about this.



 --
 Anne van Kesteren
 http://annevankesteren.nl/







Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-27 Thread イアンフェッティ
I agree we shouldn't require deflate-stream it in the API. I don't agree the
API should specify an exact set of extensions, as that would prevent any
future versions/developments. A minimum baseline would be reasonable though,
once we have that minimum baseline in place (e.g. a stable set of extensions
that are well tested, such as compression and multiplexing). I don't think
we should put the cart before the horse.

-Ian

2011/7/27 James Robinson jam...@google.com

 On Wed, Jul 27, 2011 at 3:14 PM, Ian Fette (イアンフェッティ) 
 ife...@google.comwrote:

 I don't think we want to forbid any extensions.


 At the protocol level, sure. At the API level we have to pick which
 functionality user agents are required to support and which they are
 required not to support, having 'optional' stuff is not an option.  It
 sounds like you are saying that deflate-stream is bad, so we should not have
 it in the API.

 - James


 The whole point of extensions is to allow people to do something that
 doesn't necessarily have consensus by a broad enough group to be in the base
 protocol. That said, I think a lot of people would be happier if
 deflate-stream were an independent document as opposed to being the only
 extension included in the core specification as a known extension.


 -Ian


 2011/7/27 James Robinson jam...@google.com

 On Wed, Jul 27, 2011 at 1:12 PM, Ian Fette (イアンフェッティ) ife...@google.com
  wrote:

 We are talking about it at IETF81 this week.

 That said, I think either way browsers should not require
 deflate-stream. I am hoping we can make forward progress on
 deflate-application-data (
 http://tools.ietf.org/html/draft-tyoshino-hybi-websocket-perframe-deflate-01).
 If we can get that through the process I could live with Chrome being
 required to support that. As for the protocol doc, the protocol lists
 deflate-stream as an example, not a requirement, so the mere fact that I
 don't want to support that particular extension isn't necessarily the
 strongest argument for taking it out of the protocol as the protocol 
 doesn't
 require that it be supported. The API should not require the support of 
 that
 particular extension either, as that extension is particularly bad.


 Sounds like the consensus is to forbid this extension at the API layer,
 then.

 - James


 -Ian

 On Wed, Jul 27, 2011 at 11:11 AM, Anne van Kesteren 
 ann...@opera.comwrote:

 On Wed, 27 Jul 2011 11:04:09 -0700, Takeshi Yoshino 
 tyosh...@google.com wrote:

 So, let me correct my text by s/XHR/HTML5 
 http://www.w3.org/TR/html5//**.


 HTML5 is mostly transport-layer agnostic.

 I am not sure why we are going through this theoretical side-quest on
 where we should state what browsers are required to implement from HTTP to
 function. The HTTP protocol has its own set of problems and this is all
 largely orthogonal to what we should do with the WebSocket protocol and 
 API.

 If you do not think this particular extension makes sense raise it as a
 last call issue with the WebSocket protocol and ask for the API to require
 implementations to not support it. Lets not meta-argue about this.



 --
 Anne van Kesteren
 http://annevankesteren.nl/








Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-27 Thread Anne van Kesteren
On Wed, 27 Jul 2011 15:31:28 -0700, Ian Fette (イアンフェッティ)  
ife...@google.com wrote:
I agree we shouldn't require deflate-stream it in the API. I don't agree  
the API should specify an exact set of extensions, as that would prevent  
any
future versions/developments. A minimum baseline would be reasonable  
though, once we have that minimum baseline in place (e.g. a stable set  
of extensions that are well tested, such as compression and  
multiplexing). I don't think we should put the cart before the horse.


The API specification is not frozen. Case in point: http://html5.org/r/6330


--
Anne van Kesteren
http://annevankesteren.nl/



Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-27 Thread Ian Hickson
On Wed, 27 Jul 2011, Ian Fette (�~B��~B��~C��~C~U�~B��~C~C�~C~F�~B�) wrote:

 I agree we shouldn't require deflate-stream it in the API. I don't agree 
 the API should specify an exact set of extensions, as that would prevent 
 any future versions/developments. A minimum baseline would be reasonable 
 though, once we have that minimum baseline in place (e.g. a stable set 
 of extensions that are well tested, such as compression and 
 multiplexing). I don't think we should put the cart before the horse.

As soon as there's a feature that browsers are to implement, we would 
update the WebSockets spec to list it as a requirement.

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-27 Thread Greg Wilkins
On 27 July 2011 20:35, Takeshi Yoshino tyosh...@google.com wrote:
 (a) it's not acceptable to make support (== request) of good-compression
 optional

I understand the desire to make good compression universal, but I'm
not sure that making it a required part of the specification is the
way to go.

 (b) it's not acceptable to allow any other compression/extension than
 specified in the API spec

So long as the selection of extensions is essentially transparent to
the application using the API, then the implementation should be free
to use extensions.   If a mux extension is developed that either
includes it's own compression or works better with some alternative
compression, then we don't want to stop browsers from adopting that
extension because it would mean that they are non compliant with the
API specification.

So isn't there a compromise, of coming up with words that express that
browsers SHOULD implement and some set of extensions, but allow
user-agents to use other extensions without being called non
compliant.


regards



Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-26 Thread Arthur Barstow

On 7/25/11 5:05 PM, ext Aryeh Gregor wrote:

 From the discussion here, it sounds like there are problems with
WebSockets compression as currently defined.


Yes, this is what I have concluded too (and if we are wrong, I would 
appreciate it if someone on the hybi list would please clarify).



If that's the case, it
might be better for the IETF to just drop it from the protocol for now
and leave it for a future version, but that's up to them.


When hybi agrees on this issue, I would appreciate it if someone would 
update 12917 http://www.w3.org/Bugs/Public/show_bug.cgi?id=12917 
and/or ping public-webapps.


-AB




Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-25 Thread Aryeh Gregor
On Thu, Jul 21, 2011 at 1:02 PM, Adrian Bateman adria...@microsoft.com wrote:
 For platform features that directly affect web developers' pages that might
 sometimes be true. However, compression is also optional in HTTP and it
 doesn't appear to have caused problems or made some sites work and others
 not based on some dominant implementation.

Do you think it would be feasible in practice for a mainstream web
browser to not support HTTP compression?  For instance, if Internet
Explorer removed support for it, would you expect to get a sufficient
number of bug reports that you'd be forced to re-add support?  If so,
then HTTP compression is in practice mandatory for web browsers, but
optional for web servers.  This is exactly the state of affairs
proposed for WebSockets compression.



RE: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-25 Thread Adrian Bateman
On Monday, July 25, 2011 1:32 PM, Aryeh Gregor wrote:
 On Thu, Jul 21, 2011 at 1:02 PM, Adrian Bateman adria...@microsoft.com 
 wrote:
  For platform features that directly affect web developers' pages that might
  sometimes be true. However, compression is also optional in HTTP and it
  doesn't appear to have caused problems or made some sites work and others
  not based on some dominant implementation.

 Do you think it would be feasible in practice for a mainstream web
 browser to not support HTTP compression?  For instance, if Internet
 Explorer removed support for it, would you expect to get a sufficient
 number of bug reports that you'd be forced to re-add support?  If so,
 then HTTP compression is in practice mandatory for web browsers, but
 optional for web servers.  This is exactly the state of affairs
 proposed for WebSockets compression.

First, I don't think that's the same thing at all. Second, the IETF HyBi working
group has asked members of this working group for Last Call feedback. If you
think the protocol has the wrong mix of required/optional features then you
should provide that feedback through the requested channel.


Adrian.



Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-25 Thread Aryeh Gregor
On Mon, Jul 25, 2011 at 4:58 PM, Adrian Bateman adria...@microsoft.com wrote:
 First, I don't think that's the same thing at all.

Why not?

 Second, the IETF HyBi working
 group has asked members of this working group for Last Call feedback. If you
 think the protocol has the wrong mix of required/optional features then you
 should provide that feedback through the requested channel.

I'm saying that it would be perfectly acceptable for a feature to be
optional on the protocol level (what the IETF specifies) but mandatory
for web browsers (what WebApps specifies).  If HTML5 were to require
that conforming user-agents must support HTTP compression, for the
sake of argument, that would not contradict the RFCs that make it
optional.  An HTTP client that didn't support compression would be a
conforming HTTP client but a non-conforming HTML5 user agent.  There's
nothing wrong with that: specifications are supposed to add
requirements beyond the specs they normatively reference.  Thus this
is a question for us, not the IETF.

From the discussion here, it sounds like there are problems with
WebSockets compression as currently defined.  If that's the case, it
might be better for the IETF to just drop it from the protocol for now
and leave it for a future version, but that's up to them.  As far as
we're concerned, if the option is really a bad idea to start with, it
might make sense for us to prohibit it rather than require it, but
there's no reason at all we have to leave it optional for web browsers
just because it's optional for other WebSockets implementations.



Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-23 Thread Takeshi Yoshino
Resending. I've made mistake in processing public-webapps@w3.org confirmation
page.

On Fri, Jul 22, 2011 at 19:45, Takeshi Yoshino tyosh...@google.com wrote:

 On Fri, Jul 22, 2011 at 18:54, Anne van Kesteren ann...@opera.com wrote:

 On Fri, 22 Jul 2011 07:03:34 +0200, Takeshi Yoshino tyosh...@google.com
 wrote:

 Think of these facts, the only dominant implementation concern I can
 come up with for WebSocket compression is that big service provides may take
 an aggressive policy that they require users to use only WebSocket client
 with compression capability to reduce bandwidth. As a result clients with no
 compression capability may, in effect, be kicked out of WebSocket world.

 I can understand that concern. Is this true for the HTTP world? I.e.
 clients that send Accept-Encoding: \r\n cannot live?


 Yes. Optional features for browsers do not work. For servers it is fine if
 they do not support compression or whatnot, but browsers pretty much need to
 align on feature set.


 In summary, your point seems to be that we must choose feature set that is
 considered to be taken by majority as optimal like HTTP/gzip, and ask
 browsers to support that by specifying it the W3C spec (*). I see that. It
 might make sense. However deflate-stream is not yet considered as the
 optimal choice in the HyBi WG and we're trying to introduce better one. Even
 some are doubting if it's worth using deflate-stream compared to identity
 stream.

 Requiring all browsers request (== implement) deflate-stream can be asking
 everyone to do thrown-away work as a result. Is this acceptable?

 Based on W3C's stance (*) and IETF's stance, the only landing point is
 initially enforcing browsers to use identify encoding except for
 experimenting new compression, and when IETF provides new compression
 extension good enough to recommend, update the API spec to switch to that.

 Takeshi




Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-23 Thread Greg Wilkins
On 22 July 2011 03:16, Anne van Kesteren ann...@opera.com wrote:
 On Thu, 21 Jul 2011 19:02:31 +0200, Adrian Bateman adria...@microsoft.com
 wrote:

 For platform features that directly affect web developers' pages that
 might sometimes be true. However, compression is also optional in HTTP and
 it
 doesn't appear to have caused problems or made some sites work and others
 not based on some dominant implementation.

 Actually it has. You are pretty required to support it these days and you
 better be sure you Accept-Encoding header is formatted consistently.

What is the evidence of that?

Gzip encoding is optional in most java servlet containers, as it is
implemented by a Filter that the application must configure.I've
never heard of an application not working with a client because it did
not have compression configured.

Note that I'm a bit confused by what is intended by mandatory in this
context.   Is it intended that it be mandatory that browsers only
accept connections with deflate-stream, or is it only mandatory that
they request that extension, but can accept connections without
compression?

regards




Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-22 Thread Anne van Kesteren
On Fri, 22 Jul 2011 07:03:34 +0200, Takeshi Yoshino tyosh...@google.com  
wrote:
Think of these facts, the only dominant implementation concern I can  
come up with for WebSocket compression is that big service provides may  
take an aggressive policy that they require users to use only WebSocket  
client with compression capability to reduce bandwidth. As a result  
clients with no

compression capability may, in effect, be kicked out of WebSocket world.

I can understand that concern. Is this true for the HTTP world? I.e.  
clients that send Accept-Encoding: \r\n cannot live?


Yes. Optional features for browsers do not work. For servers it is fine if  
they do not support compression or whatnot, but browsers pretty much need  
to align on feature set.



--
Anne van Kesteren
http://annevankesteren.nl/



Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-21 Thread Arthur Barstow
Bug 12917 [1] has been discussed in at least bugzilla as well as e-mail 
including this thread started by Adrian (Hixie's follow-up is [2]) and 
Adrian's general Web Sockets LC thread [3].


This bug is currently resolved as WontFix and this resolution is 
supported by at least Hixie and Jonas. Adrian, Takeshi and Greg have 
argued against this resolution (i.e. they do not support deflate-stream 
being a mandatory extension in the API).


What do others (Anne?, Maciej?, ...) think about this issue?

Given the Protocol is now in LC review, it seems relatively important to 
align the API and Protocol.


-Art Barstow

[1] http://www.w3.org/Bugs/Public/show_bug.cgi?id=12917
[2] http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/0242.html
[3] http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/0193.html

On 7/8/11 5:44 PM, ext Adrian Bateman wrote:

On Friday, July 08, 2011 1:12 PM, Ian Hickson wrote:

12917 - deflate-stream should be an optional extension when

establishing a connection

Resolved, WontFix
MICROSOFT PROPOSAL: We strongly disagree with the API spec overruling

the protocol spec

on what is optional in the protocol. The API spec should not

normatively mention specific

extensions. References to deflate-stream should be informative and

only provided as examples.

I strongly disagree. We must have interoperability amongst browser user
agents. Having some support compression and others not would lead to
authoring mistakes and will force us into either having or not having
compression based on how big sites first get this wrong.

It's fine to disagree, but you should disagree in the IETF working group where
this is made optional and not in the Web API. There will be other users of
WebSockets outside the browser and by implementing the protocol they won't be
required to implement this extension. In addition, there are still discussions
about whether this is an appropriate mechanism for compression since it requires
intermediaries to decompress the whole stream if they want to review messages.
There are still proposals to remove deflate-stream from the spec.

We think there are legitimate cases for implementing the protocol without
compression. That aside, however, we strongly disagree with one consumer of a
protocol, the Web API, making decisions to override the requirements of the
protocol spec.

Adrian.





Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-21 Thread Anne van Kesteren
On Thu, 21 Jul 2011 17:26:21 +0200, Arthur Barstow art.bars...@nokia.com  
wrote:

What do others (Anne?, Maciej?, ...) think about this issue?


I don't know enough about the WebSocket protocol, but optional web  
platform features suck. They will become mandatory following the typical  
dominant implementation does it and we want to work on the same sites  
scenario.



--
Anne van Kesteren
http://annevankesteren.nl/



Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-21 Thread Ian Hickson
On Thu, 21 Jul 2011, Arthur Barstow wrote:
 
 Given the Protocol is now in LC review, it seems relatively important to 
 align the API and Protocol.

The API and the protocal _are_ aligned. The protocol asks for the consumer 
to provide a list of extensions. Nothing in the protocol requires that 
this list of extensions be configurable by the consumer's user.

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'



RE: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-21 Thread Adrian Bateman
On Thursday, July 21, 2011 8:31 AM, Anne van Kesteren wrote:
 On Thu, 21 Jul 2011 17:26:21 +0200, Arthur Barstow art.bars...@nokia.com
 wrote:
  What do others (Anne?, Maciej?, ...) think about this issue?

 I don't know enough about the WebSocket protocol, but optional web  
 platform features suck. They will become mandatory following the typical  
 dominant implementation does it and we want to work on the same sites  
 scenario.

For platform features that directly affect web developers' pages that might
sometimes be true. However, compression is also optional in HTTP and it
doesn't appear to have caused problems or made some sites work and others
not based on some dominant implementation.

There is still discussion in the IETF about whether stream or frame based
compression is best. That's the right place to have that discussion. There
are also implementers that want extensions for other things, such as
multiplexing. This is a protocol layer handshake below the API and the API
simply provides information about what was agreed.

Adrian.


Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-21 Thread Anne van Kesteren
On Thu, 21 Jul 2011 19:02:31 +0200, Adrian Bateman  
adria...@microsoft.com wrote:
For platform features that directly affect web developers' pages that  
might sometimes be true. However, compression is also optional in HTTP  
and it

doesn't appear to have caused problems or made some sites work and others
not based on some dominant implementation.


Actually it has. You are pretty required to support it these days and you  
better be sure you Accept-Encoding header is formatted consistently.



--
Anne van Kesteren
http://annevankesteren.nl/



RE: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-21 Thread Ian Hickson
On Thu, 21 Jul 2011, Adrian Bateman wrote:
 
 For platform features that directly affect web developers' pages that 
 might sometimes be true. However, compression is also optional in HTTP 
 and it doesn't appear to have caused problems or made some sites work 
 and others not based on some dominant implementation.

Optional features in HTTP have caused no end of trouble and are amongst 
the many reasons I avoid optional features so much.

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'



RE: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-21 Thread Adrian Bateman
On Thursday, July 21, 2011 12:33 PM, Ian Hickson wrote:
 On Thu, 21 Jul 2011, Adrian Bateman wrote:
  
  For platform features that directly affect web developers' pages that 
  might sometimes be true. However, compression is also optional in HTTP 
  and it doesn't appear to have caused problems or made some sites work 
  and others not based on some dominant implementation.

 Optional features in HTTP have caused no end of trouble and are amongst 
 the many reasons I avoid optional features so much.

What specific problems have been caused by the existence of extensions
(separate from whether or not extensions have been well defined) and what API
consequences have there been i.e. what changes to web APIs have you made
because of this?

It seems to me that HTTP has been wildly successful and its extensibility is
a large part of that.

In any case, that's a distraction - the W3C Web API should specify the things
needed to project the protocol into the web developer's hands and no more.
Discussions of the protocol, which is in Last Call, should be made in the
appropriate working group at the IETF. There's no need to profile the protocol
in the W3C API spec.

Adrian.



Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-21 Thread イアンフェッティ
Ian,

I understand this point of view. That said, there is a lot of disagreement
in the IETF WG about deflate-stream. The extension basically breaks all
other extensions, framing, etc. It's a bit of a mess and a lot of us want to
just yank it out entirely. There was a much better proposal by yoshino-san
(deflate-frame) that basically did compression but still properly framed the
compressed result. I think that at least in Chrome we are hoping
deflate-frame will take off. That will be in a separate document though as
the current protocol doc is in last call, and you are undoubtedly familiar
with the logistical considerations of such things.

-Ian

On Thu, Jul 21, 2011 at 12:33 PM, Ian Hickson i...@hixie.ch wrote:

 On Thu, 21 Jul 2011, Adrian Bateman wrote:
 
  For platform features that directly affect web developers' pages that
  might sometimes be true. However, compression is also optional in HTTP
  and it doesn't appear to have caused problems or made some sites work
  and others not based on some dominant implementation.

 Optional features in HTTP have caused no end of trouble and are amongst
 the many reasons I avoid optional features so much.

 --
 Ian Hickson   U+1047E)\._.,--,'``.fL
 http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
 Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'




Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-21 Thread Ian Hickson
On Thu, 21 Jul 2011, Ian Fette (�~B��~B��~C��~C~U�~B��~C~C�~C~F�~B�) wrote:
 
 I understand this point of view. That said, there is a lot of 
 disagreement in the IETF WG about deflate-stream. The extension 
 basically breaks all other extensions, framing, etc. It's a bit of a 
 mess and a lot of us want to just yank it out entirely. There was a much 
 better proposal by yoshino-san (deflate-frame) that basically did 
 compression but still properly framed the compressed result. I think 
 that at least in Chrome we are hoping deflate-frame will take off. That 
 will be in a separate document though as the current protocol doc is in 
 last call, and you are undoubtedly familiar with the logistical 
 considerations of such things.

I've been assuming that the Web Socket protocol spec was what UAs wanted 
to implement. If it's not, then that's a bigger problem.

I don't mind if we turn specific extensions on or off. I just don't think 
it should be optional. If UAs do not want to implement what the protocol 
spec says, I'm equally happy for the API spec to just disallow that 
extension.

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

RE: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-21 Thread Ian Hickson
On Thu, 21 Jul 2011, Adrian Bateman wrote:
 On Thursday, July 21, 2011 12:33 PM, Ian Hickson wrote:
  On Thu, 21 Jul 2011, Adrian Bateman wrote:
   
   For platform features that directly affect web developers' pages 
   that might sometimes be true. However, compression is also optional 
   in HTTP and it doesn't appear to have caused problems or made some 
   sites work and others not based on some dominant implementation.
 
  Optional features in HTTP have caused no end of trouble and are 
  amongst the many reasons I avoid optional features so much.
 
 What specific problems have been caused by the existence of extensions 
 (separate from whether or not extensions have been well defined) and 
 what API consequences have there been i.e. what changes to web APIs have 
 you made because of this?

Content-Type is one big one. It's de-facto optional status (mostly 
driven by IE's sniffing behaviour) has had huge security implications, has 
resulted in complicated UA behaviours now being required, has resulted in 
complicated semantics in HTML with respect to when types are honoured and 
when they are not, etc.


 It seems to me that HTTP has been wildly successful and its 
 extensibility is a large part of that.

HTTP has been successful despite being poorly specified, not because of 
it. (Same with HTML.)


 In any case, that's a distraction - the W3C Web API should specify the 
 things needed to project the protocol into the web developer's hands and 
 no more. Discussions of the protocol, which is in Last Call, should be 
 made in the appropriate working group at the IETF. There's no need to 
 profile the protocol in the W3C API spec.

If the IETF won't do the job right, we have to.

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'



Re: [websockets] Making optional extensions mandatory in the API (was RE: Getting WebSockets API to Last Call)

2011-07-08 Thread Ian Hickson
On Fri, 8 Jul 2011, Adrian Bateman wrote:
  
  I strongly disagree. We must have interoperability amongst browser 
  user agents. Having some support compression and others not would lead 
  to authoring mistakes and will force us into either having or not 
  having compression based on how big sites first get this wrong.
 
 It's fine to disagree, but you should disagree in the IETF working group 
 where this is made optional and not in the Web API. There will be other 
 users of WebSockets outside the browser and by implementing the protocol 
 they won't be required to implement this extension.

Non-browser clients don't have the same dynamics, so it makes sense for 
them to be allowed to not implement compression. Non-browser clients 
aren't going to have the market impact of browser clients.

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'