Closed Bug 1148515 Opened 8 years ago Closed 8 years ago

Event region for active scrollbar thumb is placed outside its OwnLayer

Categories

(Core :: Layout, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla40
Tracking Status
firefox40 --- fixed

People

(Reporter: mstange, Assigned: mstange)

References

Details

Attachments

(3 files)

Attached file testcase
I have an overflow:auto div with active scrolling and with non-overlay scrollbars, so the scrollbar thumb is its own animated geometry root and is additionally getting wrapped in an OwnLayer display item. However, its event regions item ends up outside the OwnLayer:

>     Painting --- after optimization:
>     SolidColor p=0x2aaaccf46328 f=0x2aaad4bb14a8(Viewport(-1)) bounds(0,0,48000,60000) layerBounds(0,0,48000,60000) visible(0,0,48000,60000) componentAlpha(0,0,0,0) clip()  uniform (opaque 0,0,48000,60000) (rgba 255,255,255,255) layer=0x2aaadbdb1400
>     LayerEventRegions p=0x2aaac9bd7820 f=0x2aaad4bb14a8(Viewport(-1)) bounds(0,0,0,0) layerBounds(0,0,0,0) visible(0,0,48000,60000) componentAlpha(0,0,0,0) clip()  (hitRegion < (x=0, y=0, w=48000, h=60000); >)
>     SubDocument p=0x2aaaccf46248 f=0x2aaaded1c4a8(Viewport(-1)) bounds(0,0,48000,60000) layerBounds(0,0,48000,60000) visible(0,0,126000,183000) componentAlpha(0,0,0,0) clip(0,0,48000,60000)  layer=0x2aaaddbb3c00
>       LayerEventRegions p=0x2aaac9bd78f8 f=0x2aaaded1c4a8(Viewport(-1)) bounds(0,0,0,0) layerBounds(0,0,0,0) visible(0,0,47040,183000) componentAlpha(0,0,0,0) clip()  (hitRegion < (x=0, y=0, w=48000, h=60000); >)
>       OwnLayer p=0x2aaac9bd7f28 f=0x2aaaddb64020(ScrollbarFrame(scrollbar)(-1)) bounds(47040,0,960,60000) layerBounds(47040,0,960,60000) visible(47040,0,960,60000) componentAlpha(0,0,0,0) clip(0,0,48000,60000)  (opaque 47040,0,960,60000) layer=0x2aaaddbb4800
>         LayerEventRegions p=0x2aaac9bd79d0 f=0x2aaaddb64020(ScrollbarFrame(scrollbar)(-1)) bounds(0,0,0,0) layerBounds(0,0,0,0) visible(47040,0,960,60000) componentAlpha(0,0,0,0) clip(0,0,48000,60000)  (hitRegion < (x=47040, y=0, w=960, h=60000); >)
>         ThemedBackground p=0x2aaac9bd7ac8 f=0x2aaaddb64020(ScrollbarFrame(scrollbar)(-1)) bounds(47040,0,960,60000) layerBounds(47040,0,960,60000) visible(47040,0,960,60000) componentAlpha(0,0,0,0) clip(0,0,48000,60000)  (opaque 47040,0,960,60000) (themed, appearance:87) layer=0x2aaaddbb6000
>         ThemedBackground p=0x2aaac9bd7b28 f=0x2aaaddb64f20(ButtonBoxFrame(scrollbarbutton)(-1)) bounds(47100,60,840,840) layerBounds(47100,60,840,840) visible(47040,0,960,60000) componentAlpha(0,0,0,0) clip(0,0,48000,60000)  (themed, appearance:82) layer=0x2aaaddbb6000
>         LayerEventRegions p=0x2aaac9bd7c20 f=0x2aaaddb65410(ButtonBoxFrame(thumb)(0)) bounds(0,0,0,0) layerBounds(-47100,-900,0,0) visible(47040,0,960,60000) componentAlpha(0,0,0,0) clip(47100,900,840,58200)  (hitRegion < (x=47100, y=900, w=840, h=18360); >) (dispatchToContentRegion < (x=47100, y=900, w=840, h=18360); >)
>         ThemedBackground p=0x2aaac9bd7e28 f=0x2aaaddb655d0(ButtonBoxFrame(scrollbarbutton)(-1)) bounds(47100,59100,840,840) layerBounds(47100,59100,840,840) visible(47040,0,960,60000) componentAlpha(0,0,0,0) clip(0,0,48000,60000)  (themed, appearance:83) layer=0x2aaaddbb4000
>         OwnLayer p=0x2aaac9bd7d78 f=0x2aaaddb65410(ButtonBoxFrame(thumb)(0)) bounds(47100,900,840,18420) layerBounds(0,0,840,18420) visible(47040,0,960,60000) componentAlpha(0,0,0,0) clip(47100,900,840,58200)  layer=0x2aaaddbb4c00
>           ThemedBackground p=0x2aaac9bd7d18 f=0x2aaaddb65410(ButtonBoxFrame(thumb)(0)) bounds(47100,840,840,18480) layerBounds(0,-60,840,18480) visible(47040,0,960,60000) componentAlpha(0,0,0,0) clip(47100,900,840,58200)  (themed, appearance:89) layer=0x2aaaddbb5c00
>       LayerEventRegions p=0x2aaaccd33020 f=0x2aaaded1d0c0(Canvas(html)(-1)) bounds(0,0,0,0) layerBounds(0,0,0,0) visible(0,0,47040,183000) componentAlpha(0,0,0,0) clip()  (hitRegion < (x=0, y=0, w=47040, h=183000); >)
>       CanvasBackgroundColor p=0x2aaaccd330f8 f=0x2aaaded1d0c0(Canvas(html)(-1)) bounds(0,0,47040,183000) layerBounds(0,0,47040,183000) visible(0,0,47040,183000) componentAlpha(0,0,0,0) clip()  uniform (opaque 0,0,47040,183000) (rgba 255,255,255,255) layer=0x2aaaddbb7800
>       Border p=0x2aaaccd33140 f=0x2aaaddb676e8(Block(div)(0)) bounds(6000,3000,35040,3120) layerBounds(6000,3000,35040,3120) visible(0,0,47040,183000) componentAlpha(0,0,0,0) clip()  layer=0x2aaaddbb7800
>       Border p=0x2aaaccd33188 f=0x2aaaddb679b8(Block(div)(2)) bounds(13200,9120,4920,3120) layerBounds(13200,9120,4920,3120) visible(0,0,47040,183000) componentAlpha(0,0,0,0) clip()  layer=0x2aaaddbb7800
>       Border p=0x2aaaccd331d0 f=0x2aaaddb67b88(HTMLScroll(div)(4)) bounds(6000,10440,35040,9000) layerBounds(6000,10440,35040,9000) visible(0,0,47040,183000) componentAlpha(0,0,0,0) clip()  layer=0x2aaaddbb7800
>       LayerEventRegions p=0x2aaaccd33218 f=0x2aaaddb67f10(ScrollbarFrame(scrollbar)(-1)) bounds(0,0,0,0) layerBounds(0,0,0,0) visible(6060,18420,34920,960) componentAlpha(0,0,0,0) clip()  (hitRegion < (x=6060, y=18420, w=34920, h=960); >)
>       ThemedBackground p=0x2aaaccd332f0 f=0x2aaaddb67f10(ScrollbarFrame(scrollbar)(-1)) bounds(6060,18420,34920,960) layerBounds(6060,18420,34920,960) visible(6060,18420,34920,960) componentAlpha(0,0,0,0) clip()  (opaque 6060,18420,34920,960) (themed, appearance:86) layer=0x2aaaddbb7800
>       ThemedBackground p=0x2aaaccd33350 f=0x2aaaddb6e408(ButtonBoxFrame(scrollbarbutton)(-1)) bounds(6120,18480,840,840) layerBounds(6120,18480,840,840) visible(6060,18420,34920,960) componentAlpha(0,0,0,0) clip()  (themed, appearance:84) layer=0x2aaaddbb7800
>   --> LayerEventRegions p=0x2aaaccd3a820 f=0x2aaaddb6e640(ButtonBoxFrame(thumb)(0)) bounds(0,0,0,0) layerBounds(-7620,-18480,0,0) visible(6060,18420,34920,960) componentAlpha(0,0,0,0) clip(6960,18480,33120,840)  (hitRegion < (x=7620, y=18480, w=3180, h=840); >) (dispatchToContentRegion < (x=7620, y=18480, w=3180, h=840); >)
>       ThemedBackground p=0x2aaaccd3aa28 f=0x2aaaddb6e6e0(ButtonBoxFrame(scrollbarbutton)(-1)) bounds(40080,18480,840,840) layerBounds(40080,18480,840,840) visible(6060,18420,34920,960) componentAlpha(0,0,0,0) clip()  (themed, appearance:85) layer=0x2aaaddbb3000
>   --> OwnLayer p=0x2aaaccd3a978 f=0x2aaaddb6e640(ButtonBoxFrame(thumb)(0)) bounds(7560,18480,3300,840) layerBounds(-60,0,3300,840) visible(6060,18420,34920,960) componentAlpha(0,0,0,0) clip(6960,18480,33120,840)  layer=0x2aaaddbb6c00
>   -->   ThemedBackground p=0x2aaaccd3a918 f=0x2aaaddb6e640(ButtonBoxFrame(thumb)(0)) bounds(7560,18480,3300,840) layerBounds(-60,0,3300,840) visible(6060,18420,34920,960) componentAlpha(0,0,0,0) clip(6960,18480,33120,840)  (themed, appearance:88) layer=0x2aaaddbb7000
>       LayerEventRegions p=0x2aaaccf46020 f=0x2aaaddb6f548(Block(div)(4)) bounds(0,0,0,0) layerBounds(-60,-10500,0,0) visible(6000,10440,120000,12000) componentAlpha(0,0,0,0) clip()  (hitRegion < (x=60, y=10500, w=300000, h=7920); >)
>       Border p=0x2aaaccf460f8 f=0x2aaaddb6fc90(Block(div)(1)) bounds(13260,11100,6120,6120) layerBounds(13200,600,6120,6120) visible(6000,10440,120000,12000) componentAlpha(0,0,0,0) clip()  layer=0x2aaaddbb7400
>       Border p=0x2aaaccf46200 f=0x2aaaddb71020(Block(div)(6)) bounds(6000,22440,35040,3120) layerBounds(6000,22440,35040,3120) visible(0,0,47040,183000) componentAlpha(0,0,0,0) clip()  layer=0x2aaaddbb3000
>       ScrollInfoLayer p=0x2aaaccf46140 f=0x2aaaddb67b88(HTMLScroll(div)(4)) bounds(0,0,0,0) layerBounds(0,0,0,0) visible(0,0,47040,183000) componentAlpha(0,0,0,0) clip()  (scrollframe 0x2aaaddb67b88 scrolledFrame 0x2aaaddb6f548) layer=0x2aaaddbb3000

In addition, it's strange that the scrollbarbutton's display item is interleaved between the thumb's items.
Attached patch patchSplinter Review
Assignee: nobody → mstange
Status: NEW → ASSIGNED
Attachment #8595507 - Flags: review?(tnikkel)
Attachment #8595507 - Flags: review?(tnikkel) → review+
Looks like I shouldn't have removed the skip-if(asyncPanZoom) annotation for pull-background-5.html - it still fails even with this bug fixed.
However, on inbound this skip-if has already been re-added by the merge from mozilla-central that included bug 1154459. If bug 1154459 is backed out again, we need to make sure that pull-background-5.html stays disabled, for example by landing this patch.
Tomcat, can you land that patch once bug 1154459 gets backed out tonight so that reftest-12 stays green? :)
Flags: needinfo?(cbook)
(In reply to Markus Stange [:mstange] from comment #4)
> Created attachment 8595670 [details] [diff] [review]
> skip pull-background-5.html with APZ
> 
> Looks like I shouldn't have removed the skip-if(asyncPanZoom) annotation for
> pull-background-5.html - it still fails even with this bug fixed.
> However, on inbound this skip-if has already been re-added by the merge from
> mozilla-central that included bug 1154459. If bug 1154459 is backed out
> again, we need to make sure that pull-background-5.html stays disabled, for
> example by landing this patch.

this doesn't apply cleanly to m-c will check with ryan
Flags: needinfo?(cbook)
(In reply to Markus Stange [:mstange] from comment #4)
> Created attachment 8595670 [details] [diff] [review]
> skip pull-background-5.html with APZ
> 
> Looks like I shouldn't have removed the skip-if(asyncPanZoom) annotation for
> pull-background-5.html - it still fails even with this bug fixed.
> However, on inbound this skip-if has already been re-added by the merge from
> mozilla-central that included bug 1154459. If bug 1154459 is backed out
> again, we need to make sure that pull-background-5.html stays disabled, for
> example by landing this patch.

I did the backout using the m-c version of the patch, which didn't touch the reftest for pull-background-5.html. Therefore after the backout pull-background-5.html is still untouched, and has a skip-if(asyncPanZoom), so I didn't need this patch.
Depends on: 1157397
https://hg.mozilla.org/mozilla-central/rev/8891a5d7c79c
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla40
You need to log in before you can comment on or make changes to this bug.