Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(675)

Unified Diff: Source/core/css/StyleSheetContents.cpp

Issue 756313002: Remove CSSCharsetRule (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: tests Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/css/StyleSheetContents.h ('k') | Source/core/css/parser/CSSGrammar.y » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/css/StyleSheetContents.cpp
diff --git a/Source/core/css/StyleSheetContents.cpp b/Source/core/css/StyleSheetContents.cpp
index d942156ab69ecb6c6966174eca8316bfa4232716..46856ccb2e25de0d1d6e05fe1b360519cc4787eb 100644
--- a/Source/core/css/StyleSheetContents.cpp
+++ b/Source/core/css/StyleSheetContents.cpp
@@ -75,7 +75,6 @@ StyleSheetContents::StyleSheetContents(StyleRuleImport* ownerRule, const String&
StyleSheetContents::StyleSheetContents(const StyleSheetContents& o)
: m_ownerRule(nullptr)
, m_originalURL(o.m_originalURL)
- , m_encodingFromCharsetRule(o.m_encodingFromCharsetRule)
, m_importRules(o.m_importRules.size())
, m_childRules(o.m_childRules.size())
, m_namespaces(o.m_namespaces)
@@ -146,9 +145,8 @@ bool StyleSheetContents::isCacheable() const
void StyleSheetContents::parserAppendRule(PassRefPtrWillBeRawPtr<StyleRuleBase> rule)
{
- ASSERT(!rule->isCharsetRule());
if (rule->isImportRule()) {
- // Parser enforces that @import rules come before anything else except @charset.
+ // Parser enforces that @import rules come before anything else
ASSERT(m_childRules.isEmpty());
StyleRuleImport* importRule = toStyleRuleImport(rule.get());
if (importRule->mediaQueries())
@@ -179,31 +177,16 @@ StyleRuleBase* StyleSheetContents::ruleAt(unsigned index) const
{
ASSERT_WITH_SECURITY_IMPLICATION(index < ruleCount());
- unsigned childVectorIndex = index;
- if (hasCharsetRule()) {
- if (index == 0)
- return 0;
- --childVectorIndex;
- }
- if (childVectorIndex < m_importRules.size())
- return m_importRules[childVectorIndex].get();
+ if (index < m_importRules.size())
+ return m_importRules[index].get();
- childVectorIndex -= m_importRules.size();
- return m_childRules[childVectorIndex].get();
+ index -= m_importRules.size();
+ return m_childRules[index].get();
}
unsigned StyleSheetContents::ruleCount() const
{
- unsigned result = 0;
- result += hasCharsetRule() ? 1 : 0;
- result += m_importRules.size();
- result += m_childRules.size();
- return result;
-}
-
-void StyleSheetContents::clearCharsetRule()
-{
- m_encodingFromCharsetRule = String();
+ return m_importRules.size() + m_childRules.size();
}
void StyleSheetContents::clearRules()
@@ -214,34 +197,14 @@ void StyleSheetContents::clearRules()
}
m_importRules.clear();
m_childRules.clear();
- clearCharsetRule();
-}
-
-void StyleSheetContents::parserSetEncodingFromCharsetRule(const String& encoding)
-{
- // Parser enforces that there is ever only one @charset.
- ASSERT(m_encodingFromCharsetRule.isNull());
- m_encodingFromCharsetRule = encoding;
}
bool StyleSheetContents::wrapperInsertRule(PassRefPtrWillBeRawPtr<StyleRuleBase> rule, unsigned index)
{
ASSERT(m_isMutable);
ASSERT_WITH_SECURITY_IMPLICATION(index <= ruleCount());
- // Parser::parseRule doesn't currently allow @charset so we don't need to deal with it.
- ASSERT(!rule->isCharsetRule());
-
- unsigned childVectorIndex = index;
- // m_childRules does not contain @charset which is always in index 0 if it exists.
- if (hasCharsetRule()) {
- if (childVectorIndex == 0) {
- // Nothing can be inserted before @charset.
- return false;
- }
- --childVectorIndex;
- }
- if (childVectorIndex < m_importRules.size() || (childVectorIndex == m_importRules.size() && rule->isImportRule())) {
+ if (index < m_importRules.size() || (index == m_importRules.size() && rule->isImportRule())) {
// Inserting non-import rule before @import is not allowed.
if (!rule->isImportRule())
return false;
@@ -250,9 +213,9 @@ bool StyleSheetContents::wrapperInsertRule(PassRefPtrWillBeRawPtr<StyleRuleBase>
if (importRule->mediaQueries())
setHasMediaQueries();
- m_importRules.insert(childVectorIndex, importRule);
- m_importRules[childVectorIndex]->setParentStyleSheet(this);
- m_importRules[childVectorIndex]->requestStyleSheet();
+ m_importRules.insert(index, importRule);
+ m_importRules[index]->setParentStyleSheet(this);
+ m_importRules[index]->requestStyleSheet();
// FIXME: Stylesheet doesn't actually change meaningfully before the imported sheets are loaded.
return true;
}
@@ -263,11 +226,11 @@ bool StyleSheetContents::wrapperInsertRule(PassRefPtrWillBeRawPtr<StyleRuleBase>
if (rule->isMediaRule())
setHasMediaQueries();
- childVectorIndex -= m_importRules.size();
+ index -= m_importRules.size();
if (rule->isFontFaceRule())
setHasFontFaceRule(true);
- m_childRules.insert(childVectorIndex, rule);
+ m_childRules.insert(index, rule);
return true;
}
@@ -276,26 +239,18 @@ void StyleSheetContents::wrapperDeleteRule(unsigned index)
ASSERT(m_isMutable);
ASSERT_WITH_SECURITY_IMPLICATION(index < ruleCount());
- unsigned childVectorIndex = index;
- if (hasCharsetRule()) {
- if (childVectorIndex == 0) {
- clearCharsetRule();
- return;
- }
- --childVectorIndex;
- }
- if (childVectorIndex < m_importRules.size()) {
- m_importRules[childVectorIndex]->clearParentStyleSheet();
- if (m_importRules[childVectorIndex]->isFontFaceRule())
- notifyRemoveFontFaceRule(toStyleRuleFontFace(m_importRules[childVectorIndex].get()));
- m_importRules.remove(childVectorIndex);
+ if (index < m_importRules.size()) {
+ m_importRules[index]->clearParentStyleSheet();
+ if (m_importRules[index]->isFontFaceRule())
+ notifyRemoveFontFaceRule(toStyleRuleFontFace(m_importRules[index].get()));
+ m_importRules.remove(index);
return;
}
- childVectorIndex -= m_importRules.size();
+ index -= m_importRules.size();
- if (m_childRules[childVectorIndex]->isFontFaceRule())
- notifyRemoveFontFaceRule(toStyleRuleFontFace(m_childRules[childVectorIndex].get()));
- m_childRules.remove(childVectorIndex);
+ if (m_childRules[index]->isFontFaceRule())
+ notifyRemoveFontFaceRule(toStyleRuleFontFace(m_childRules[index].get()));
+ m_childRules.remove(index);
}
void StyleSheetContents::parserAddNamespace(const AtomicString& prefix, const AtomicString& uri)
« no previous file with comments | « Source/core/css/StyleSheetContents.h ('k') | Source/core/css/parser/CSSGrammar.y » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698