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