CSSParser should return ImmutableStylePropertySets.
The StylePropertySets created by CSSParser were already immutable.
Let this be reflected in the pointer types returned.
This is a backport from WebKit r148399. Patch by Andreas Kling reviewed by Anders Carlsson.
R=eseidel@chromium.org
Review URL: https://codereview.chromium.org/16020007
git-svn-id: svn://svn.chromium.org/blink/trunk@151127 bbb929c8-8fbe-4397-9dbb-9b2b20218538
diff --git a/Source/core/css/CSSParser.cpp b/Source/core/css/CSSParser.cpp
index 1d0e02b..6789b2c 100644
--- a/Source/core/css/CSSParser.cpp
+++ b/Source/core/css/CSSParser.cpp
@@ -1298,7 +1298,7 @@
m_selectorListForParseSelector = 0;
}
-PassRefPtr<StylePropertySet> CSSParser::parseInlineStyleDeclaration(const String& string, Element* element)
+PassRefPtr<ImmutableStylePropertySet> CSSParser::parseInlineStyleDeclaration(const String& string, Element* element)
{
Document* document = element->document();
CSSParserContext context = document->elementSheet()->contents()->parserContext();
@@ -1306,7 +1306,7 @@
return CSSParser(context, UseCounter::getFrom(document)).parseDeclaration(string, document->elementSheet()->contents());
}
-PassRefPtr<StylePropertySet> CSSParser::parseDeclaration(const String& string, StyleSheetContents* contextStyleSheet)
+PassRefPtr<ImmutableStylePropertySet> CSSParser::parseDeclaration(const String& string, StyleSheetContents* contextStyleSheet)
{
setStyleSheet(contextStyleSheet);
@@ -1317,7 +1317,7 @@
if (m_hasFontFaceOnlyValues)
deleteFontFaceOnlyValues();
- RefPtr<StylePropertySet> style = createStylePropertySet();
+ RefPtr<ImmutableStylePropertySet> style = createStylePropertySet();
clearProperties();
return style.release();
}
@@ -1392,7 +1392,7 @@
}
}
-PassRefPtr<StylePropertySet> CSSParser::createStylePropertySet()
+PassRefPtr<ImmutableStylePropertySet> CSSParser::createStylePropertySet()
{
BitArray<numCSSProperties> seenProperties;
size_t unusedEntries = m_parsedProperties.size();
diff --git a/Source/core/css/CSSParser.h b/Source/core/css/CSSParser.h
index 58876a3..428dae9 100644
--- a/Source/core/css/CSSParser.h
+++ b/Source/core/css/CSSParser.h
@@ -52,6 +52,7 @@
class CSSBasicShape;
class Document;
class Element;
+class ImmutableStylePropertySet;
class MediaQueryExp;
class MediaQuerySet;
class StyleKeyframe;
@@ -98,7 +99,7 @@
static PassRefPtr<CSSValueList> parseFontFaceValue(const AtomicString&);
PassRefPtr<CSSPrimitiveValue> parseValidPrimitive(int ident, CSSParserValue*);
bool parseDeclaration(StylePropertySet*, const String&, SourceDataHandler*, StyleSheetContents* contextStyleSheet);
- static PassRefPtr<StylePropertySet> parseInlineStyleDeclaration(const String&, Element*);
+ static PassRefPtr<ImmutableStylePropertySet> parseInlineStyleDeclaration(const String&, Element*);
PassOwnPtr<MediaQuery> parseMediaQuery(const String&);
void addPropertyWithPrefixingVariant(CSSPropertyID, PassRefPtr<CSSValue>, bool important, bool implicit = false);
@@ -344,7 +345,7 @@
void clearProperties();
- PassRefPtr<StylePropertySet> createStylePropertySet();
+ PassRefPtr<ImmutableStylePropertySet> createStylePropertySet();
CSSParserContext m_context;
@@ -531,7 +532,7 @@
bool parseGeneratedImage(CSSParserValueList*, RefPtr<CSSValue>&);
bool parseValue(StylePropertySet*, CSSPropertyID, const String&, bool important, StyleSheetContents* contextStyleSheet);
- PassRefPtr<StylePropertySet> parseDeclaration(const String&, StyleSheetContents* contextStyleSheet);
+ PassRefPtr<ImmutableStylePropertySet> parseDeclaration(const String&, StyleSheetContents* contextStyleSheet);
enum SizeParameterType {
None,