Re: Extra Connection Support Proposal

2008-02-22 Thread Kris Zyp



The problem has always existed, though.
The problem has always existed, but having long-lived responses for the 
purpose of the receiving messages from the server massively exacerbates the 
problem. Most responses are intended to be as short-lived as possible. Also, 
in the scenario you mentioned, if you click a link on a page with downloads 
happening, the browser can abort responses for images that are being 
downloaded, which immediately frees up connections. On the otherhand, if a 
couple connections are indefinitely open, and you open another tab that 
needs a connection, the browsers hangs... indefinitely.
Kris 





Progress events progress...

2008-02-22 Thread Charles McCathieNevile


Finally...

http://dev.w3.org/cvsweb/~checkout~/2006/webapi/progress/Progress.html?rev=1.20  
is a new Editor's draft, which should be ready to publish as a Working  
Draft, and hopefully not generate any comments so we can take it to last  
call about a month after that :)


I have resolved all outstanding issues, as per  
http://www.w3.org/2006/webapi/track/products/12 which just shows there are  
none left, not what they were :( But they are linked from the change  
history in the draft, with their resolution. So it should be good to go.  
If there are things that are still not sorted, please let me know...


Otherwise, enjoy...

cheers

Chaals

--
Charles McCathieNevile  Opera Software, Standards Group
je parle français -- hablo español -- jeg lærer norsk
http://my.opera.com/chaals   Try Opera 9.5: http://snapshot.opera.com



Re: Progress events progress...

2008-02-22 Thread Ian Hickson

On Fri, 22 Feb 2008, Charles McCathieNevile wrote:
 
 http://dev.w3.org/cvsweb/~checkout~/2006/webapi/progress/Progress.html?rev=1.20
  
 is a new Editor's draft, which should be ready to publish as a Working 
 Draft, and hopefully not generate any comments so we can take it to last 
 call about a month after that :)

I'm all in favour of publishing.


I don't understand the conformance in this spec. When a spec has two 
classess -- UAs and authors -- it's usually easy to tell which requirement 
applies to which. But when you add specs to the mix, I don't know how to 
tell which requirement applies to what.

In particular, this, combined with the apparent lack of requirements on 
some things but presence of requirements on others, leads me to have great 
difficulty interpreting the actual requirements in the spec.

For example:

| Must be dispatched first

Must be dispatched first in terms of what? By whom? I don't understand how 
to test this.

| By default these events do not bubble, and are not be cancelable.

How so? By default to what? Surely there is no default, the events bubble 
and are cancellable exclusively as set in their initProgressEvent() call.

| Two kinds of initialisation methods are provided: one in which the 
| namespace is required (and must be null)

Surely this is conflating the event types you are defining with the event 
interface you are defining. What is that requirement on? How do you test 
it? Does it only apply when init'ing one of the defined events? If so, 
it's redundant -- if the event was init'ed with a different namespace, it 
wouldn't be one of the defined events, and thus the requirement wouldn't 
apply.

| Specifies the expected total number of bytes of the content transferred 
| in the operation. Where the size of the transfer is for some reason 
| unknown, the value of this attribute must be zero.

The first sentence here has no requirement, it just defines the 
attribute's meaning. The second sentence, though, defines a requirement. 
Who is the requirement on? Why is the requirement to have a zero value a 
must when there is no requirement that the attribute have any other 
value? What if someone wants to use this interface with different 
conventions, such as making an unknown total Number.MAX_VALUE?

| This parameter overrides the intrinsic bubbling behavior of the event 
| and determines whether the event created will bubble

This definition seems to imply that the earlier comment regarding defaults 
has some sort of normative value, but I don't understand what -- is it 
saying that a ProgressEvent object, when created, has default values for 
its 'bubbles' attribute? Shouldn't this be left consistent with DOM 
Events? I don't know of any other event class that does this.


Incidentally, I _really_ don't understand the definition of the User Agent 
conformance class:

| A conforming user agent implements all the requirements described for 
| user agents throughout this specification. A conforming user agent 
| should implement all the recommendations for user agents as well.

First, why is there a conformance requirement in the definition of the 
conformance class to which it applies? Second, aren't those two sentences 
contradictory?

Similarly, the section starts with a paragraph saying:

| A conformant implementation of this specification meets all relevant 
| requirements identified by the use of these terms.

...but then says about the implementations in the spec conformance class:

| A conformant specification is one which includes all the requirements 
| identified in the section Referring to progress events from other 
| specifications.

...which seems to contrdict it. I don't understand what is intended.


Frankly, as the editor of a spec that tries to use this spec, I'm not sure 
what would be best. I'm thinking that one option would be to change the 
focus of the Progress Events spec to be more of a guide, with the 
normative parts being only the definition of the IDL, with its methods 
defined in line with the DOM Events spec and the DOM Bindings spec, and 
with everything else just left up to the specs using it. The spec would 
then give a guide as to what event names are expected , in what order, but 
without making this normative. (I've already had to deviate from what this 
spec requires, mostly due to having more events to fire.)

To make this slightly more useful, maybe some macros could be defined, 
similar to the fire a simple event macro I have in HTML5, but like fire 
a progress event which takes arguments like the event name, the 
progress, the total, and the target element, with the macro setting up 
the bubbling and canceling behaviour, etc, and returning whether or not 
the event's default action should fire.

I don't know if it makes sense to have authoring conformance requirements 
for this spec at all.

Anyway. HTH,
-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A 

Re: Extra Connection Support Proposal

2008-02-22 Thread Jonas Sicking


Stewart Brodie wrote:

Kris Zyp [EMAIL PROTECTED] wrote:


We are still faced with the fundamental problem that if a browser that
observes the two connection limit and two long-lived connections are
currently open and the user does something that triggers another request
(such as opening another tab), the browser is stuck and essentially hangs
waiting for a connection to become available. This is a serious usability
issue. Is there something that I need to do to improve my proposal, so can
effectively tackle this issue, and provide a means for authors to inform
the user agents when a response is long-lived?


The problem has always existed, though.  For example, if you're downloading
a page with very large images on it (or perhaps multipart/x-mixed-replace
feeds from a webcam) and whilst the browser is tied up downloading them all,
you click on a link, does the link get followed?  That is the same sort of
scenario, isn't it?


At least firefox will abort any existing downloads for the current page 
when the user clicks a link. But if you're downloading these images in 
another tab you might have this problem yeah. Though if it's simply 
multiple images the new page will likely get squeezed in between two of 
the image downloads.


/ Jonas