Bug 77831

Summary: REGRESSION(r106756): 10% performance hit on DOM/Template.
Product: WebKit Reporter: Andreas Kling <kling>
Component: DOMAssignee: Andreas Kling <kling>
Status: RESOLVED FIXED    
Severity: Normal CC: darin, jchaffraix, koivisto, macpherson, menard, rniwa, simon.fraser, webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Kind of a patch rniwa: review+

Description Andreas Kling 2012-02-05 03:36:07 PST
The removal of CSSMappedAttributeDeclaration on bug 77820 caused a ~10% perf hit on the DOM/Template test.
This happens because the CSS values generated from presentation attributes are no longer created in the Document's CSSValuePool.
Comment 1 Andreas Kling 2012-02-05 04:54:35 PST
I'm gonna sleep on this idea, but I'm thinking we could specialize StypePropertySet for attribute styles, to share some logic with inline styles.

It would have a parent element, but wouldn't invalidateStyleAttribute() when mutating. We might also be able to use setNeedsStyleRecalc(InlineStyleChange) instead of FullStyleChange..
Comment 2 Andreas Kling 2012-02-05 18:00:32 PST
Created attachment 125547 [details]
Kind of a patch
Comment 3 Julien Chaffraix 2012-02-06 13:27:34 PST
This bug is a show-stopper for the Chromium port. This regression is likely causing http://crbug.com/112854 and preventing Chromium from rolling a new version of WebKit.

Andreas, could you make sure the fix get landed sooner rather than later?
Comment 4 Ryosuke Niwa 2012-02-06 14:12:02 PST
kling, could you land this patch ASAP? I can land on your behalf as well if you're busy for something else.
Comment 5 Andreas Kling 2012-02-06 15:14:22 PST
Committed r106863: <http://trac.webkit.org/changeset/106863>