Commit 64ee99bc authored by Hiroshige Hayashizaki's avatar Hiroshige Hayashizaki Committed by Commit Bot

Make CSSParserContext::Create() and Charset() use TextEncoding

Bug: 725654
Change-Id: Iafd2c9d47697e6d45f3c98857069cdfe82cfaed8
Reviewed-on: https://chromium-review.googlesource.com/535839Reviewed-by: default avatarKouhei Ueno <kouhei@chromium.org>
Commit-Queue: Hiroshige Hayashizaki <hiroshige@chromium.org>
Cr-Commit-Position: refs/heads/master@{#480300}
parent 5e03ad76
...@@ -109,7 +109,7 @@ CSSStyleSheet* CSSStyleSheet::CreateInline(StyleSheetContents* sheet, ...@@ -109,7 +109,7 @@ CSSStyleSheet* CSSStyleSheet::CreateInline(StyleSheetContents* sheet,
CSSStyleSheet* CSSStyleSheet::CreateInline(Node& owner_node, CSSStyleSheet* CSSStyleSheet::CreateInline(Node& owner_node,
const KURL& base_url, const KURL& base_url,
const TextPosition& start_position, const TextPosition& start_position,
const String& encoding) { const WTF::TextEncoding& encoding) {
CSSParserContext* parser_context = CSSParserContext::Create( CSSParserContext* parser_context = CSSParserContext::Create(
owner_node.GetDocument(), owner_node.GetDocument().BaseURL(), owner_node.GetDocument(), owner_node.GetDocument().BaseURL(),
owner_node.GetDocument().GetReferrerPolicy(), encoding); owner_node.GetDocument().GetReferrerPolicy(), encoding);
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include "core/css/StyleSheet.h" #include "core/css/StyleSheet.h"
#include "platform/heap/Handle.h" #include "platform/heap/Handle.h"
#include "platform/wtf/Noncopyable.h" #include "platform/wtf/Noncopyable.h"
#include "platform/wtf/text/TextEncoding.h"
#include "platform/wtf/text/TextPosition.h" #include "platform/wtf/text/TextPosition.h"
namespace blink { namespace blink {
...@@ -56,7 +57,7 @@ class CORE_EXPORT CSSStyleSheet final : public StyleSheet { ...@@ -56,7 +57,7 @@ class CORE_EXPORT CSSStyleSheet final : public StyleSheet {
Node&, Node&,
const KURL&, const KURL&,
const TextPosition& start_position = TextPosition::MinimumPosition(), const TextPosition& start_position = TextPosition::MinimumPosition(),
const String& encoding = String()); const WTF::TextEncoding& = WTF::TextEncoding());
static CSSStyleSheet* CreateInline( static CSSStyleSheet* CreateInline(
StyleSheetContents*, StyleSheetContents*,
Node& owner_node, Node& owner_node,
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
#include "core/css/RuleSet.h" #include "core/css/RuleSet.h"
#include "core/css/StyleSheetContents.h" #include "core/css/StyleSheetContents.h"
#include "core/dom/Document.h" #include "core/dom/Document.h"
#include "platform/wtf/text/WTFString.h" #include "platform/wtf/text/TextEncoding.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
namespace blink { namespace blink {
...@@ -45,7 +45,7 @@ CSSTestHelper::CSSTestHelper() { ...@@ -45,7 +45,7 @@ CSSTestHelper::CSSTestHelper() {
document_ = Document::Create(); document_ = Document::Create();
TextPosition position; TextPosition position;
style_sheet_ = style_sheet_ =
CSSStyleSheet::CreateInline(*document_, KURL(), position, "UTF-8"); CSSStyleSheet::CreateInline(*document_, KURL(), position, UTF8Encoding());
} }
CSSRuleList* CSSTestHelper::CssRules() { CSSRuleList* CSSTestHelper::CssRules() {
......
...@@ -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,
String(charset.GetName()), document); charset, document);
style_sheet_ = StyleSheetContents::Create(this, href, context); style_sheet_ = StyleSheetContents::Create(this, href, context);
...@@ -135,7 +135,7 @@ void StyleRuleImport::RequestStyleSheet() { ...@@ -135,7 +135,7 @@ void StyleRuleImport::RequestStyleSheet() {
kClientRequestedCredentials); kClientRequestedCredentials);
options.initiator_info.name = FetchInitiatorTypeNames::css; options.initiator_info.name = FetchInitiatorTypeNames::css;
FetchParameters params(ResourceRequest(abs_url), options); FetchParameters params(ResourceRequest(abs_url), options);
params.SetCharset(parent_style_sheet_->Charset()); params.SetCharset(String(parent_style_sheet_->Charset().GetName()));
resource_ = CSSStyleSheetResource::Fetch(params, fetcher); resource_ = CSSStyleSheetResource::Fetch(params, fetcher);
if (resource_) { if (resource_) {
// if the import rule is issued dynamically, the sheet may be // if the import rule is issued dynamically, the sheet may be
......
...@@ -93,7 +93,9 @@ class CORE_EXPORT StyleSheetContents ...@@ -93,7 +93,9 @@ class CORE_EXPORT StyleSheetContents
// if there are none. // if there are none.
Document* AnyOwnerDocument() const; Document* AnyOwnerDocument() const;
const String& Charset() const { return parser_context_->Charset(); } const WTF::TextEncoding& Charset() const {
return parser_context_->Charset();
}
bool LoadCompleted() const; bool LoadCompleted() const;
bool HasFailedOrCanceledSubresources() const; bool HasFailedOrCanceledSubresources() const;
......
...@@ -46,7 +46,7 @@ CSSParserContext* CSSParserContext::Create( ...@@ -46,7 +46,7 @@ CSSParserContext* CSSParserContext::Create(
const CSSParserContext* other, const CSSParserContext* other,
const KURL& base_url, const KURL& base_url,
ReferrerPolicy referrer_policy, ReferrerPolicy referrer_policy,
const String& charset, const WTF::TextEncoding& charset,
const Document* use_counter_document) { const Document* use_counter_document) {
return new CSSParserContext( return new CSSParserContext(
base_url, charset, other->mode_, other->match_mode_, other->profile_, base_url, charset, other->mode_, other->match_mode_, other->profile_,
...@@ -62,15 +62,15 @@ CSSParserContext* CSSParserContext::Create( ...@@ -62,15 +62,15 @@ CSSParserContext* CSSParserContext::Create(
SelectorProfile profile, SelectorProfile profile,
const Document* use_counter_document) { const Document* use_counter_document) {
return new CSSParserContext( return new CSSParserContext(
KURL(), g_empty_string, mode, mode, profile, Referrer(), false, false, KURL(), WTF::TextEncoding(), mode, mode, profile, Referrer(), false,
kDoNotCheckContentSecurityPolicy, use_counter_document); false, kDoNotCheckContentSecurityPolicy, use_counter_document);
} }
// static // static
CSSParserContext* CSSParserContext::Create(const Document& document) { CSSParserContext* CSSParserContext::Create(const Document& document) {
return CSSParserContext::Create(document, document.BaseURL(), return CSSParserContext::Create(document, document.BaseURL(),
document.GetReferrerPolicy(), g_empty_string, document.GetReferrerPolicy(),
kDynamicProfile); WTF::TextEncoding(), kDynamicProfile);
} }
// static // static
...@@ -78,7 +78,7 @@ CSSParserContext* CSSParserContext::Create( ...@@ -78,7 +78,7 @@ CSSParserContext* CSSParserContext::Create(
const Document& document, const Document& document,
const KURL& base_url_override, const KURL& base_url_override,
ReferrerPolicy referrer_policy_override, ReferrerPolicy referrer_policy_override,
const String& charset, const WTF::TextEncoding& charset,
SelectorProfile profile) { SelectorProfile profile) {
CSSParserMode mode = CSSParserMode mode =
document.InQuirksMode() ? kHTMLQuirksMode : kHTMLStandardMode; document.InQuirksMode() ? kHTMLQuirksMode : kHTMLStandardMode;
...@@ -115,7 +115,7 @@ CSSParserContext* CSSParserContext::Create( ...@@ -115,7 +115,7 @@ CSSParserContext* CSSParserContext::Create(
CSSParserContext::CSSParserContext( CSSParserContext::CSSParserContext(
const KURL& base_url, const KURL& base_url,
const String& charset, const WTF::TextEncoding& charset,
CSSParserMode mode, CSSParserMode mode,
CSSParserMode match_mode, CSSParserMode match_mode,
SelectorProfile profile, SelectorProfile profile,
...@@ -160,9 +160,9 @@ const CSSParserContext* StrictCSSParserContext() { ...@@ -160,9 +160,9 @@ const CSSParserContext* StrictCSSParserContext() {
KURL CSSParserContext::CompleteURL(const String& url) const { KURL CSSParserContext::CompleteURL(const String& url) const {
if (url.IsNull()) if (url.IsNull())
return KURL(); return KURL();
if (Charset().IsEmpty()) if (!Charset().IsValid())
return KURL(BaseURL(), url); return KURL(BaseURL(), url);
return KURL(BaseURL(), url, WTF::TextEncoding(Charset())); return KURL(BaseURL(), url, Charset());
} }
void CSSParserContext::Count(WebFeature feature) const { void CSSParserContext::Count(WebFeature feature) const {
......
...@@ -40,7 +40,7 @@ class CORE_EXPORT CSSParserContext ...@@ -40,7 +40,7 @@ class CORE_EXPORT CSSParserContext
static CSSParserContext* Create(const CSSParserContext* other, static CSSParserContext* Create(const CSSParserContext* other,
const KURL& base_url_override, const KURL& base_url_override,
ReferrerPolicy referrer_policy_override, ReferrerPolicy referrer_policy_override,
const String& charset_override, const WTF::TextEncoding& charset_override,
const Document* use_counter_document); const Document* use_counter_document);
static CSSParserContext* Create( static CSSParserContext* Create(
...@@ -48,11 +48,12 @@ class CORE_EXPORT CSSParserContext ...@@ -48,11 +48,12 @@ class CORE_EXPORT CSSParserContext
SelectorProfile = kDynamicProfile, SelectorProfile = kDynamicProfile,
const Document* use_counter_document = nullptr); const Document* use_counter_document = nullptr);
static CSSParserContext* Create(const Document&); static CSSParserContext* Create(const Document&);
static CSSParserContext* Create(const Document&, static CSSParserContext* Create(
const KURL& base_url_override, const Document&,
ReferrerPolicy referrer_policy_override, const KURL& base_url_override,
const String& charset = g_empty_string, ReferrerPolicy referrer_policy_override,
SelectorProfile = kDynamicProfile); const WTF::TextEncoding& charset = WTF::TextEncoding(),
SelectorProfile = kDynamicProfile);
bool operator==(const CSSParserContext&) const; bool operator==(const CSSParserContext&) const;
bool operator!=(const CSSParserContext& other) const { bool operator!=(const CSSParserContext& other) const {
...@@ -62,7 +63,7 @@ class CORE_EXPORT CSSParserContext ...@@ -62,7 +63,7 @@ class CORE_EXPORT CSSParserContext
CSSParserMode Mode() const { return mode_; } CSSParserMode Mode() const { return mode_; }
CSSParserMode MatchMode() const { return match_mode_; } CSSParserMode MatchMode() const { return match_mode_; }
const KURL& BaseURL() const { return base_url_; } const KURL& BaseURL() const { return base_url_; }
const String& Charset() const { return charset_; } const WTF::TextEncoding& Charset() const { return charset_; }
const Referrer& GetReferrer() const { return referrer_; } const Referrer& GetReferrer() const { return referrer_; }
bool IsHTMLDocument() const { return is_html_document_; } bool IsHTMLDocument() const { return is_html_document_; }
bool IsDynamicProfile() const { return profile_ == kDynamicProfile; } bool IsDynamicProfile() const { return profile_ == kDynamicProfile; }
...@@ -96,7 +97,7 @@ class CORE_EXPORT CSSParserContext ...@@ -96,7 +97,7 @@ class CORE_EXPORT CSSParserContext
private: private:
CSSParserContext(const KURL& base_url, CSSParserContext(const KURL& base_url,
const String& charset, const WTF::TextEncoding& charset,
CSSParserMode, CSSParserMode,
CSSParserMode match_mode, CSSParserMode match_mode,
SelectorProfile, SelectorProfile,
...@@ -107,7 +108,7 @@ class CORE_EXPORT CSSParserContext ...@@ -107,7 +108,7 @@ class CORE_EXPORT CSSParserContext
const Document* use_counter_document); const Document* use_counter_document);
KURL base_url_; KURL base_url_;
String charset_; WTF::TextEncoding charset_;
CSSParserMode mode_; CSSParserMode mode_;
CSSParserMode match_mode_; CSSParserMode match_mode_;
SelectorProfile profile_ = kDynamicProfile; SelectorProfile profile_ = kDynamicProfile;
......
...@@ -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, String(charset.GetName())); GetDocument(), base_url, referrer_policy, charset);
StyleSheetContents* new_sheet = StyleSheetContents* new_sheet =
StyleSheetContents::Create(href, parser_context); StyleSheetContents::Create(href, parser_context);
......
...@@ -550,9 +550,9 @@ SelectorQuery* SelectorQueryCache::Add(const AtomicString& selectors, ...@@ -550,9 +550,9 @@ SelectorQuery* SelectorQueryCache::Add(const AtomicString& selectors,
return it->value.get(); return it->value.get();
CSSSelectorList selector_list = CSSParser::ParseSelector( CSSSelectorList selector_list = CSSParser::ParseSelector(
CSSParserContext::Create(document, document.BaseURL(), CSSParserContext::Create(
document.GetReferrerPolicy(), g_empty_string, document, document.BaseURL(), document.GetReferrerPolicy(),
CSSParserContext::kStaticProfile), WTF::TextEncoding(), CSSParserContext::kStaticProfile),
nullptr, selectors); nullptr, selectors);
if (!selector_list.First()) { if (!selector_list.First()) {
......
...@@ -69,7 +69,7 @@ TEST(SelectorQueryTest, NotMatchingPseudoElement) { ...@@ -69,7 +69,7 @@ TEST(SelectorQueryTest, NotMatchingPseudoElement) {
CSSSelectorList selector_list = CSSParser::ParseSelector( CSSSelectorList selector_list = CSSParser::ParseSelector(
CSSParserContext::Create(*document, KURL(), kReferrerPolicyDefault, CSSParserContext::Create(*document, KURL(), kReferrerPolicyDefault,
g_empty_string, WTF::TextEncoding(),
CSSParserContext::kStaticProfile), CSSParserContext::kStaticProfile),
nullptr, "span::before"); nullptr, "span::before");
std::unique_ptr<SelectorQuery> query = std::unique_ptr<SelectorQuery> query =
...@@ -79,7 +79,7 @@ TEST(SelectorQueryTest, NotMatchingPseudoElement) { ...@@ -79,7 +79,7 @@ TEST(SelectorQueryTest, NotMatchingPseudoElement) {
selector_list = CSSParser::ParseSelector( selector_list = CSSParser::ParseSelector(
CSSParserContext::Create(*document, KURL(), kReferrerPolicyDefault, CSSParserContext::Create(*document, KURL(), kReferrerPolicyDefault,
g_empty_string, WTF::TextEncoding(),
CSSParserContext::kStaticProfile), CSSParserContext::kStaticProfile),
nullptr, "span"); nullptr, "span");
query = SelectorQuery::Adopt(std::move(selector_list)); query = SelectorQuery::Adopt(std::move(selector_list));
...@@ -98,7 +98,7 @@ TEST(SelectorQueryTest, LastOfTypeNotFinishedParsing) { ...@@ -98,7 +98,7 @@ TEST(SelectorQueryTest, LastOfTypeNotFinishedParsing) {
CSSSelectorList selector_list = CSSParser::ParseSelector( CSSSelectorList selector_list = CSSParser::ParseSelector(
CSSParserContext::Create(*document, KURL(), kReferrerPolicyDefault, CSSParserContext::Create(*document, KURL(), kReferrerPolicyDefault,
g_empty_string, WTF::TextEncoding(),
CSSParserContext::kStaticProfile), CSSParserContext::kStaticProfile),
nullptr, "p:last-of-type"); nullptr, "p:last-of-type");
std::unique_ptr<SelectorQuery> query = std::unique_ptr<SelectorQuery> query =
......
...@@ -602,7 +602,7 @@ CSSStyleSheet* StyleEngine::ParseSheet(Element& element, ...@@ -602,7 +602,7 @@ CSSStyleSheet* StyleEngine::ParseSheet(Element& element,
TextPosition start_position) { TextPosition start_position) {
CSSStyleSheet* style_sheet = nullptr; CSSStyleSheet* style_sheet = nullptr;
style_sheet = CSSStyleSheet::CreateInline(element, KURL(), start_position, style_sheet = CSSStyleSheet::CreateInline(element, KURL(), start_position,
GetDocument().characterSet()); GetDocument().Encoding());
style_sheet->Contents()->ParseStringAtPosition(text, start_position); style_sheet->Contents()->ParseStringAtPosition(text, start_position);
return style_sheet; return style_sheet;
} }
......
...@@ -421,7 +421,8 @@ void FrameSerializer::SerializeCSSStyleSheet(CSSStyleSheet& style_sheet, ...@@ -421,7 +421,8 @@ void FrameSerializer::SerializeCSSStyleSheet(CSSStyleSheet& style_sheet,
if (!is_inline_css) { if (!is_inline_css) {
StringBuilder css_text; StringBuilder css_text;
css_text.Append("@charset \""); css_text.Append("@charset \"");
css_text.Append(style_sheet.Contents()->Charset().DeprecatedLower()); css_text.Append(
String(style_sheet.Contents()->Charset().GetName()).DeprecatedLower());
css_text.Append("\";\n\n"); css_text.Append("\";\n\n");
for (unsigned i = 0; i < style_sheet.length(); ++i) { for (unsigned i = 0; i < style_sheet.length(); ++i) {
......
...@@ -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, String(charset.GetName())); GetDocument(), base_url, referrer_policy, charset);
if (StyleSheetContents* restored_sheet = if (StyleSheetContents* restored_sheet =
const_cast<CSSStyleSheetResource*>(cached_style_sheet) const_cast<CSSStyleSheetResource*>(cached_style_sheet)
......
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