Chromium Code Reviews| Index: third_party/WebKit/Source/core/html/parser/HTMLSourceTracker.cpp |
| diff --git a/third_party/WebKit/Source/core/html/parser/HTMLSourceTracker.cpp b/third_party/WebKit/Source/core/html/parser/HTMLSourceTracker.cpp |
| index aaec23e519e49a975365549964c783acefc9164b..4f4cd5590c7c1911e125d0d161a4846707d4321a 100644 |
| --- a/third_party/WebKit/Source/core/html/parser/HTMLSourceTracker.cpp |
| +++ b/third_party/WebKit/Source/core/html/parser/HTMLSourceTracker.cpp |
| @@ -37,7 +37,8 @@ void HTMLSourceTracker::start(SegmentedString& currentInput, |
| HTMLToken& token) { |
| if (token.type() == HTMLToken::Uninitialized && !m_isStarted) { |
| m_previousSource.clear(); |
| - if (tokenizer->numberOfBufferedCharacters()) |
| + if (isEndTagBufferingState(tokenizer->getState()) && |
| + tokenizer->numberOfBufferedCharacters()) |
| m_previousSource = tokenizer->bufferedCharacters(); |
| } else |
| m_previousSource.append(m_currentSource); |
| @@ -56,8 +57,12 @@ void HTMLSourceTracker::end(SegmentedString& currentInput, |
| m_cachedSourceForToken = String(); |
| // FIXME: This work should really be done by the HTMLTokenizer. |
| + size_t numberOfBufferedCharacters = 0; |
|
Charlie Harrison
2017/03/06 14:59:57
nit: s/0/0u
|
| + if (isEndTagBufferingState(tokenizer->getState())) { |
| + numberOfBufferedCharacters = tokenizer->numberOfBufferedCharacters(); |
| + } |
| token.end(currentInput.numberOfCharactersConsumed() - |
| - tokenizer->numberOfBufferedCharacters()); |
| + numberOfBufferedCharacters); |
| } |
| String HTMLSourceTracker::sourceForToken(const HTMLToken& token) { |