Closed Bug 1370833 Opened 8 years ago Closed 8 years ago

make less *InvalidateTableFrame* calls so we won't over painting the table.

Categories

(Core :: Layout, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla56
Tracking Status
firefox56 --- fixed

People

(Reporter: ywu, Assigned: ywu)

Details

Attachments

(3 files, 2 obsolete files)

As Bug 1362412 Comment 16 mentioned, we should remove "manual invalidation" in table and count on comparison of the display items when we have a not border-collapse table.
Attached file table-collapse.html (obsolete) —
this attachment could help to debug.
Assignee: nobody → ywu
Attached file table-collapse.html (obsolete) —
From this test case, you can see that we over paint the whole table whether we have the border-collapse style or not.
Attachment #8875216 - Attachment is obsolete: true
I am going to remove the calls that call to *nsTableFrame::InvalidateTableFrame*
Attached file table-test.html
Attachment #8875543 - Attachment is obsolete: true
Comment on attachment 8875968 [details] Bug 1370833 Part 1 - make less table invalidations for non-border-collapse tables. Hi Matt, In test-case.html, turning on paint_flashing, you can see we paint the whole table every second even though some part of the table's contents haven't changed at all. I tried to remove those suspicious calls and confirmed the area which is being repainted has shrunk to the reasonable area. try: https://treeherder.mozilla.org/#/jobs?repo=try&revision=6372abefde2797dee46423860e697d0fff2cf236&selectedJob=105706808 How do you think? However, I can still see some suspicious calls which call to "nsTableFrame::InvalidateTableFrame" in nsTableRowFrame.cpp, nsTableRowGroupFrame.cpp... etc but I haven't been able to make the tests which can hit those part. I think we could land what test-case.html hits first and see if there is any complains afterward. If not, we remove all of them in our codebase. thanks!
Attachment #8875968 - Flags: review?(matt.woodrow)
Summary: Remove "manual invalidation" in table and count on comparison of the display items when we have a not border-collapse table. → make less *InvalidateTableFrame* calls so we won't over painting the table.
Comment on attachment 8875968 [details] Bug 1370833 Part 1 - make less table invalidations for non-border-collapse tables. https://reviewboard.mozilla.org/r/147376/#review151638 ::: commit-message-7efda:2 (Diff revision 1) > +Bug 1370833 - Remove over invalidation tableFrame. > + Could you put more details in commit message so that people could have better understanding regarding to this changeset?
Comment on attachment 8875968 [details] Bug 1370833 Part 1 - make less table invalidations for non-border-collapse tables. Review request updated; see interdiff: https://reviewboard.mozilla.org/r/147376/diff/1-2/
Attachment #8875968 - Attachment description: Bug 1370833 - Remove over invalidation tableFrame. → Bug 1370833 - make less table invalidations for non-border-collapse tables.
Comment on attachment 8875968 [details] Bug 1370833 Part 1 - make less table invalidations for non-border-collapse tables. https://reviewboard.mozilla.org/r/147376/#review152056 Looks good! Can you also add a reftest (or a few?) that make sure we're invalidating correctly. You want to add 'reftest-wait' as a class on the root element, wait for the MozReftestInvalidate event, and then make the change and remove the reftest-wait class. There's lots of existing tests that use this format. Ideally we'd have one test with border-collapse and one without.
Attachment #8875968 - Flags: review?(matt.woodrow) → review+
Hey Matt, result of try looks fine: https://treeherder.mozilla.org/#/jobs?repo=try&revision=e7ccf57a6bfaa1b0832a693143f8d1a84fd8f0f5&selectedJob=106320186 How do you think about the reftest? thanks a lot.
Comment on attachment 8876593 [details] Bug 1370833 Part 2 - add reftests for border-collapse and non-border-collapse table. https://reviewboard.mozilla.org/r/147922/#review153214
Attachment #8876593 - Flags: review?(matt.woodrow) → review+
Keywords: checkin-needed
Pushed by ryanvm@gmail.com: https://hg.mozilla.org/integration/autoland/rev/0cd9f4c25544 Part 1 - make less table invalidations for non-border-collapse tables. r=mattwoodrow https://hg.mozilla.org/integration/autoland/rev/2c4ea118644c Part 2 - add reftests for border-collapse and non-border-collapse table. r=mattwoodrow
Keywords: checkin-needed
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: