Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / html / parser / HTMLSourceTracker.cpp
index af729fa..3f77426 100644 (file)
 #include "core/html/parser/HTMLTokenizer.h"
 #include "wtf/text/StringBuilder.h"
 
-namespace WebCore {
+namespace blink {
 
 HTMLSourceTracker::HTMLSourceTracker()
+    : m_isStarted(false)
 {
 }
 
 void HTMLSourceTracker::start(SegmentedString& currentInput, HTMLTokenizer* tokenizer, HTMLToken& token)
 {
-    if (token.type() == HTMLToken::Uninitialized) {
+    if (token.type() == HTMLToken::Uninitialized && !m_isStarted) {
         m_previousSource.clear();
         if (tokenizer->numberOfBufferedCharacters())
             m_previousSource = tokenizer->bufferedCharacters();
     } else
         m_previousSource.append(m_currentSource);
 
+    m_isStarted = true;
     m_currentSource = currentInput;
     token.setBaseOffset(m_currentSource.numberOfCharactersConsumed() - m_previousSource.length());
 }
 
 void HTMLSourceTracker::end(SegmentedString& currentInput, HTMLTokenizer* tokenizer, HTMLToken& token)
 {
+    m_isStarted = false;
+
     m_cachedSourceForToken = String();
 
     // FIXME: This work should really be done by the HTMLTokenizer.