DescriptionRefactoring: Introduce HTMLImport interface to form import tree.
This change introduces HTMLImport abstract class which is derived by
HTMLImportLoader and HTMLImportsController.
- A set of HTMLImport forms a tree which represents the import dependnecy.
Currently only child-to-parent link is available. The tree root is
a HTMLImportController.
- Document now refers HTMLImport instead of HTMLImportController.
For the master document, the object is HTMLImportController.
For each imported document, it is a HTMLImportLoader which loads the document.
Note that the only interaction from a document to its import is
to ask if all of its (sub) imports are loaded.
- HTMLImportsController is turned from a RefCounted to a document Supplement.
The lifetime is managed by the supplement machinery instead of RefPtr
which Document::m_import originally was.
Now m_import is a weak, raw pointer and is cleared by HTMLImport subclasses.
- didLoad() notification is now fired recursively up to
the import dependency chain. This is crusial when
scripts inside imported documents block the document parsing
and let the notification unblock it.
TEST=none
BUG=240592
R=dglazkov@chromium.org
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=153977
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=154082
Patch Set 1 #
Total comments: 1
Patch Set 2 : For landing #
Total comments: 3
Patch Set 3 : Addressed comments, landing. #Patch Set 4 : Added missing checks and a clearance. #
Messages
Total messages: 12 (0 generated)
|