Bug 116397

Summary: Refactor RenderStyle::diff()
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Layout and RenderingAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: bdakin, commit-queue, esprehn+autocc, glenn, hyatt, koivisto, simon.fraser
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 116319    
Attachments:
Description Flags
Patch kling: review+

Description Simon Fraser (smfr) 2013-05-18 13:32:13 PDT
RenderStyle::diff() is tricky for two reasons.

First, there's nothing to enforce the requirement that "more work" diffs have to be detected before "less work" diffs (i.e. we have to always check for changes that result in StyleDifferenceLayout before changes that result in StyleDifferenceRepaint).

Secondly, in some cases, even when we return, say, StyleDifferenceLayoutPositionedMovementOnly or StyleDifferenceRecompositeLayer, we also need to check for changes that require repaint, and that's not possible now.
Comment 1 Simon Fraser (smfr) 2013-05-18 14:24:49 PDT
Created attachment 202217 [details]
Patch
Comment 2 Andreas Kling 2013-05-18 18:11:28 PDT
Comment on attachment 202217 [details]
Patch

r=me, this is great.
Comment 3 Simon Fraser (smfr) 2013-05-19 19:27:13 PDT
http://trac.webkit.org/changeset/150348