Bug 1443518 - Fix incorrect CompositorHitTestInfo ordering for inline lines r=mattwoodrow

MozReview-Commit-ID: D7yLNHQN3z0

--HG--
extra : rebase_source : 34f2f668bcdd8e0bc9741b879e696608345fdca3
This commit is contained in:
Miko Mynttinen 2018-03-09 11:48:07 +01:00
Родитель cc208144a3
Коммит 3356f300e6
1 изменённых файлов: 12 добавлений и 6 удалений

Просмотреть файл

@ -3769,12 +3769,6 @@ nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder* aBuilder,
child->MarkAbsoluteFramesForDisplayList(aBuilder);
const bool differentAGR =
buildingForChild.IsAnimatedGeometryRoot() || isPositioned;
nsDisplayList* toList = isPositioned ? &list : aLists.BorderBackground();
aBuilder->BuildCompositorHitTestInfoIfNeeded(child, toList, differentAGR);
if (aBuilder->IsBuildingLayerEventRegions()) {
// If this frame has a different animated geometry root than its parent,
// make sure we accumulate event regions for its layer.
@ -3799,6 +3793,9 @@ nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder* aBuilder,
}
}
const bool differentAGR =
buildingForChild.IsAnimatedGeometryRoot() || isPositioned;
if (!awayFromCommonPath && shortcutPossible &&
!differentAGR && !buildingForChild.MaybeAnimatedGeometryRoot()) {
// The shortcut is available for the child for next time.
@ -3810,6 +3807,10 @@ nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder* aBuilder,
// Not a pseudo or real stacking context. Do the simple thing and
// return early.
aBuilder->BuildCompositorHitTestInfoIfNeeded(child,
aLists.BorderBackground(),
differentAGR);
aBuilder->AdjustWindowDraggingRegion(child);
child->BuildDisplayList(aBuilder, aLists);
aBuilder->DisplayCaret(child, aLists.Content());
@ -3824,6 +3825,11 @@ nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder* aBuilder,
// stacking context's positioned descendant list, because they might be
// z-index:non-auto
nsDisplayListCollection pseudoStack(aBuilder);
aBuilder->BuildCompositorHitTestInfoIfNeeded(child,
pseudoStack.BorderBackground(),
differentAGR);
aBuilder->AdjustWindowDraggingRegion(child);
nsDisplayListBuilder::AutoContainerASRTracker contASRTracker(aBuilder);
child->BuildDisplayList(aBuilder, pseudoStack);