Open Bug 1727119 Opened 2 years ago Updated 2 years ago

Sticky-positioned table intermittently disappears on long page at https://wiki.kiwix.org/

Categories

(Core :: Layout: Positioned, defect)

defect

Tracking

()

People

(Reporter: dholbert, Unassigned)

References

(Blocks 1 open bug, )

Details

STR:

  1. Visit https://wiki.kiwix.org/wiki/Content_in_all_languages
  2. Scroll approximately 50% down the page.
  3. Click a blank space on the page.

ACTUAL RESULTS:
The gray sticky header (Project | Language | Size | [etc]) disappears. (If it doesn't, then try scrolling a bit more and clicking again.)

EXPECTED RESULT:
It should stay visible.

This seems to be a rendering artifact; I don't think it's meant to disappear. Also, it intermittently disappears when rapidly scrolling, though that's harder to reproduce reliably.

Chrome gives EXPECTED RESULTS here.

Here's a profile of the STR (with screenshots):
https://share.firefox.dev/3gqIvXJ

The sticky header disappears at approximately 8.6 seconds in the profile. Here's a zoomed-in version showing that moment:
https://share.firefox.dev/3sSS3zX

(At the beginning of this zoomed-in period, the gray sticky header is visible in the screenshots. At the end, it's gone.)

This is not WebRender-dependent, BTW. I tested the non-WR codepath with a slightly-old build (where disabling WR is still possible):

mozregression --launch 2021-07-01 --pref "gfx.webrender.force-disabled:true"

and I still was able to reproduce.

Since Firefox59...

Blocks: 975644

Yup - I noticed that I can reproduce this in Nightly 2018-01-01 (version 59). So this does indeed seem like something that's been broken since we added position:sticky support for table stuff in bug 975644.

Observation: the sticky row flickers ever so slightly while scrolling, and may disappear when hovering over anything that changes element styles (like a link on the right). Perhaps this has something to do with active/passive layers?

I'll bet this is a version of bug 1518556, actually. At least, it seems like it has to do with the large sizes involved int his testcase.

The table here is 263,525px tall, which is quite large but not tall enough to be approaching nscoord_MAX (that threshold is around 2^30 / 60 = 17,895,697 css pixels)

If I reduce the height of the table (e.g. by adding td { display:none} and then giving just one row an explicit biggish height like style="height:3000px" so that I can still scroll the sticky area), then I can't reproduce anymore.

Blocks: sticky
See Also: → 1518556
You need to log in before you can comment on or make changes to this bug.