| Index: Source/core/inspector/InspectorStyleSheet.cpp
|
| diff --git a/Source/core/inspector/InspectorStyleSheet.cpp b/Source/core/inspector/InspectorStyleSheet.cpp
|
| index eb02db38e53f485546e3adfbd35c7160bc447af5..dfd2992d641445fc33ce3cc2aca9a0a4d90fecda 100644
|
| --- a/Source/core/inspector/InspectorStyleSheet.cpp
|
| +++ b/Source/core/inspector/InspectorStyleSheet.cpp
|
| @@ -59,15 +59,15 @@ using WebCore::RuleSourceDataList;
|
| using WebCore::CSSRuleSourceData;
|
| using WebCore::CSSStyleSheet;
|
|
|
| -static PassOwnPtr<WebCore::BisonCSSParser> createCSSParser(WebCore::Document* document)
|
| -{
|
| - return adoptPtr(new WebCore::BisonCSSParser(document ? WebCore::CSSParserContext(*document, 0) : WebCore::strictCSSParserContext()));
|
| -}
|
| -
|
| namespace {
|
|
|
| using namespace WebCore;
|
|
|
| +static CSSParserContext parserContextForDocument(Document *document)
|
| +{
|
| + return document ? CSSParserContext(*document, 0) : strictCSSParserContext();
|
| +}
|
| +
|
| class StyleSheetHandler FINAL : public CSSParserObserver {
|
| public:
|
| StyleSheetHandler(const String& parsedText, Document* document, StyleSheetContents* styleSheetContents, RuleSourceDataList* result)
|
| @@ -75,6 +75,7 @@ public:
|
| , m_document(document)
|
| , m_styleSheetContents(styleSheetContents)
|
| , m_result(result)
|
| + , m_commentParser(parserContextForDocument(document))
|
| , m_propertyRangeStart(UINT_MAX)
|
| , m_selectorRangeStart(UINT_MAX)
|
| , m_commentRangeStart(UINT_MAX)
|
| @@ -106,7 +107,7 @@ private:
|
| RuleSourceDataList* m_result;
|
| RuleSourceDataList m_currentRuleDataStack;
|
| RefPtr<CSSRuleSourceData> m_currentRuleData;
|
| - OwnPtr<BisonCSSParser> m_commentParser;
|
| + BisonCSSParser m_commentParser;
|
| unsigned m_propertyRangeStart;
|
| unsigned m_selectorRangeStart;
|
| unsigned m_commentRangeStart;
|
| @@ -333,15 +334,13 @@ void StyleSheetHandler::endComment(unsigned offset)
|
| return;
|
|
|
| // FIXME: Use the actual rule type rather than STYLE_RULE?
|
| - if (!m_commentParser)
|
| - m_commentParser = createCSSParser(m_document);
|
| RuleSourceDataList sourceData;
|
|
|
| // FIXME: Use another subclass of BisonCSSParser::SourceDataHandler and assert that
|
| // no comments are encountered (will not need m_document and m_styleSheetContents).
|
| StyleSheetHandler handler(commentText, m_document, m_styleSheetContents, &sourceData);
|
| RefPtrWillBeRawPtr<MutableStylePropertySet> tempMutableStyle = MutableStylePropertySet::create();
|
| - m_commentParser->parseDeclaration(tempMutableStyle.get(), commentText, &handler, m_styleSheetContents);
|
| + m_commentParser.parseDeclaration(tempMutableStyle.get(), commentText, &handler, m_styleSheetContents);
|
| Vector<CSSPropertySourceData>& commentPropertyData = sourceData.first()->styleSourceData->propertyData;
|
| if (commentPropertyData.size() != 1)
|
| return;
|
| @@ -419,7 +418,7 @@ bool ParsedStyleSheet::ensureSourceData()
|
| RefPtrWillBeRawPtr<StyleSheetContents> newStyleSheet = StyleSheetContents::create(strictCSSParserContext());
|
| OwnPtr<RuleSourceDataList> result = adoptPtr(new RuleSourceDataList());
|
| StyleSheetHandler handler(text(), m_pageStyleSheet->ownerDocument(), newStyleSheet.get(), result.get());
|
| - createCSSParser(m_pageStyleSheet->ownerDocument())->parseSheet(newStyleSheet.get(), text(), TextPosition::minimumPosition(), &handler);
|
| + BisonCSSParser(parserContextForDocument(m_pageStyleSheet->ownerDocument())).parseSheet(newStyleSheet.get(), text(), TextPosition::minimumPosition(), &handler);
|
| setSourceData(result.release());
|
| return hasSourceData();
|
| }
|
| @@ -556,7 +555,7 @@ bool InspectorStyle::verifyPropertyText(const String& propertyText, bool canOmit
|
| RefPtrWillBeRawPtr<StyleSheetContents> styleSheetContents = StyleSheetContents::create(strictCSSParserContext());
|
| String declarationText = propertyText + (canOmitSemicolon ? ";" : " ") + bogusPropertyName + ": none";
|
| StyleSheetHandler handler(declarationText, ownerDocument(), styleSheetContents.get(), &sourceData);
|
| - createCSSParser(ownerDocument())->parseDeclaration(tempMutableStyle.get(), declarationText, &handler, styleSheetContents.get());
|
| + BisonCSSParser(parserContextForDocument(ownerDocument())).parseDeclaration(tempMutableStyle.get(), declarationText, &handler, styleSheetContents.get());
|
| Vector<CSSPropertySourceData>& propertyData = sourceData.first()->styleSourceData->propertyData;
|
| unsigned propertyCount = propertyData.size();
|
|
|
| @@ -994,7 +993,7 @@ bool InspectorStyleSheet::setRuleSelector(const InspectorCSSId& id, const String
|
| static bool checkStyleRuleSelector(Document* document, const String& selector)
|
| {
|
| CSSSelectorList selectorList;
|
| - createCSSParser(document)->parseSelector(selector, selectorList);
|
| + BisonCSSParser(parserContextForDocument(document)).parseSelector(selector, selectorList);
|
| return selectorList.isValid();
|
| }
|
|
|
| @@ -1596,7 +1595,7 @@ PassRefPtr<CSSRuleSourceData> InspectorStyleSheetForInlineStyle::getStyleAttribu
|
| RefPtrWillBeRawPtr<MutableStylePropertySet> tempDeclaration = MutableStylePropertySet::create();
|
| RuleSourceDataList ruleSourceDataResult;
|
| StyleSheetHandler handler(m_styleText, &m_element->document(), m_element->document().elementSheet().contents(), &ruleSourceDataResult);
|
| - createCSSParser(&m_element->document())->parseDeclaration(tempDeclaration.get(), m_styleText, &handler, m_element->document().elementSheet().contents());
|
| + BisonCSSParser(parserContextForDocument(&m_element->document())).parseDeclaration(tempDeclaration.get(), m_styleText, &handler, m_element->document().elementSheet().contents());
|
| return ruleSourceDataResult.first().release();
|
| }
|
|
|
|
|