Title: [131430] branches/chromium/1229/Source/WebCore/css
Revision
131430
Author
apav...@chromium.org
Date
2012-10-16 02:10:08 -0700 (Tue, 16 Oct 2012)

Log Message

Merge 130511 - Web Inspector: [Styles] Unable to edit properties in broken stylesheets
https://bugs.webkit.org/show_bug.cgi?id=98246

Reviewed by Vsevolod Vlasov.

Source/WebCore:

Pop source data for invalid rules off the stack whenever we have consecutive CSSParser::markRuleHeaderStart() invocations.

* css/CSSParser.cpp:
(WebCore::CSSParser::popRuleData):
(WebCore::CSSParser::markRuleHeaderStart):
(WebCore::CSSParser::markRuleBodyStart):
* css/CSSParser.h:
(CSSParser):

TBR=apav...@chromium.org
Review URL: https://codereview.chromium.org/11179002

Modified Paths

Diff

Modified: branches/chromium/1229/Source/WebCore/css/CSSParser.cpp (131429 => 131430)


--- branches/chromium/1229/Source/WebCore/css/CSSParser.cpp	2012-10-16 08:51:49 UTC (rev 131429)
+++ branches/chromium/1229/Source/WebCore/css/CSSParser.cpp	2012-10-16 09:10:08 UTC (rev 131430)
@@ -9627,6 +9627,7 @@
         return 0;
 
     ASSERT(!m_currentRuleDataStack->isEmpty());
+    m_currentRuleData.clear();
     RefPtr<CSSRuleSourceData> data = ""
     m_currentRuleDataStack->removeLast();
     return data.release();
@@ -9920,8 +9921,14 @@
 {
     if (!isExtractingSourceData())
         return;
+
+    // Pop off data for a previous invalid rule.
+    if (m_currentRuleData)
+        m_currentRuleDataStack->removeLast();
+
     RefPtr<CSSRuleSourceData> data = ""
     data->ruleHeaderRange.start = m_tokenStart - m_dataStart.get();
+    m_currentRuleData = data;
     m_currentRuleDataStack->append(data.release());
 }
 
@@ -9944,6 +9951,7 @@
 {
     if (!isExtractingSourceData())
         return;
+    m_currentRuleData.clear();
     unsigned offset = m_tokenStart - m_dataStart.get();
     if (*m_tokenStart == '{')
         ++offset; // Skip the rule body opening brace.

Modified: branches/chromium/1229/Source/WebCore/css/CSSParser.h (131429 => 131430)


--- branches/chromium/1229/Source/WebCore/css/CSSParser.h	2012-10-16 08:51:49 UTC (rev 131429)
+++ branches/chromium/1229/Source/WebCore/css/CSSParser.h	2012-10-16 09:10:08 UTC (rev 131430)
@@ -334,6 +334,7 @@
     size_t m_parsedTextPrefixLength;
     SourceRange m_propertyRange;
     OwnPtr<RuleSourceDataList> m_currentRuleDataStack;
+    RefPtr<CSSRuleSourceData> m_currentRuleData;
     RuleSourceDataList* m_ruleSourceDataResult;
 
     void fixUnparsedPropertyRanges(CSSRuleSourceData*);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to