[Bug 24658] [imports]: The fetch readiness shouldn't block fetching.

https://www.w3.org/Bugs/Public/show_bug.cgi?id=24658

--- Comment #1 from Gabor Krizsanits <gkrizsanits@mozilla.com> ---
I think we still need to chew on this for a while, maybe in the end the more
conservative blocking fetch will be the way to go. For example if we parse an
import that looks something like:

script1
subimport1
script3

in script blocking mode. And then we want to unblock the scripts in it, we
should unblock it until it gets to subimport1, and then re-block it. Unblock
subimport1 and wait until it's all done. Then run script 3... It's quite hard
to think over what is going on... The more or I think the better I like the
blocking on the fetching level or at least on the parsing level.

> > The other part is not entirely clear how all these algorithms in the spec
> > work together exactly. More specifically when should one check for fetch
> > readiness? Every time an import finishes we find the next candidate that can
> > be fetched?
> 
> Yes, this is kinda reactive thing. In Blink, the readiness of each import is 
> re-evaluated each time when any one import finished loading.
> 
> I hope there are better way to explain this nature but I have no idea so
> far. Suggestions are welcome!

I think when there is at least one link in the list that is not ready to be
fetched, we have to run the 'find next to be fetched algorithm' after each
import that is done loading. The algorithm will find the first link on the list
whose flag can be changed from not ready to ready to be fetched and start
fetching it (if there is any). Is that correct? 
And of course when a new link is added to the list that is immediately ready to
be fetched we just fetch it.

So the special case is when we start fetching an import like:

...
   I
    I2
    I3

And as we add I2 to the list we immediately start fetching it and it gets done
before the parser adds I3 to the list, then the 'find next to be fetched'
algorithm will not find any new candidate, but that's not a problem since soon
we add I3 to the list and start fetching it immediately.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Friday, 14 February 2014 00:47:28 UTC