author Markus Stange <>
Fri, 26 Feb 2016 01:29:41 +0100
changeset 323488 c690a0802e0007bb7e58bafeee672c816faa3cf5
parent 224751 7eb878988c9f3cb4f0a3759a28030ceb7f424c02
permissions -rw-r--r--
Bug 1247854 - Apply the correct scroll clips to the nsDisplayTransform and nsDisplayPerspective of a scrolled perspective item. r=mattwoodrow a=ritu I've decided to fix this in a very explicit way. The only "magic" part that's left is how we decide that the AGR of the perspective item is outside the scrolled frame (and I'm not sure myself how that works). I didn't want to change what scroll clips we set on what items, because the scroll clip really belongs on the perspective item, because that's the item that needs to be clipped, and it should also be the item that should be scrolled if it weren't for the fact that APZ wouldn't know that it should apply the perspective transform before the APZ transform. MozReview-Commit-ID: BBw8VPohQI4

<html reftest-async-scroll>
  <div style="width:400px; height:300px; overflow:hidden; border:2px solid black"
       reftest-displayport-x="0" reftest-displayport-y="0"
       reftest-displayport-w="800" reftest-displayport-h="2000"
       reftest-async-scroll-x="0" reftest-async-scroll-y="100">
    <!-- In this test the position:sticky element gets its own layer, and also has scrollable metrics
         because it shares the same animated geometry root as the other elements. This tests that
         layers with both sticky info and scroll info are transformed correctly in the face of an async
         scroll transform. -->
    <div style="height:100px; width:200px; float:left; background:purple"></div>
    <div style="left:200px; top:0; height:300px; width:200px; float:left; background:yellow; position:sticky; z-index:1;"></div>
    <div style="height:300px; width:200px; float:left; background:purple; position:relative; z-index:2;"></div>