Bug 1267438 - Do not propagate the scroll clip to APZC's copy of ScrollMetadata. r=kats draft
authorBotond Ballo <botond@mozilla.com>
Fri, 29 Apr 2016 16:16:29 -0400
changeset 363526 165a66ccdf2d836acb11fbda39888ad8d7954d1f
parent 363525 c46d0d27145df9b268e70ab5aed67c8c64df9433
child 363527 dc982f0a16e8c2c042c260bc56252425cc6f76c4
child 364616 e7f1ddd9ce664317247da1b9f569ac04e383ca47
push id17233
push userbballo@mozilla.com
push dateThu, 05 May 2016 00:23:30 +0000
reviewerskats
bugs1267438
milestone49.0a1
Bug 1267438 - Do not propagate the scroll clip to APZC's copy of ScrollMetadata. r=kats MozReview-Commit-ID: 9E1QGnoxUjN
gfx/layers/apz/src/AsyncPanZoomController.cpp
--- a/gfx/layers/apz/src/AsyncPanZoomController.cpp
+++ b/gfx/layers/apz/src/AsyncPanZoomController.cpp
@@ -3506,17 +3506,20 @@ void AsyncPanZoomController::NotifyLayer
     mFrameMetrics.SetCompositionBounds(aLayerMetrics.GetCompositionBounds());
     mFrameMetrics.SetRootCompositionSize(aLayerMetrics.GetRootCompositionSize());
     mFrameMetrics.SetPresShellResolution(aLayerMetrics.GetPresShellResolution());
     mFrameMetrics.SetCumulativeResolution(aLayerMetrics.GetCumulativeResolution());
     mScrollMetadata.SetHasScrollgrab(aScrollMetadata.GetHasScrollgrab());
     mScrollMetadata.SetLineScrollAmount(aScrollMetadata.GetLineScrollAmount());
     mScrollMetadata.SetPageScrollAmount(aScrollMetadata.GetPageScrollAmount());
     mScrollMetadata.SetSnapInfo(ScrollSnapInfo(aScrollMetadata.GetSnapInfo()));
-    mScrollMetadata.SetScrollClip(aScrollMetadata.GetScrollClip());
+    // The scroll clip can differ between layers associated a given scroll frame,
+    // so APZC (which keeps a single copy of ScrollMetadata per scroll frame)
+    // has no business using it.
+    mScrollMetadata.SetScrollClip(Nothing());
     mScrollMetadata.SetIsLayersIdRoot(aScrollMetadata.IsLayersIdRoot());
     mScrollMetadata.SetUsesContainerScrolling(aScrollMetadata.UsesContainerScrolling());
     mFrameMetrics.SetIsScrollInfoLayer(aLayerMetrics.IsScrollInfoLayer());
     mScrollMetadata.SetForceDisableApz(aScrollMetadata.IsApzForceDisabled());
 
     if (scrollOffsetUpdated) {
       APZC_LOG("%p updating scroll offset from %s to %s\n", this,
         ToString(mFrameMetrics.GetScrollOffset()).c_str(),