If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

Event regions are only added for stacking contexts

RESOLVED FIXED in mozilla36

Status

()

Core
Layout
RESOLVED FIXED
3 years ago
2 years ago

People

(Reporter: dvander, Assigned: dvander)

Tracking

unspecified
mozilla36
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments, 1 obsolete attachment)

(Assignee)

Description

3 years ago
Currently we only inject nsDisplayLayerEventRegions for stacking and pseudo-stacking contexts. With containerless scrolling, this means that all but the first processed layer as part of a scrollframe will be missing event regions.

<roc> dvander: in BuildDisplayListForChild, we want to push a new nsDisplayEventRegion when nsLayoutUtils::GetAnimatedGeometryRootForFrame returns a different animated geometry root for the parent than for the child
<roc> Before actually shipping that code I think we need to do some work to optimize GetAnimatedGeometryRootForFrmae
Component: Panning and Zooming → Layout
Blocks: 928833
(Assignee)

Comment 1

3 years ago
Created attachment 8525735 [details] [diff] [review]
bug1101260-event-regions.patch

This adds an nsDisplayLayerEventRegions item for non-stacking contexts, if they have a different animated geometry root than their parent. The current animated geometry root for a frame is now cached as well.

I had to move some stuff from nsLayoutUtils to nsDisplayList, there was one material change from that. Previously we could return an animated geometry root in between a sticky frame and its nearest scrollframe, and that's been fixed.
Attachment #8525735 - Flags: review?(roc)
Comment on attachment 8525735 [details] [diff] [review]
bug1101260-event-regions.patch

Review of attachment 8525735 [details] [diff] [review]:
-----------------------------------------------------------------

Can you split the patch into "cache animated geometry roots" and "create more nsDisplayEventRegions" please? Thanks!
Attachment #8525735 - Flags: review?(roc)
(Assignee)

Comment 3

3 years ago
Created attachment 8525759 [details] [diff] [review]
part 1, cache the current animated geometry root
Attachment #8525735 - Attachment is obsolete: true
Attachment #8525759 - Flags: review?(roc)
(Assignee)

Comment 4

3 years ago
Created attachment 8525761 [details] [diff] [review]
part 2, add more nsDisplayLayerEventRegions
Attachment #8525761 - Flags: review?(roc)
Comment on attachment 8525759 [details] [diff] [review]
part 1, cache the current animated geometry root

Review of attachment 8525759 [details] [diff] [review]:
-----------------------------------------------------------------

Excellent!!!
Attachment #8525759 - Flags: review?(roc) → review+
Attachment #8525761 - Flags: review?(roc) → review+
We should go further and actually store the animated geometry root in each display item. This would reduce overhead in FrameLayerBuilder. But that shouldn't be in this bug.
(Assignee)

Updated

3 years ago
Blocks: 1102676
(Assignee)

Comment 7

3 years ago
Okay, filed bug 1102676 as a follow-up

https://hg.mozilla.org/integration/mozilla-inbound/rev/42c5ee6094ee
https://hg.mozilla.org/integration/mozilla-inbound/rev/b4bff1b4f793
https://hg.mozilla.org/mozilla-central/rev/42c5ee6094ee
https://hg.mozilla.org/mozilla-central/rev/b4bff1b4f793
Status: ASSIGNED → RESOLVED
Last Resolved: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla36

Updated

3 years ago
Depends on: 1103106
Depends on: 1148889

Updated

2 years ago
Blocks: 1172025
You need to log in before you can comment on or make changes to this bug.