Open Bug 870162 Opened 13 years ago Updated 3 years ago

Insufficient invalidation when column is removed from a multicol element: column-rule doesn't get repainted

Categories

(Core :: Layout, defect)

All
Linux
defect

Tracking

()

People

(Reporter: dholbert, Unassigned)

Details

Attachments

(2 files, 1 obsolete file)

Attached file testcase 1 (obsolete) —
STR: 1. Load attached testcase EXPECTED RESULTS: After the orange chunk goes away (300 ms), the red column-rule should disappear. ACTUAL RESULTS: The column rule sticks around, until you manually force a repaint by e.g. clicking the window titlebar or selecting some text. Note: Paint flashing shows that *exactly* the orange region is repainted on the dynamic change. Not a regression (or not a recent one, at least) -- I can reproduce in nightly as well as in an old Firefox 4 build that I have laying around. Mozilla/5.0 (X11; Linux x86_64; rv:23.0) Gecko/20130507 Firefox/23.0
Attached file testcase 2
Actually, that last testcase didn't have a long enough delay before the tweak, and as a result it didn't repro reliably in nightly opt builds. (because we'd have a pending full-page repaint that we service after the tweak). This testcase has a longer (1 sec) delay and should repro more reliably.
Attachment #747197 - Attachment is obsolete: true
Attachment #747200 - Attachment description: testcase 1 → testcase 2
(Huh, I still get a full-page repaint after the tweak a good chunk of the time; however, I do hit this bug around 1/5 of my reloads, and I hit it very reliably in my debug build.)
Dholbert, I wonder if this is related to bug 746015 - I've noticed inconsistency in when the column rules get painted, depending on whether they are on or off the screen, as well as the size of the window. I'm wondering if perhaps this issue isn't quite as reproducible as it seems initially... ;)
Might be. It's definitely an invalidation issue here, though, whereas there it seems like it's a not-realizing-that-we-need-to-draw-the-rule issue.
Here's a screencast of the bug [with, at the end, a bit of me-fiddling-with-gnome3-to-get-to-the-context-menu-to-stop-the-recording]. Note that we invalidate *just the orange region* on the dynamic change, and the red region doesn't go away until the whole browser gets repainted due to an OS-level "zoom-out" action.
Attachment #747435 - Attachment description: screencast → screencast (with paint flashing)
Summary: Insufficient invalidation when a multicol's column goes away -- column-rule doesn't get repainted → Insufficient invalidation when column is removed from a multicol element: column-rule doesn't get repainted
See also bug 895570 (which might end up being the same underlying problem as this bug).
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: