Closed Bug 1018309 Opened 5 years ago Closed 5 years ago
Unintentionally creating layers for non-overlay scrollbars and resizers
I forgot that on Mac, non-overlay scrollbars are position:relative, and so they get built in the second AppendScrollPartsTo pass. So my patch in bug 1016535 gave non-overlay scrollbars on Mac their own layers, too, even though they could have merged with the background layer just fine. This patch alone will not fix bug 1017256 because in the meantime bug 1009679 has also landed which comes with the same additional layerization that made tscrollx slower.
Comment on attachment 8431675 [details] [diff] [review] only force layerizization of actual overlay scrollbars >@@ -2674,19 +2678,18 @@ ScrollFrameHelper::BuildDisplayList(nsDi > // In case we are not using displayport or the nsDisplayScrollLayers are > // flattened during visibility computation, we still need to export the > // metadata about this scroll box to the compositor process. > nsDisplayScrollInfoLayer* layerItem = new (aBuilder) nsDisplayScrollInfoLayer( > aBuilder, mScrolledFrame, mOuter); > scrolledContent.BorderBackground()->AppendNewToBottom(layerItem); > } > // Now display overlay scrollbars and the resizer, if we have one. >- // Always create layers for these, so that we don't create a giant layer >- // covering the whole scrollport if both scrollbars are visible. >- AppendScrollPartsTo(aBuilder, aDirtyRect, scrolledContent, true, true); >+ AppendScrollPartsTo(aBuilder, aDirtyRect, scrolledContent, >+ createLayersForScrollbars, true); > scrolledContent.MoveTo(aLists); > } Don't you also need this change at the top of the function for the other set of AppendScrollPartsTo calls in the early exit for ignoring the scroll frame?
Attachment #8431948 - Flags: review?(roc) → review+
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla32
You need to log in before you can comment on or make changes to this bug.