Bug 1400259 - Add will-change:transform to the panel in order to work around a compositor bug. r?mconley
The bug has something to do with ContainerLayer nesting changes being mishandled:
a new ContainerLayer for the transform is being inserted around the container
layer for the opacity, which has an intermediate surface.
This change makes the outer ContainerLayer permanent so that the dynamic
insertion case is not hit.
MozReview-Commit-ID: lETpsr4YJi
--- a/browser/base/content/browser.css
+++ b/browser/base/content/browser.css
@@ -1167,16 +1167,17 @@ toolbarpaletteitem[place="palette"] > #d
#BMB_bookmarksPopup[animate="cancel"] {
-moz-window-transform: none;
}
%elifndef MOZ_WIDGET_GTK
#BMB_bookmarksPopup:not([animate="false"]) {
opacity: 0;
+ will-change: transform; /* workaround for bug 1414033 */
transform: translateY(-70px);
transition-property: transform, opacity;
transition-duration: 0.18s, 0.18s;
transition-timing-function:
var(--animation-easing-function), ease-out;
}
#BMB_bookmarksPopup[side="bottom"]:not([animate="false"]) {
--- a/toolkit/content/xul.css
+++ b/toolkit/content/xul.css
@@ -476,16 +476,17 @@ panel[type="arrow"][side][animate="open"
panel[type="arrow"][side][animate="cancel"] {
-moz-window-transform: none;
}
%elifndef MOZ_WIDGET_GTK
panel[type="arrow"][side]:not([animate="false"]) {
opacity: 0;
+ will-change: transform; /* workaround for bug 1414033 */
transform: translateY(-70px);
transition-property: transform, opacity;
transition-duration: 0.18s, 0.18s;
transition-timing-function:
var(--animation-easing-function), ease-out;
}
panel[type="arrow"][side="bottom"]:not([animate="false"]) {