Closed
Bug 67235
Opened 24 years ago
Closed 22 years ago
need a general mechanism for marking incremental reflows as constrained
Categories
(Core :: Layout, defect, P3)
Core
Layout
Tracking
()
RESOLVED
INVALID
mozilla1.1alpha
People
(Reporter: buster, Assigned: attinasi)
References
()
Details
(Keywords: perf)
broken off from bug 58148. During the NS6 push, I added an embarrassing piece of code called nsBlockFrame::IsIncrementalDamageConstrained(). The name was intended to hint at the general problem: to be efficient, we need to identify incremental reflows whose changes are constrained to a particular child. If we know that an incremental reflow has no impact outside it's local scope, then we can skip all kinds of brute-force code that basically says: "an incremantal change has happened, and I don't know what has changed, so reflow all my children (or recompute all sorts of data, or whatever.) A trivial example of this is typing into a light=weight text field. Typing causes an incremental reflow, but there's no way that the result of that reflow can change the dimensions of the text control itself. (Oh, sure, you could contrive a case where an OnKeyDown event handler changed the style or an attribute of the text field, but we'll capture that as a separate styleChanged reflow anyway, so that's not relevant here.) Today, nsBlockFrame::IsIncrementalDamageConstrained() simply checks to see if the target of the incremental reflow is inside a text control or not. It should be much more general. In particular, we should keep some state in nsHTMLReflowState (probably), most likely just a bit. The target frame itself could set the bit, or any container along the way. For example, in the case of typing in a text field, it would be the text field frame itself that knew it's dimensions hadn't changed.
reducing the number of reflows has all kinds of great perf benefits, so I'm nominating this for moz1.0.
Updated•23 years ago
|
Target Milestone: mozilla1.0 → mozilla1.1
Comment 5•23 years ago
|
||
Does solving this 'bug' improve DHTML performance or is that a 'change style' issue?
Updated•23 years ago
|
Updated•23 years ago
|
OS: Windows NT → All
Hardware: PC → All
Updated•23 years ago
|
Keywords: mozilla1.0+
Updated•23 years ago
|
Keywords: mozilla1.0
Assignee | ||
Comment 6•23 years ago
|
||
The real benefits of fixing this bug are unknown, and the scope of the change is large (probably impacts all of reflow). Until we can quantitatively show a significant improvement for important classes of performance problems, I'd strongly urge that this bug be left alone, at least until we have more resources to devote to experimental and potentially risky changes.
Comment 7•22 years ago
|
||
Did things change in view of fixing bug 129115 ?
Comment 8•22 years ago
|
||
Yes, this is invalid. A frames that can constrain damage (i.e., reflow within the frame is known not to affect any ancestor or sibling frames) should become a `reflow root'. A reflow should be dispatched from the frame.
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•