Title: [131566] branches/chromium/1229/Source/WebCore/css/CSSParser.cpp
- Revision
- 131566
- Author
- [email protected]
- Date
- 2012-10-17 01:18:17 -0700 (Wed, 17 Oct 2012)
Log Message
Merge 130883 - Web Inspector: Semantically incorrect CSS rules result in broken source code data
https://bugs.webkit.org/show_bug.cgi?id=98520
Reviewed by Vsevolod Vlasov.
Source/WebCore:
Pop and throw away rule data from the stack when data have been collected for a semantically invalid CSS rule
(which is not going to be created).
* css/CSSParser.cpp:
(WebCore::CSSParser::createImportRule):
(WebCore::CSSParser::createFontFaceRule):
(WebCore::CSSParser::createPageRule):
(WebCore::CSSParser::createRegionRule):
[email protected]
Review URL: https://codereview.chromium.org/11183028
Modified Paths
Diff
Modified: branches/chromium/1229/Source/WebCore/css/CSSParser.cpp (131565 => 131566)
--- branches/chromium/1229/Source/WebCore/css/CSSParser.cpp 2012-10-17 08:18:07 UTC (rev 131565)
+++ branches/chromium/1229/Source/WebCore/css/CSSParser.cpp 2012-10-17 08:18:17 UTC (rev 131566)
@@ -9566,8 +9566,10 @@
StyleRuleBase* CSSParser::createImportRule(const CSSParserString& url, MediaQuerySet* media)
{
- if (!media || !m_allowImportRules)
+ if (!media || !m_allowImportRules) {
+ popRuleData();
return 0;
+ }
RefPtr<StyleRuleImport> rule = StyleRuleImport::create(url, media);
StyleRuleImport* result = rule.get();
m_parsedRules.append(rule.release());
@@ -9679,6 +9681,7 @@
// have 'initial' value and cannot 'inherit' from parent.
// See http://dev.w3.org/csswg/css3-fonts/#font-family-desc
clearProperties();
+ popRuleData();
return 0;
}
}
@@ -9768,7 +9771,8 @@
pageRule = rule.get();
m_parsedRules.append(rule.release());
processAndAddNewRuleToSourceTreeIfNeeded();
- }
+ } else
+ popRuleData();
clearProperties();
return pageRule;
}
@@ -9781,8 +9785,10 @@
StyleRuleBase* CSSParser::createRegionRule(Vector<OwnPtr<CSSParserSelector> >* regionSelector, RuleList* rules)
{
- if (!cssRegionsEnabled() || !regionSelector || !rules)
+ if (!cssRegionsEnabled() || !regionSelector || !rules) {
+ popRuleData();
return 0;
+ }
m_allowImportRules = m_allowNamespaceDeclarations = false;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes