1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "config.h"
6#include "core/fetch/TextResource.h"
7
8#include "core/html/parser/TextResourceDecoder.h"
9#include "platform/SharedBuffer.h"
10
11namespace blink {
12
13TextResource::TextResource(const ResourceRequest& resourceRequest, Resource::Type type, const String& mimeType, const String& charset)
14    : Resource(resourceRequest, type)
15    , m_decoder(TextResourceDecoder::create(mimeType, charset))
16{
17}
18
19TextResource::~TextResource()
20{
21}
22
23void TextResource::setEncoding(const String& chs)
24{
25    m_decoder->setEncoding(chs, TextResourceDecoder::EncodingFromHTTPHeader);
26}
27
28String TextResource::encoding() const
29{
30    return m_decoder->encoding().name();
31}
32
33String TextResource::decodedText() const
34{
35    ASSERT(m_data);
36
37    String text = m_decoder->decode(m_data->data(), encodedSize());
38    text = text + m_decoder->flush();
39
40    return text;
41}
42
43} // namespace blink
44