I frequently have to scroll manually to see the last post in Durable Column, "Phacility" chat is a good example.
Revisions and Commits
We make a request to /blah/?meme=x, which generates the appropriate image on the server side and redirects to it. The meme rule doesn't know anything about the underlying image.
The actual file (F337237) is a normal file, and the width and height are stored (see the "Info" tab).
We could make meme generation smarter, but we'll have the same problem after T4190, when we can't know the dimensions ahead of time. I think there are some other elements which can probably change height, as well, either now or in the future (e.g., voting on an embedded slowvote).
The fix is probably something like:
- detect scroll events;
- check if the content height has changed;
- if it has, readjust the scroll position to stabilize the content.
We do this in Differential already, approximately, although we can't reuse the same code.
We'll also probably need to implement a rule where we don't scroll when new content shows up if you've manually scrolled up the thread. Currently, if you try to review old messages in an active thread, you may be repeatedly scrolled to the bottom of the column.
I can get weird scrolling behavior right now in the column view when I select "General Chat". It scrolls to the bottom, then seems to scroll up a little, then back to the bottom. This happens each time I load the room in the column.
Been playing with this a bunch today. I was able to get a repro by doing the following:
- send a few memes on thread X
- navigate to full conpherence thread X - observe correct scroll
- navigate to some other thread then back to thread X - observe incorrect scroll
My guess here is that since the images are cached in this repro case the "load" event never fires from D12191. I did some research and looks like this is indeed a problem and was addressed recently:
Not so sure when that sort of thing would hit web browsers.
I haven't been able to get a repro in the durable column or otherwise in the full view.