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