Closed Bug 1192633 Opened 11 years ago Closed 11 years ago

Overlay scrollbars on OS X no longer fade out with an animation, they just disappear

Categories

(Core :: CSS Parsing and Computation, defect)

All
macOS
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 1192192
Tracking Status
firefox42 --- affected

People

(Reporter: mstange, Unassigned)

References

Details

(Keywords: regression)

STR: 1. Be on Mac OS 10.7+ and set your system scrollbars pref to "show when scrolling". 2. On a scrollable page in Firefox, scroll slightly and then stop. Expected results: The scrollbars should fade out smoothly. Actual results: They just disappear after a short delay without any animation. The fade-out animation is implemented in ScrollbarActivity.cpp with a refresh driver observer that animates the opacity property by setting inline styles on the respective <scrollbar> element (which is native anonymous content of the scroll frame), like this: static void SetOpacityOnElement(nsIContent* aContent, double aOpacity) { nsCOMPtr<nsIDOMElementCSSInlineStyle> inlineStyleContent = do_QueryInterface(aContent); if (inlineStyleContent) { nsCOMPtr<nsIDOMCSSStyleDeclaration> decl; inlineStyleContent->GetStyle(getter_AddRefs(decl)); if (decl) { nsAutoString str; str.AppendFloat(aOpacity); decl->SetProperty(NS_LITERAL_STRING("opacity"), str, EmptyString()); } } } mozregression gave me this range and unfortunately couldn't find any inbound builds for it: https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=f3b757156f69&tochange=2fad09a0540d Bug 1180118 is in this range, so I'm assuming it is to blame. I haven't confirmed this.
[Tracking Requested - why for this release]: very visible regression
Pretty plausible bug 1180118 is responsible. It's probably the same as bug 1192302, not traversing into anonymous content (I think?) properly.
We probably need to traverse the frame tree to find the elements that we convert eRestyle_SomeDescendants into eRestyle_Self for, rather than traversing the DOM itself. This would need to look at the undisplayed content, like ElementRestyler::RestyleChildren does, but would also need to do a DOM traversal to the descendants of the display:none child.
I bisected further and found that it's actually bug 1186236. Jerry, can you look into this?
Blocks: 1186236
No longer blocks: 1180118
Flags: needinfo?(hshih)
I think bug 1192192 could fix the problem. Hey Cameron, Does bug 1192192 fix this?
No longer blocks: 1186236
Depends on: 1192192
Flags: needinfo?(hshih) → needinfo?(cam)
That does fix it, thanks!
Flags: needinfo?(cam)
Since this is a duplicate of bug 1192192, and that bug fixes the issue, I'll clear the tracking requested flag.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.