Commit e34e28b4 authored by Hiroshige Hayashizaki's avatar Hiroshige Hayashizaki Committed by Commit Bot

Make Resource::Encoding() and SetCSSStyleSheet() use TextEncoding

This CL also makes Resource::SetEncoding() protected and
exposes TextResource::SetEncodingForTest() instead.

Bug: 725654
Change-Id: I5ae53df9b134524601cb280969648263f639b8d3
Reviewed-on: https://chromium-review.googlesource.com/535859Reviewed-by: default avatarKouhei Ueno <kouhei@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Hiroshige Hayashizaki <hiroshige@chromium.org>
Cr-Commit-Position: refs/heads/master@{#480294}
parent 77da5113
......@@ -347,7 +347,7 @@ TEST_F(ScriptStreamingTest, EncodingChanges) {
// It's possible that the encoding of the Resource changes after we start
// loading it.
V8TestingScope scope;
resource_->SetEncoding("windows-1252");
resource_->SetEncodingForTest("windows-1252");
ScriptStreamer::StartStreaming(
GetPendingScript(), ScriptStreamer::kParsingBlocking, settings_.get(),
......@@ -355,7 +355,7 @@ TEST_F(ScriptStreamingTest, EncodingChanges) {
TestPendingScriptClient* client = new TestPendingScriptClient;
GetPendingScript()->WatchForLoad(client);
resource_->SetEncoding("UTF-8");
resource_->SetEncodingForTest("UTF-8");
// \xec\x92\x81 are the raw bytes for \uc481.
AppendData(
"function foo() { var foob\xec\x92\x81r = 13; return foob\xec\x92\x81r; "
......@@ -384,7 +384,9 @@ TEST_F(ScriptStreamingTest, EncodingFromBOM) {
// Byte order marks should be removed before giving the data to V8. They
// will also affect encoding detection.
V8TestingScope scope;
resource_->SetEncoding("windows-1252"); // This encoding is wrong on purpose.
// This encoding is wrong on purpose.
resource_->SetEncodingForTest("windows-1252");
ScriptStreamer::StartStreaming(
GetPendingScript(), ScriptStreamer::kParsingBlocking, settings_.get(),
......
......@@ -69,7 +69,7 @@ void StyleRuleImport::SetCSSStyleSheet(
const String& href,
const KURL& base_url,
ReferrerPolicy referrer_policy,
const String& charset,
const WTF::TextEncoding& charset,
const CSSStyleSheetResource* cached_style_sheet) {
if (style_sheet_)
style_sheet_->ClearOwnerRule();
......@@ -81,7 +81,7 @@ void StyleRuleImport::SetCSSStyleSheet(
context = parent_style_sheet_->ParserContext();
}
context = CSSParserContext::Create(context, base_url, referrer_policy,
charset, document);
String(charset.GetName()), document);
style_sheet_ = StyleSheetContents::Create(this, href, context);
......
......@@ -74,7 +74,7 @@ class StyleRuleImport : public StyleRuleBase {
void SetCSSStyleSheet(const String& href,
const KURL& base_url,
ReferrerPolicy referrer_policy,
const String& charset,
const WTF::TextEncoding& charset,
const CSSStyleSheetResource* sheet) override {
owner_rule_->SetCSSStyleSheet(href, base_url, referrer_policy, charset,
sheet);
......@@ -93,7 +93,7 @@ class StyleRuleImport : public StyleRuleBase {
void SetCSSStyleSheet(const String& href,
const KURL& base_url,
ReferrerPolicy,
const String& charset,
const WTF::TextEncoding&,
const CSSStyleSheetResource*);
StyleRuleImport(const String& href, RefPtr<MediaQuerySet>);
......
......@@ -194,7 +194,7 @@ void ProcessingInstruction::SetCSSStyleSheet(
const String& href,
const KURL& base_url,
ReferrerPolicy referrer_policy,
const String& charset,
const WTF::TextEncoding& charset,
const CSSStyleSheetResource* sheet) {
if (!isConnected()) {
DCHECK(!sheet_);
......@@ -203,7 +203,7 @@ void ProcessingInstruction::SetCSSStyleSheet(
DCHECK(is_css_);
CSSParserContext* parser_context = CSSParserContext::Create(
GetDocument(), base_url, referrer_policy, charset);
GetDocument(), base_url, referrer_policy, String(charset.GetName()));
StyleSheetContents* new_sheet =
StyleSheetContents::Create(href, parser_context);
......
......@@ -88,7 +88,7 @@ class ProcessingInstruction final : public CharacterData,
void SetCSSStyleSheet(const String& href,
const KURL& base_url,
ReferrerPolicy,
const String& charset,
const WTF::TextEncoding&,
const CSSStyleSheetResource*) override;
void SetXSLStyleSheet(const String& href,
const KURL& base_url,
......
......@@ -61,7 +61,7 @@ void LinkStyle::SetCSSStyleSheet(
const String& href,
const KURL& base_url,
ReferrerPolicy referrer_policy,
const String& charset,
const WTF::TextEncoding& charset,
const CSSStyleSheetResource* cached_style_sheet) {
if (!owner_->isConnected()) {
// While the stylesheet is asynchronously loading, the owner can be
......@@ -115,7 +115,7 @@ void LinkStyle::SetCSSStyleSheet(
}
CSSParserContext* parser_context = CSSParserContext::Create(
GetDocument(), base_url, referrer_policy, charset);
GetDocument(), base_url, referrer_policy, String(charset.GetName()));
if (StyleSheetContents* restored_sheet =
const_cast<CSSStyleSheetResource*>(cached_style_sheet)
......
......@@ -63,7 +63,7 @@ class LinkStyle final : public LinkResource, ResourceOwner<StyleSheetResource> {
void SetCSSStyleSheet(const String& href,
const KURL& base_url,
ReferrerPolicy,
const String& charset,
const WTF::TextEncoding&,
const CSSStyleSheetResource*) override;
String DebugName() const override { return "LinkStyle"; }
enum LoadReturnValue { kLoaded, kNotNeeded, kBail };
......
......@@ -275,7 +275,7 @@ void CSSPreloaderResourceClient::SetCSSStyleSheet(
const String& href,
const KURL& base_url,
ReferrerPolicy referrer_policy,
const String& charset,
const WTF::TextEncoding&,
const CSSStyleSheetResource*) {
ClearResource();
}
......
......@@ -110,7 +110,7 @@ class CORE_EXPORT CSSPreloaderResourceClient
void SetCSSStyleSheet(const String& href,
const KURL& base_url,
ReferrerPolicy,
const String& charset,
const WTF::TextEncoding&,
const CSSStyleSheetResource*) override;
void DidAppendFirstData(const CSSStyleSheetResource*) override;
String DebugName() const override { return "CSSPreloaderResourceClient"; }
......
......@@ -55,7 +55,7 @@ class InspectorResourceContentLoader::ResourceClient final
void SetCSSStyleSheet(const String&,
const KURL&,
ReferrerPolicy,
const String&,
const WTF::TextEncoding&,
const CSSStyleSheetResource*) override;
void NotifyFinished(Resource*) override;
String DebugName() const override {
......@@ -81,7 +81,7 @@ void InspectorResourceContentLoader::ResourceClient::SetCSSStyleSheet(
const String&,
const KURL& url,
ReferrerPolicy,
const String&,
const WTF::TextEncoding&,
const CSSStyleSheetResource* resource) {
ResourceFinished(const_cast<CSSStyleSheetResource*>(resource));
}
......
......@@ -46,7 +46,7 @@ class CORE_EXPORT StyleSheetResourceClient : public ResourceClient {
virtual void SetCSSStyleSheet(const String& /* href */,
const KURL& /* baseURL */,
ReferrerPolicy,
const String& /* charset */,
const WTF::TextEncoding&,
const CSSStyleSheetResource*) {}
virtual void SetXSLStyleSheet(const String& /* href */,
const KURL& /* baseURL */,
......
......@@ -26,8 +26,8 @@ void TextResource::SetEncoding(const String& chs) {
TextResourceDecoder::kEncodingFromHTTPHeader);
}
String TextResource::Encoding() const {
return decoder_->Encoding().GetName();
WTF::TextEncoding TextResource::Encoding() const {
return decoder_->Encoding();
}
String TextResource::DecodedText() const {
......
......@@ -19,8 +19,9 @@ class CORE_EXPORT TextResource : public Resource {
// call time.
String DecodedText() const;
void SetEncoding(const String&) override;
String Encoding() const override;
WTF::TextEncoding Encoding() const override;
void SetEncodingForTest(const String& encoding) { SetEncoding(encoding); }
protected:
TextResource(const ResourceRequest&,
......@@ -30,6 +31,8 @@ class CORE_EXPORT TextResource : public Resource {
const String& charset);
~TextResource() override;
void SetEncoding(const String&) override;
private:
std::unique_ptr<TextResourceDecoder> decoder_;
};
......
......@@ -178,7 +178,7 @@ Resource::CachedMetadataHandlerImpl::GetCachedMetadata(
}
String Resource::CachedMetadataHandlerImpl::Encoding() const {
return resource_->Encoding();
return String(resource_->Encoding().GetName());
}
void Resource::CachedMetadataHandlerImpl::SetSerializedCachedMetadata(
......
......@@ -44,6 +44,7 @@
#include "platform/wtf/HashCountedSet.h"
#include "platform/wtf/HashSet.h"
#include "platform/wtf/text/AtomicString.h"
#include "platform/wtf/text/TextEncoding.h"
#include "platform/wtf/text/WTFString.h"
#include "public/platform/WebDataConsumerHandle.h"
......@@ -105,8 +106,7 @@ class PLATFORM_EXPORT Resource : public GarbageCollectedFinalized<Resource>,
DECLARE_VIRTUAL_TRACE();
virtual void SetEncoding(const String&) {}
virtual String Encoding() const { return String(); }
virtual WTF::TextEncoding Encoding() const { return WTF::TextEncoding(); }
virtual void AppendData(const char*, size_t);
virtual void FinishAsError(const ResourceError&);
virtual void SetCORSFailed() {}
......@@ -420,6 +420,8 @@ class PLATFORM_EXPORT Resource : public GarbageCollectedFinalized<Resource>,
void TriggerNotificationForFinishObservers();
virtual void SetEncoding(const String&) {}
private:
class CachedMetadataHandlerImpl;
class ServiceWorkerResponseCachedMetadataHandler;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment