Confirmed on current linux trunk.
-> all/all (seeing this on OS X 1.3RC build)
Confirming Moz 1.3RC Windows
Created attachment 117809 [details] [diff] [review] Proposed patch proposed fix. This changes the behavior of the CheckInvalidate function. We're now more explicit about what it does (see the comment). And we take care of some cases that the function was missing. I removed the reflow command checks from the function. I don't see why it's necessary to detect a style change; the style change hints for the changed property (e.g., 'border') should take care of any invalidation.
Comment on attachment 117809 [details] [diff] [review] Proposed patch I think jkeiser created this function.
Note that the patch isn't 'optimal'; there are lots of ways we could reduce invalidation by checking more style information or by invalidating smaller areas. But I'm unconvinced that such optimization is necessary.
Comment on attachment 117809 [details] [diff] [review] Proposed patch This is certainly a lot simpler and more readable, so as long as it doesn't regress pageload time I'm fine with it.
Comment on attachment 117809 [details] [diff] [review] Proposed patch Hmm, what about backgrounds that tile? And non-percent backgrounds that are aligneed at the bottom right? I don't see how this will fix all the background problems.
> And non-percent backgrounds that are aligneed at the bottom right? They get translated to percentages in the style system, as far as I can tell. > what about backgrounds that tile? Any part of the background that falls outside the difference between the old and new frame areas will be repainted by the caller. That's what the contract for CheckInvalidateSizeChange says. We only have to worry about the case where changing the frame size requires the entire background to be repainted.
Does this handle things like the case where we used to have borders, but don't anymore?
Comment on attachment 117809 [details] [diff] [review] Proposed patch (Or is that handled by the style change system, which makes a border change a reflow *and* repaint?) Anyway, sr=dbaron if you think there's a good answer to my question.
Yes. Style changes to the borders and background and so on are handled by the style system hinting (which should force a VISUAL change, meaning full repaint of the frame). All this patch is for is size changes where the actual styles didn't change.
*** Bug 199812 has been marked as a duplicate of this bug. ***