Summary: | REGRESSION(r125294): A style rule with more than 8192 selectors can cause style corruption. | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Andreas Kling <kling> | ||||||||
Component: | CSS | Assignee: | Andreas Kling <kling> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | allan.jensen, commit-queue, esprehn+autocc, glenn, jberlin, koivisto, macpherson, menard | ||||||||
Priority: | P2 | Keywords: | InRadar, Regression | ||||||||
Version: | 528+ (Nightly build) | ||||||||||
Hardware: | Unspecified | ||||||||||
OS: | Unspecified | ||||||||||
Attachments: |
|
Description
Andreas Kling
2013-07-03 13:15:48 PDT
Created attachment 206074 [details]
Snack for EWS
Here's a first stab at this; let's see what EWS thinks.
Created attachment 206235 [details]
Proposed patch
Patch introducing 8192 selector cap. Includes layout test documenting the behavior.
Comment on attachment 206235 [details] Proposed patch View in context: https://bugs.webkit.org/attachment.cgi?id=206235&action=review > Source/WebCore/css/StyleRule.cpp:275 > +Vector<RefPtr<StyleRule> > StyleRule::splitIntoMultipleRulesWithMaximumSelectorCount(unsigned maxSelectorCount) const max -> maximum > Source/WebCore/css/StyleRule.cpp:284 > + for (const CSSSelector* s = selectorList().first(); s; s = CSSSelectorList::next(s)) { s?! > Source/WebCore/css/StyleRule.cpp:285 > + for (const CSSSelector* subSelector = s; subSelector; subSelector = subSelector->tagHistory()) component or selectorComponent would be a better name. We use "subSelector" specifically to mean components that match a single element (relation == SubSelector). r=me Created attachment 206237 [details]
Land for patching
Comment on attachment 206237 [details] Land for patching Clearing flags on attachment: 206237 Committed r152453: <http://trac.webkit.org/changeset/152453> All reviewed patches have been landed. Closing bug. |