| Index: Source/core/dom/DecodedDataDocumentParser.cpp
|
| diff --git a/Source/core/dom/DecodedDataDocumentParser.cpp b/Source/core/dom/DecodedDataDocumentParser.cpp
|
| index 7f3c01f23d888588788284487ead384a0f4ef704..4ca47018d36f42dcd00f8db27ca8d55c9ae02396 100644
|
| --- a/Source/core/dom/DecodedDataDocumentParser.cpp
|
| +++ b/Source/core/dom/DecodedDataDocumentParser.cpp
|
| @@ -28,13 +28,13 @@
|
|
|
| #include "core/dom/Document.h"
|
| #include "core/dom/DocumentEncodingData.h"
|
| -#include "core/fetch/TextResourceDecoder.h"
|
| +#include "core/html/parser/TextResourceDecoder.h"
|
|
|
| namespace WebCore {
|
|
|
| DecodedDataDocumentParser::DecodedDataDocumentParser(Document* document)
|
| : DocumentParser(document)
|
| - , m_hasAppendedData(false)
|
| + , m_needsDecoder(true)
|
| {
|
| }
|
|
|
| @@ -44,6 +44,7 @@ DecodedDataDocumentParser::~DecodedDataDocumentParser()
|
|
|
| void DecodedDataDocumentParser::setDecoder(PassOwnPtr<TextResourceDecoder> decoder)
|
| {
|
| + m_needsDecoder = false;
|
| m_decoder = decoder;
|
| }
|
|
|
| @@ -52,9 +53,9 @@ TextResourceDecoder* DecodedDataDocumentParser::decoder()
|
| return m_decoder.get();
|
| }
|
|
|
| -void DecodedDataDocumentParser::setHasAppendedData()
|
| +PassOwnPtr<TextResourceDecoder> DecodedDataDocumentParser::takeDecoder()
|
| {
|
| - m_hasAppendedData = true;
|
| + return m_decoder.release();
|
| }
|
|
|
| void DecodedDataDocumentParser::appendBytes(const char* data, size_t length)
|
| @@ -91,22 +92,10 @@ void DecodedDataDocumentParser::flush()
|
|
|
| void DecodedDataDocumentParser::updateDocument(String& decodedData)
|
| {
|
| - DocumentEncodingData encodingData;
|
| - encodingData.encoding = m_decoder->encoding();
|
| - encodingData.wasDetectedHeuristically = m_decoder->encodingWasDetectedHeuristically();
|
| - encodingData.sawDecodingError = m_decoder->sawError();
|
| - document()->setEncodingData(encodingData);
|
| + document()->setEncodingData(DocumentEncodingData(*m_decoder.get()));
|
|
|
| - if (decodedData.isEmpty())
|
| - return;
|
| -
|
| - append(decodedData.releaseImpl());
|
| - // FIXME: Should be removed as part of https://code.google.com/p/chromium/issues/detail?id=319643
|
| - if (!m_hasAppendedData) {
|
| - m_hasAppendedData = true;
|
| - if (m_decoder->encoding().usesVisualOrdering())
|
| - document()->setVisuallyOrdered();
|
| - }
|
| + if (!decodedData.isEmpty())
|
| + append(decodedData.releaseImpl());
|
| }
|
|
|
| };
|
|
|