Chromium Code Reviews| Index: third_party/WebKit/Source/core/html/parser/BackgroundHTMLParser.cpp |
| diff --git a/third_party/WebKit/Source/core/html/parser/BackgroundHTMLParser.cpp b/third_party/WebKit/Source/core/html/parser/BackgroundHTMLParser.cpp |
| index 932f73768bb1219148257557de27cc615ab216e8..1d24f40d05bff12908849da918a21083d48d7b0a 100644 |
| --- a/third_party/WebKit/Source/core/html/parser/BackgroundHTMLParser.cpp |
| +++ b/third_party/WebKit/Source/core/html/parser/BackgroundHTMLParser.cpp |
| @@ -252,7 +252,8 @@ void BackgroundHTMLParser::pumpTokenizer() |
| CompactHTMLToken token(m_token.get(), position); |
| bool shouldEvaluateForDocumentWrite = false; |
| - m_preloadScanner->scan(token, m_input.current(), m_pendingPreloads, &m_viewportDescription, &shouldEvaluateForDocumentWrite); |
| + bool isCSPMetaTag = false; |
| + m_preloadScanner->scan(token, m_input.current(), m_pendingPreloads, &m_viewportDescription, &isCSPMetaTag, &shouldEvaluateForDocumentWrite); |
| simulatedToken = m_treeBuilderSimulator.simulate(token, m_tokenizer.get()); |
| @@ -264,6 +265,9 @@ void BackgroundHTMLParser::pumpTokenizer() |
| } |
| m_pendingTokens->append(token); |
| + if (isCSPMetaTag) { |
| + m_pendingCSPMetaTokenIndex = m_pendingTokens->size() - 1; |
| + } |
| if (shouldEvaluateForDocumentWrite) { |
| m_likelyDocumentWriteScriptIndices.append(m_pendingTokens->size() - 1); |
| } |
| @@ -324,6 +328,7 @@ bool BackgroundHTMLParser::queueChunkForMainThread() |
| chunk->tokens = std::move(m_pendingTokens); |
| chunk->startingScript = m_startingScript; |
| chunk->likelyDocumentWriteScriptIndices.swap(m_likelyDocumentWriteScriptIndices); |
| + chunk->pendingCSPMetaTokenIndex.swap(m_pendingCSPMetaTokenIndex); |
|
kouhei (in TOK)
2016/08/22 05:34:03
chunk->pendingCSPMetaTokenIndex = m_pendingCSPMeta
Charlie Harrison
2016/08/22 14:08:05
I used swap to also clear the m_pendingCSPMetaToke
|
| m_startingScript = false; |
| bool isEmpty = m_tokenizedChunkQueue->enqueue(std::move(chunk)); |