[Bug 24564] [Imports]: Blocking circular reference in the import tree/list


Morrita Hajime <morrita@google.com> changed:

           What    |Removed                     |Added
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #9 from Morrita Hajime <morrita@google.com> ---
I'm trying to fix this in [1] and following changes by:

- Splitting import list into "import-link-list" and "import-map".
  - The list tracks <link>s
  - The map tracks imported documents for de-dup work.

The import-link-list is basically a flattened and short-circuit DOM tree
that only has <link> (modulo mutation).
It is used to control loading/execution order of the documents/scripts.
It throttles loading so that it guarantees loading happening in tree DFS order.

Here is how the DFS ordering works.
Think about following nested imports:

- index.html
  - a.html
    - b.html
  - c.html
  - b.html

In this case, the loading should happen index-a-b-c order so that
c.html can depend on b.html (in a.html).
The order guarantee makes this possible.
Otherwise, c.html can be loaded before b.html, which is bad.

I believe this determinisity works well for cycle prevention as well as
it serializes the loading order.

This doesn't mean we're going to kill all the concurrency
as it prevents any work for c.html before a.html and children are loaded:
It is fine for UAs to prefetch c.html while parsing loading.html

Closing this so far but feel free to reopen or file new bugs.
Your feedback will be appreciated.


You are receiving this mail because:
You are on the CC list for the bug.

Received on Monday, 10 February 2014 23:39:59 UTC