Skip to content

Reduce rendering on blame page

Jacques Erasmus requested to merge 331445-reduce-repaints-blame-page into master

What does this MR do?

Currently, a lot of time is spent on rendering the blame page with many commits.

This reduces the number of paints on the blame page by making use of the content-visibility: auto CSS property.

This fix should in turn reduce the TBT of the blame page by only rendering what is visible to the user.

Limitations

Browser support for content-visibility:

Browser Supported Notes
Chrome 85+
Edge 85+
Opera 71+
Firefox Issue
IE
Safari

Results

Average TBT after 3 runs:

  • TBT (Avg) = 3393ms

Note: this was tested by overriding the styles on staging to get as close as possible to the actual test environment.

Page used for testing: Blame page (staging)

before (rendering = 10731ms, TBT (Avg) = 12466ms) after (rendering = 3457ms, TBT (Avg) = 3393ms)
Screenshot_2021-07-28_at_16.41.04 Screenshot_2021-07-28_at_16.48.11
Run 1 TBT: 11288ms Run 1 TBT: 3011ms
Run 2 TBT: 12069ms Run 2 TBT: 4720ms
Run 3 TBT: 14041ms Run 3 TBT: 2449ms

UX Impact

Since we're only rendering the entries that are visible to the user, the browser needs to render entries as the user scrolls, this could cause invisible entries for a very brief moment if a user scrolls fast enough as the browser catches up.:

Screen_Recording_2021-07-29_at_13.06.13.2021-07-29_13_11_15

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Related to #331445 (closed)

Edited by Jacques Erasmus

Merge request reports