Open Bug 987339 Opened 10 years ago Updated 2 years ago

Ignore position: sticky in XUL layout

Categories

(Core :: XUL, defect, P5)

defect

Tracking

()

People

(Reporter: Optimizer, Unassigned)

Details

If you use the builds at [0] (once they are ready):

1) Go to a cookie heavy site, say, nytimes.com 
2) Press Shift + F9 to open the Storage Tool.
3) Select Cookies > nytimes.com
4) Make sure there is a scrollbar in the table, decrease the height of toolbox if not.
5) Scroll down
  Expected:
    The headers stay at top, visible, as they have position: sticky, top: 0
  Actual:
    They do.

6) Scroll up now.
  Expected:
    The headers stay at top, visible, as they have position: sticky, top: 0
  Actual
    They scroll up with the rest of the table, thus their top becomes > 0

Thus, position: sticky is working 50% :)


[0] https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/try-builds/scrapmachines@gmail.com-226f986eeaf5
I don't think XUL supports relative positioning at all, so making this work seems likely to be a decent chunk of work.  It's not just a matter of calling ApplyRelativePositioning -- it's also a matter of making all XUL layout code deal with the idea that a frame might have a rect that's had relative positioning applied, and layout needs to operate on the "normal position" instead.  Auditing the code (all of layout/xul/, really) should give an idea of how much work this is; I'm not sure.
And the reason ApplyRelativePositioning would be important is that it stores the frame's NormalPosition, which sticky positioning computations use (in this situation, as a top limit on the position). If ApplyRelativePositioning isn't called, GetNormalPosition falls back to returning GetPosition, so that the frame can never move back up once moved down (also previously seen in bug 925259).
The right thing to do here is probably to make sure position:sticky on XUL box layout does nothing, rather than invest energy into adding new features to XUL box layout.
Severity: normal → minor
Component: Layout → XUL
OS: Windows 7 → All
Priority: -- → P5
Hardware: x86_64 → All
Summary: position: sticky only works 50% for XUL → Ignore position: sticky in XUL layout
:(
Severity: minor → S4
You need to log in before you can comment on or make changes to this bug.