| Index: Source/core/html/imports/HTMLImportStateResolver.cpp | 
| diff --git a/Source/core/html/imports/HTMLImportStateResolver.cpp b/Source/core/html/imports/HTMLImportStateResolver.cpp | 
| index bd083ad51017512e6f430a5ad1c36a2eb6e6165f..df03643504e0a68fd7e00a2fe6c8146dd02f41de 100644 | 
| --- a/Source/core/html/imports/HTMLImportStateResolver.cpp | 
| +++ b/Source/core/html/imports/HTMLImportStateResolver.cpp | 
| @@ -32,6 +32,7 @@ | 
| #include "core/html/imports/HTMLImportStateResolver.h" | 
|  | 
| #include "core/html/imports/HTMLImport.h" | 
| +#include "core/html/imports/HTMLImportChild.h" | 
|  | 
| namespace WebCore { | 
|  | 
| @@ -39,6 +40,8 @@ inline bool HTMLImportStateResolver::isBlockingFollowers(HTMLImport* import) | 
| { | 
| if (!import->isSync()) | 
| return false; | 
| +    if (!toHTMLImportChild(import)->isFirst()) | 
| +        return false; | 
| if (!import->loader()) | 
| return true; | 
| return !import->state().isReady(); | 
| @@ -46,9 +49,12 @@ inline bool HTMLImportStateResolver::isBlockingFollowers(HTMLImport* import) | 
|  | 
| inline bool HTMLImportStateResolver::shouldBlockScriptExecution() const | 
| { | 
| -    for (const HTMLImport* ancestor = m_import; ancestor; ancestor = ancestor->parent()) { | 
| -        if (ancestor->previous() && isBlockingFollowers(ancestor->previous())) | 
| -            return true; | 
| +    // FIXME: Memoize to make this faster. | 
| +    for (HTMLImport* ancestor = m_import; ancestor; ancestor = ancestor->parent()) { | 
| +        for (HTMLImport* predecessor = ancestor->previous(); predecessor; predecessor = predecessor->previous()) { | 
| +            if (isBlockingFollowers(predecessor)) | 
| +                return true; | 
| +        } | 
| } | 
|  | 
| for (HTMLImport* child = m_import->firstChild(); child; child = child->next()) { | 
|  |