Title: [131163] branches/chromium/1271/Source/WebCore/css
Revision
131163
Author
[email protected]
Date
2012-10-12 02:36:36 -0700 (Fri, 12 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.

Test: inspector/styles/parse-stylesheet-errors.html

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

[email protected]
Review URL: https://codereview.chromium.org/11048052

Modified Paths

Diff

Modified: branches/chromium/1271/Source/WebCore/css/CSSParser.cpp (131162 => 131163)


--- branches/chromium/1271/Source/WebCore/css/CSSParser.cpp	2012-10-12 09:24:40 UTC (rev 131162)
+++ branches/chromium/1271/Source/WebCore/css/CSSParser.cpp	2012-10-12 09:36:36 UTC (rev 131163)
@@ -9986,6 +9986,7 @@
         return 0;
 
     ASSERT(!m_currentRuleDataStack->isEmpty());
+    m_currentRuleData.clear();
     RefPtr<CSSRuleSourceData> data = ""
     m_currentRuleDataStack->removeLast();
     return data.release();
@@ -10290,8 +10291,14 @@
 {
     if (!isExtractingSourceData())
         return;
+
+    // Pop off data for a previous invalid rule.
+    if (m_currentRuleData)
+        m_currentRuleDataStack->removeLast();
+
     RefPtr<CSSRuleSourceData> data = ""
     data->ruleHeaderRange.start = tokenStartOffset();
+    m_currentRuleData = data;
     m_currentRuleDataStack->append(data.release());
 }
 
@@ -10325,6 +10332,7 @@
 {
     if (!isExtractingSourceData())
         return;
+    m_currentRuleData.clear();
     unsigned offset = tokenStartOffset();
     if (tokenStartChar() == '{')
         ++offset; // Skip the rule body opening brace.

Modified: branches/chromium/1271/Source/WebCore/css/CSSParser.h (131162 => 131163)


--- branches/chromium/1271/Source/WebCore/css/CSSParser.h	2012-10-12 09:24:40 UTC (rev 131162)
+++ branches/chromium/1271/Source/WebCore/css/CSSParser.h	2012-10-12 09:36:36 UTC (rev 131163)
@@ -344,6 +344,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
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to