Open Bug 1924812 Opened 4 months ago Updated 4 months ago

Sidebar animation from right-hand side choppy when expanding

Categories

(Core :: Layout, defect)

defect

Tracking

()

Tracking Status
firefox-esr128 --- unaffected
firefox131 --- disabled
firefox132 --- disabled
firefox133 --- fix-optional
firefox134 --- fix-optional

People

(Reporter: kcochrane, Unassigned)

References

(Regression)

Details

(Keywords: regression, Whiteboard: [fidefe-sidebar])

Attachments

(1 file)

Attached video choppy_animation.mov

I'm not sure if this is fallout from changes made for bug 1923936 and bug 1923844, but something has caused the sidebar animation from the right side to become choppier when expanding it. Specifically the content area seems to move back and forth horizontally before settling in the expected place in the end. See attached screen recording.

:emilio could you please take a look?

Flags: needinfo?(emilio)

I don't think it is a recent regression, but mozregression can surely tell?

What is happening is that when expanding the sidebar, we keep the "large" viewport size until the end of the animation, then resize the browser down. There might be a frame (or multiple, depending on how expensive the resize is) where we have a "large" viewport (the content still hasn't processed the resize), but we're painting it in a "small" viewport (the parent has), and that causes the weirdness that your screencast shows.

Just to confirm it's that, it doesn't happen on same-process pages, afaict (e.g. if you have about:preferences loaded).

This isn't problematic for the left animation because we overflow towards the right so it just works out.

I wonder if we can somehow tell WebRender to, in case of mismatched parent / child iframe sizes, overflow towards the left rather than the right? it's a bit hacky, but it's the simplest fix.

Having some sort of "atomic resize" seems a lot harder, in presence of unresponsive child processes or so...

Flags: needinfo?(emilio) → needinfo?(gwatson)
QA Whiteboard: [qa-regression-triage]

It sounds like that is probably doable, though I agree it's rather hacky.

Flags: needinfo?(gwatson)

Set release status flags based on info from the regressing bug 1898251

(In reply to Emilio Cobos Álvarez (:emilio) from comment #1)
...

I wonder if we can somehow tell WebRender to, in case of mismatched parent / child iframe sizes, overflow towards the left rather than the right? it's a bit hacky, but it's the simplest fix.

Having some sort of "atomic resize" seems a lot harder, in presence of unresponsive child processes or so...

Hi Emilio, based on comment 1, is there a different component this should move to? Correct me if I'm wrong but presumably something along these lines isn't something that can be fixed in the sidebar code? If we do move it we'll still continue to track it from the sidebar project perspective in any case.

I'm also thinking this sounds like something that will not fit for 133, unless there is a quick / low risk solution but we should look to get this fixed for the broader release.

Flags: needinfo?(emilio)

Yeah we need to hook something into graphics, but it's not clear if we should be tracking it as a graphics bug necessarily...

In any case agreed it's not a trivial one.

Flags: needinfo?(emilio)

Moving to layout. Its not clear what the solution is, so please move to a better component if there is one

Component: Sidebar → Layout
Product: Firefox → Core

(Doesn't look... great, but not hampering functionality, so assigning S3 for now)

Severity: -- → S3

Set release status flags based on info from the regressing bug 1898251

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: