| Index: sky/engine/core/html/parser/BackgroundHTMLParser.cpp
|
| diff --git a/sky/engine/core/html/parser/BackgroundHTMLParser.cpp b/sky/engine/core/html/parser/BackgroundHTMLParser.cpp
|
| index 18366001badcf6cd7a339a991c57f352b2d627ee..b852e80c3f80ac0b48e1388d03c7d9fbd1e5f099 100644
|
| --- a/sky/engine/core/html/parser/BackgroundHTMLParser.cpp
|
| +++ b/sky/engine/core/html/parser/BackgroundHTMLParser.cpp
|
| @@ -60,7 +60,8 @@ base::WeakPtr<BackgroundHTMLParser> BackgroundHTMLParser::create(PassOwnPtr<Back
|
| }
|
|
|
| BackgroundHTMLParser::BackgroundHTMLParser(PassOwnPtr<Configuration> config)
|
| - : m_token(adoptPtr(new HTMLToken))
|
| + : m_state(InitialState)
|
| + , m_token(adoptPtr(new HTMLToken))
|
| , m_tokenizer(HTMLTokenizer::create())
|
| , m_parser(config->parser)
|
| , m_pendingTokens(adoptPtr(new CompactHTMLTokenStream))
|
| @@ -116,8 +117,20 @@ bool BackgroundHTMLParser::updateTokenizerState(const CompactHTMLToken& token)
|
| {
|
| if (token.type() == HTMLToken::StartTag) {
|
| const String& tagName = token.data();
|
| +
|
| if (threadSafeMatch(tagName, HTMLNames::scriptTag) || threadSafeMatch(tagName, HTMLNames::styleTag))
|
| m_tokenizer->setState(HTMLTokenizer::RawDataState);
|
| +
|
| + if (threadSafeMatch(tagName, HTMLNames::importTag)) {
|
| + m_state = DidSeeImportState;
|
| + return true;
|
| + }
|
| +
|
| + if (m_state == InitialState)
|
| + return true;
|
| +
|
| + m_state = InitialState;
|
| + return false;
|
| }
|
|
|
| return token.type() != HTMLToken::EndTag || !threadSafeMatch(token.data(), HTMLNames::scriptTag);
|
|
|