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,
CSSStyleSheet* CSSStyleSheet::CreateInline(Node& owner_node,
const KURL& base_url,
const TextPosition& start_position,
const String& encoding) {
const WTF::TextEncoding& encoding) {
CSSParserContext* parser_context = CSSParserContext::Create(
owner_node.GetDocument(), owner_node.GetDocument().BaseURL(),
owner_node.GetDocument().GetReferrerPolicy(), encoding);
......
......@@ -28,6 +28,7 @@
#include "core/css/StyleSheet.h"
#include "platform/heap/Handle.h"
#include "platform/wtf/Noncopyable.h"
#include "platform/wtf/text/TextEncoding.h"
#include "platform/wtf/text/TextPosition.h"
namespace blink {
......@@ -56,7 +57,7 @@ class CORE_EXPORT CSSStyleSheet final : public StyleSheet {
Node&,
const KURL&,
const TextPosition& start_position = TextPosition::MinimumPosition(),
const String& encoding = String());
const WTF::TextEncoding& = WTF::TextEncoding());
static CSSStyleSheet* CreateInline(
StyleSheetContents*,
Node& owner_node,
......
......@@ -34,7 +34,7 @@
#include "core/css/RuleSet.h"
#include "core/css/StyleSheetContents.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"
namespace blink {
......@@ -45,7 +45,7 @@ CSSTestHelper::CSSTestHelper() {
document_ = Document::Create();
TextPosition position;
style_sheet_ =
CSSStyleSheet::CreateInline(*document_, KURL(), position, "UTF-8");
CSSStyleSheet::CreateInline(*document_, KURL(), position, UTF8Encoding());
}
CSSRuleList* CSSTestHelper::CssRules() {
......
......@@ -81,7 +81,7 @@ void StyleRuleImport::SetCSSStyleSheet(
context = parent_style_sheet_->ParserContext();
}
context = CSSParserContext::Create(context, base_url, referrer_policy,
String(charset.GetName()), document);
charset, document);
style_sheet_ = StyleSheetContents::Create(this, href, context);
......@@ -135,7 +135,7 @@ void StyleRuleImport::RequestStyleSheet() {
kClientRequestedCredentials);
options.initiator_info.name = FetchInitiatorTypeNames::css;
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);
if (resource_) {
// if the import rule is issued dynamically, the sheet may be
......
......@@ -93,7 +93,9 @@ class CORE_EXPORT StyleSheetContents
// if there are none.
Document* AnyOwnerDocument() const;
const String& Charset() const { return parser_context_->Charset(); }
const WTF::TextEncoding& Charset() const {
return parser_context_->Charset();
}
bool LoadCompleted() const;
bool HasFailedOrCanceledSubresources() const;
......
......@@ -46,7 +46,7 @@ CSSParserContext* CSSParserContext::Create(
const CSSParserContext* other,
const KURL& base_url,
ReferrerPolicy referrer_policy,
const String& charset,
const WTF::TextEncoding& charset,
const Document* use_counter_document) {
return new CSSParserContext(
base_url, charset, other->mode_, other->match_mode_, other->profile_,
......@@ -62,15 +62,15 @@ CSSParserContext* CSSParserContext::Create(
SelectorProfile profile,
const Document* use_counter_document) {
return new CSSParserContext(
KURL(), g_empty_string, mode, mode, profile, Referrer(), false, false,
kDoNotCheckContentSecurityPolicy, use_counter_document);
KURL(), WTF::TextEncoding(), mode, mode, profile, Referrer(), false,
false, kDoNotCheckContentSecurityPolicy, use_counter_document);
}
// static
CSSParserContext* CSSParserContext::Create(const Document& document) {
return CSSParserContext::Create(document, document.BaseURL(),
document.GetReferrerPolicy(), g_empty_string,
kDynamicProfile);
document.GetReferrerPolicy(),
WTF::TextEncoding(), kDynamicProfile);
}
// static
......@@ -78,7 +78,7 @@ CSSParserContext* CSSParserContext::Create(
const Document& document,
const KURL& base_url_override,
ReferrerPolicy referrer_policy_override,
const String& charset,
const WTF::TextEncoding& charset,
SelectorProfile profile) {
CSSParserMode mode =
document.InQuirksMode() ? kHTMLQuirksMode : kHTMLStandardMode;
......@@ -115,7 +115,7 @@ CSSParserContext* CSSParserContext::Create(
CSSParserContext::CSSParserContext(
const KURL& base_url,
const String& charset,
const WTF::TextEncoding& charset,
CSSParserMode mode,
CSSParserMode match_mode,
SelectorProfile profile,
......@@ -160,9 +160,9 @@ const CSSParserContext* StrictCSSParserContext() {
KURL CSSParserContext::CompleteURL(const String& url) const {
if (url.IsNull())
return KURL();
if (Charset().IsEmpty())
if (!Charset().IsValid())
return KURL(BaseURL(), url);
return KURL(BaseURL(), url, WTF::TextEncoding(Charset()));
return KURL(BaseURL(), url, Charset());
}
void CSSParserContext::Count(WebFeature feature) const {
......
......@@ -40,7 +40,7 @@ class CORE_EXPORT CSSParserContext
static CSSParserContext* Create(const CSSParserContext* other,
const KURL& base_url_override,
ReferrerPolicy referrer_policy_override,
const String& charset_override,
const WTF::TextEncoding& charset_override,
const Document* use_counter_document);
static CSSParserContext* Create(
......@@ -48,11 +48,12 @@ class CORE_EXPORT CSSParserContext
SelectorProfile = kDynamicProfile,
const Document* use_counter_document = nullptr);
static CSSParserContext* Create(const Document&);
static CSSParserContext* Create(const Document&,
const KURL& base_url_override,
ReferrerPolicy referrer_policy_override,
const String& charset = g_empty_string,
SelectorProfile = kDynamicProfile);
static CSSParserContext* Create(
const Document&,
const KURL& base_url_override,
ReferrerPolicy referrer_policy_override,
const WTF::TextEncoding& charset = WTF::TextEncoding(),
SelectorProfile = kDynamicProfile);
bool operator==(const CSSParserContext&) const;
bool operator!=(const CSSParserContext& other) const {
......@@ -62,7 +63,7 @@ class CORE_EXPORT CSSParserContext
CSSParserMode Mode() const { return mode_; }
CSSParserMode MatchMode() const { return match_mode_; }
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_; }
bool IsHTMLDocument() const { return is_html_document_; }
bool IsDynamicProfile() const { return profile_ == kDynamicProfile; }
......@@ -96,7 +97,7 @@ class CORE_EXPORT CSSParserContext
private:
CSSParserContext(const KURL& base_url,
const String& charset,
const WTF::TextEncoding& charset,
CSSParserMode,
CSSParserMode match_mode,
SelectorProfile,
......@@ -107,7 +108,7 @@ class CORE_EXPORT CSSParserContext
const Document* use_counter_document);
KURL base_url_;
String charset_;
WTF::TextEncoding charset_;
CSSParserMode mode_;
CSSParserMode match_mode_;
SelectorProfile profile_ = kDynamicProfile;
......
......@@ -203,7 +203,7 @@ void ProcessingInstruction::SetCSSStyleSheet(
DCHECK(is_css_);
CSSParserContext* parser_context = CSSParserContext::Create(
GetDocument(), base_url, referrer_policy, String(charset.GetName()));
GetDocument(), base_url, referrer_policy, charset);
StyleSheetContents* new_sheet =
StyleSheetContents::Create(href, parser_context);
......
......@@ -550,9 +550,9 @@ SelectorQuery* SelectorQueryCache::Add(const AtomicString& selectors,
return it->value.get();
CSSSelectorList selector_list = CSSParser::ParseSelector(
CSSParserContext::Create(document, document.BaseURL(),
document.GetReferrerPolicy(), g_empty_string,
CSSParserContext::kStaticProfile),
CSSParserContext::Create(
document, document.BaseURL(), document.GetReferrerPolicy(),
WTF::TextEncoding(), CSSParserContext::kStaticProfile),
nullptr, selectors);
if (!selector_list.First()) {
......
......@@ -69,7 +69,7 @@ TEST(SelectorQueryTest, NotMatchingPseudoElement) {
CSSSelectorList selector_list = CSSParser::ParseSelector(
CSSParserContext::Create(*document, KURL(), kReferrerPolicyDefault,
g_empty_string,
WTF::TextEncoding(),
CSSParserContext::kStaticProfile),
nullptr, "span::before");
std::unique_ptr<SelectorQuery> query =
......@@ -79,7 +79,7 @@ TEST(SelectorQueryTest, NotMatchingPseudoElement) {
selector_list = CSSParser::ParseSelector(
CSSParserContext::Create(*document, KURL(), kReferrerPolicyDefault,
g_empty_string,
WTF::TextEncoding(),
CSSParserContext::kStaticProfile),
nullptr, "span");
query = SelectorQuery::Adopt(std::move(selector_list));
......@@ -98,7 +98,7 @@ TEST(SelectorQueryTest, LastOfTypeNotFinishedParsing) {
CSSSelectorList selector_list = CSSParser::ParseSelector(
CSSParserContext::Create(*document, KURL(), kReferrerPolicyDefault,
g_empty_string,
WTF::TextEncoding(),
CSSParserContext::kStaticProfile),
nullptr, "p:last-of-type");
std::unique_ptr<SelectorQuery> query =
......
......@@ -602,7 +602,7 @@ CSSStyleSheet* StyleEngine::ParseSheet(Element& element,
TextPosition start_position) {
CSSStyleSheet* style_sheet = nullptr;
style_sheet = CSSStyleSheet::CreateInline(element, KURL(), start_position,
GetDocument().characterSet());
GetDocument().Encoding());
style_sheet->Contents()->ParseStringAtPosition(text, start_position);
return style_sheet;
}
......
......@@ -421,7 +421,8 @@ void FrameSerializer::SerializeCSSStyleSheet(CSSStyleSheet& style_sheet,
if (!is_inline_css) {
StringBuilder css_text;
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");
for (unsigned i = 0; i < style_sheet.length(); ++i) {
......
......@@ -115,7 +115,7 @@ void LinkStyle::SetCSSStyleSheet(
}
CSSParserContext* parser_context = CSSParserContext::Create(
GetDocument(), base_url, referrer_policy, String(charset.GetName()));
GetDocument(), base_url, referrer_policy, charset);
if (StyleSheetContents* restored_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