| OLD | NEW | 
|     1 // Copyright 2013 The Chromium Authors. All rights reserved. |     1 // Copyright 2013 The Chromium Authors. All rights reserved. | 
|     2 // Use of this source code is governed by a BSD-style license that can be |     2 // Use of this source code is governed by a BSD-style license that can be | 
|     3 // found in the LICENSE file. |     3 // found in the LICENSE file. | 
|     4  |     4  | 
|     5 #include "cc/layers/layer_position_constraint.h" |     5 #include "cc/layers/layer_position_constraint.h" | 
|     6  |     6  | 
|     7 #include <vector> |     7 #include <vector> | 
|     8  |     8  | 
|     9 #include "cc/animation/animation_host.h" |     9 #include "cc/animation/animation_host.h" | 
|    10 #include "cc/layers/layer.h" |    10 #include "cc/layers/layer.h" | 
| (...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   452   // Case 1: scroll delta of 0, 0 |   452   // Case 1: scroll delta of 0, 0 | 
|   453   SetScrollOffsetDelta(child_impl_, gfx::Vector2d(0, 0)); |   453   SetScrollOffsetDelta(child_impl_, gfx::Vector2d(0, 0)); | 
|   454   ExecuteCalculateDrawProperties(root_impl_); |   454   ExecuteCalculateDrawProperties(root_impl_); | 
|   455  |   455  | 
|   456   gfx::Transform expected_child_transform; |   456   gfx::Transform expected_child_transform; | 
|   457   gfx::Transform expected_surface_draw_transform; |   457   gfx::Transform expected_surface_draw_transform; | 
|   458   expected_surface_draw_transform.Translate(8.0, 6.0); |   458   expected_surface_draw_transform.Translate(8.0, 6.0); | 
|   459   gfx::Transform expected_grand_child_transform; |   459   gfx::Transform expected_grand_child_transform; | 
|   460   gfx::Transform expected_great_grand_child_transform; |   460   gfx::Transform expected_great_grand_child_transform; | 
|   461   expected_great_grand_child_transform.PreconcatTransform(rotation_about_z); |   461   expected_great_grand_child_transform.PreconcatTransform(rotation_about_z); | 
|   462   EXPECT_TRUE(grand_child_impl_->render_surface()); |   462   EXPECT_TRUE(grand_child_impl_->GetRenderSurface()); | 
|   463   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |   463   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, | 
|   464                                   child_impl_->DrawTransform()); |   464                                   child_impl_->DrawTransform()); | 
|   465   EXPECT_TRANSFORMATION_MATRIX_EQ( |   465   EXPECT_TRANSFORMATION_MATRIX_EQ( | 
|   466       expected_surface_draw_transform, |   466       expected_surface_draw_transform, | 
|   467       grand_child_impl_->render_surface()->draw_transform()); |   467       grand_child_impl_->GetRenderSurface()->draw_transform()); | 
|   468   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, |   468   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, | 
|   469                                   grand_child_impl_->DrawTransform()); |   469                                   grand_child_impl_->DrawTransform()); | 
|   470   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, |   470   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, | 
|   471                                   great_grand_child_impl_->DrawTransform()); |   471                                   great_grand_child_impl_->DrawTransform()); | 
|   472  |   472  | 
|   473   // Case 2: scroll delta of 10, 30 |   473   // Case 2: scroll delta of 10, 30 | 
|   474   SetScrollOffsetDelta(child_impl_, gfx::Vector2d(10, 30)); |   474   SetScrollOffsetDelta(child_impl_, gfx::Vector2d(10, 30)); | 
|   475   child_impl_->SetDrawsContent(true); |   475   child_impl_->SetDrawsContent(true); | 
|   476   ExecuteCalculateDrawProperties(root_impl_); |   476   ExecuteCalculateDrawProperties(root_impl_); | 
|   477  |   477  | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
|   489   expected_surface_draw_transform.MakeIdentity(); |   489   expected_surface_draw_transform.MakeIdentity(); | 
|   490   expected_surface_draw_transform.Translate(-10.0, -30.0);  // scroll delta |   490   expected_surface_draw_transform.Translate(-10.0, -30.0);  // scroll delta | 
|   491   expected_surface_draw_transform.Translate(8.0, 6.0); |   491   expected_surface_draw_transform.Translate(8.0, 6.0); | 
|   492  |   492  | 
|   493   expected_great_grand_child_transform.MakeIdentity(); |   493   expected_great_grand_child_transform.MakeIdentity(); | 
|   494   // explicit canceling out the scroll delta that gets embedded in the fixed |   494   // explicit canceling out the scroll delta that gets embedded in the fixed | 
|   495   // position layer's surface. |   495   // position layer's surface. | 
|   496   expected_great_grand_child_transform.Translate(10.0, 30.0); |   496   expected_great_grand_child_transform.Translate(10.0, 30.0); | 
|   497   expected_great_grand_child_transform.PreconcatTransform(rotation_about_z); |   497   expected_great_grand_child_transform.PreconcatTransform(rotation_about_z); | 
|   498  |   498  | 
|   499   EXPECT_TRUE(grand_child_impl_->render_surface()); |   499   EXPECT_TRUE(grand_child_impl_->GetRenderSurface()); | 
|   500   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |   500   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, | 
|   501                                   child_impl_->DrawTransform()); |   501                                   child_impl_->DrawTransform()); | 
|   502   EXPECT_TRANSFORMATION_MATRIX_EQ( |   502   EXPECT_TRANSFORMATION_MATRIX_EQ( | 
|   503       expected_surface_draw_transform, |   503       expected_surface_draw_transform, | 
|   504       grand_child_impl_->render_surface()->draw_transform()); |   504       grand_child_impl_->GetRenderSurface()->draw_transform()); | 
|   505   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, |   505   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, | 
|   506                                   grand_child_impl_->DrawTransform()); |   506                                   grand_child_impl_->DrawTransform()); | 
|   507   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, |   507   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, | 
|   508                                   great_grand_child_impl_->DrawTransform()); |   508                                   great_grand_child_impl_->DrawTransform()); | 
|   509  |   509  | 
|   510   // Case 3: fixed-container size delta of 20, 20 |   510   // Case 3: fixed-container size delta of 20, 20 | 
|   511   SetFixedContainerSizeDelta(child_impl_, gfx::Vector2d(20, 20)); |   511   SetFixedContainerSizeDelta(child_impl_, gfx::Vector2d(20, 20)); | 
|   512   ExecuteCalculateDrawProperties(root_impl_); |   512   ExecuteCalculateDrawProperties(root_impl_); | 
|   513  |   513  | 
|   514   // Top-left fixed-position layer should not be affected by container size. |   514   // Top-left fixed-position layer should not be affected by container size. | 
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   596   gfx::Transform expected_grand_child_transform; |   596   gfx::Transform expected_grand_child_transform; | 
|   597  |   597  | 
|   598   gfx::Transform expected_great_grand_child_surface_draw_transform; |   598   gfx::Transform expected_great_grand_child_surface_draw_transform; | 
|   599   expected_great_grand_child_surface_draw_transform.Translate(40.0, 60.0); |   599   expected_great_grand_child_surface_draw_transform.Translate(40.0, 60.0); | 
|   600  |   600  | 
|   601   gfx::Transform expected_great_grand_child_transform; |   601   gfx::Transform expected_great_grand_child_transform; | 
|   602  |   602  | 
|   603   gfx::Transform expected_fixed_position_child_transform; |   603   gfx::Transform expected_fixed_position_child_transform; | 
|   604   expected_fixed_position_child_transform.PreconcatTransform(rotation_about_z); |   604   expected_fixed_position_child_transform.PreconcatTransform(rotation_about_z); | 
|   605  |   605  | 
|   606   EXPECT_TRUE(grand_child_impl_->render_surface()); |   606   EXPECT_TRUE(grand_child_impl_->GetRenderSurface()); | 
|   607   EXPECT_TRUE(great_grand_child_impl_->render_surface()); |   607   EXPECT_TRUE(great_grand_child_impl_->GetRenderSurface()); | 
|   608   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |   608   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, | 
|   609                                   child_impl_->DrawTransform()); |   609                                   child_impl_->DrawTransform()); | 
|   610   EXPECT_TRANSFORMATION_MATRIX_EQ( |   610   EXPECT_TRANSFORMATION_MATRIX_EQ( | 
|   611       expected_grand_child_surface_draw_transform, |   611       expected_grand_child_surface_draw_transform, | 
|   612       grand_child_impl_->render_surface()->draw_transform()); |   612       grand_child_impl_->GetRenderSurface()->draw_transform()); | 
|   613   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, |   613   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, | 
|   614                                   grand_child_impl_->DrawTransform()); |   614                                   grand_child_impl_->DrawTransform()); | 
|   615   EXPECT_TRANSFORMATION_MATRIX_EQ( |   615   EXPECT_TRANSFORMATION_MATRIX_EQ( | 
|   616       expected_great_grand_child_surface_draw_transform, |   616       expected_great_grand_child_surface_draw_transform, | 
|   617       great_grand_child_impl_->render_surface()->draw_transform()); |   617       great_grand_child_impl_->GetRenderSurface()->draw_transform()); | 
|   618   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, |   618   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, | 
|   619                                   great_grand_child_impl_->DrawTransform()); |   619                                   great_grand_child_impl_->DrawTransform()); | 
|   620   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_position_child_transform, |   620   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_position_child_transform, | 
|   621                                   fixed_position_child_impl->DrawTransform()); |   621                                   fixed_position_child_impl->DrawTransform()); | 
|   622  |   622  | 
|   623   // Case 2: scroll delta of 10, 30 |   623   // Case 2: scroll delta of 10, 30 | 
|   624   SetScrollOffsetDelta(child_impl_, gfx::Vector2d(10, 30)); |   624   SetScrollOffsetDelta(child_impl_, gfx::Vector2d(10, 30)); | 
|   625   ExecuteCalculateDrawProperties(root_impl_); |   625   ExecuteCalculateDrawProperties(root_impl_); | 
|   626  |   626  | 
|   627   expected_child_transform.MakeIdentity(); |   627   expected_child_transform.MakeIdentity(); | 
|   628   expected_child_transform.Translate(-10.0, -30.0);  // scroll delta |   628   expected_child_transform.Translate(-10.0, -30.0);  // scroll delta | 
|   629  |   629  | 
|   630   expected_grand_child_surface_draw_transform.MakeIdentity(); |   630   expected_grand_child_surface_draw_transform.MakeIdentity(); | 
|   631   expected_grand_child_surface_draw_transform.Translate(-10.0, |   631   expected_grand_child_surface_draw_transform.Translate(-10.0, | 
|   632                                                         -30.0);  // scroll delta |   632                                                         -30.0);  // scroll delta | 
|   633   expected_grand_child_surface_draw_transform.Translate(8.0, 6.0); |   633   expected_grand_child_surface_draw_transform.Translate(8.0, 6.0); | 
|   634  |   634  | 
|   635   // grand_child, great_grand_child, and great_grand_child's surface are not |   635   // grand_child, great_grand_child, and great_grand_child's surface are not | 
|   636   // expected to change, since they are all not fixed, and they are all drawn |   636   // expected to change, since they are all not fixed, and they are all drawn | 
|   637   // with respect to grand_child's surface that already has the scroll delta |   637   // with respect to grand_child's surface that already has the scroll delta | 
|   638   // accounted for. |   638   // accounted for. | 
|   639  |   639  | 
|   640   // But the great-great grandchild, "fixed_position_child", should have a |   640   // But the great-great grandchild, "fixed_position_child", should have a | 
|   641   // transform that explicitly cancels out the scroll delta. |   641   // transform that explicitly cancels out the scroll delta. | 
|   642   expected_fixed_position_child_transform.MakeIdentity(); |   642   expected_fixed_position_child_transform.MakeIdentity(); | 
|   643   expected_fixed_position_child_transform.Translate(10.0, 30.0); |   643   expected_fixed_position_child_transform.Translate(10.0, 30.0); | 
|   644   expected_fixed_position_child_transform.PreconcatTransform(rotation_about_z); |   644   expected_fixed_position_child_transform.PreconcatTransform(rotation_about_z); | 
|   645  |   645  | 
|   646   EXPECT_TRUE(grand_child_impl_->render_surface()); |   646   EXPECT_TRUE(grand_child_impl_->GetRenderSurface()); | 
|   647   EXPECT_TRUE(great_grand_child_impl_->render_surface()); |   647   EXPECT_TRUE(great_grand_child_impl_->GetRenderSurface()); | 
|   648   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |   648   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, | 
|   649                                   child_impl_->DrawTransform()); |   649                                   child_impl_->DrawTransform()); | 
|   650   EXPECT_TRANSFORMATION_MATRIX_EQ( |   650   EXPECT_TRANSFORMATION_MATRIX_EQ( | 
|   651       expected_grand_child_surface_draw_transform, |   651       expected_grand_child_surface_draw_transform, | 
|   652       grand_child_impl_->render_surface()->draw_transform()); |   652       grand_child_impl_->GetRenderSurface()->draw_transform()); | 
|   653   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, |   653   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, | 
|   654                                   grand_child_impl_->DrawTransform()); |   654                                   grand_child_impl_->DrawTransform()); | 
|   655   EXPECT_TRANSFORMATION_MATRIX_EQ( |   655   EXPECT_TRANSFORMATION_MATRIX_EQ( | 
|   656       expected_great_grand_child_surface_draw_transform, |   656       expected_great_grand_child_surface_draw_transform, | 
|   657       great_grand_child_impl_->render_surface()->draw_transform()); |   657       great_grand_child_impl_->GetRenderSurface()->draw_transform()); | 
|   658   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, |   658   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, | 
|   659                                   great_grand_child_impl_->DrawTransform()); |   659                                   great_grand_child_impl_->DrawTransform()); | 
|   660   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_position_child_transform, |   660   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_position_child_transform, | 
|   661                                   fixed_position_child_impl->DrawTransform()); |   661                                   fixed_position_child_impl->DrawTransform()); | 
|   662  |   662  | 
|   663   // Case 3: fixed-container size delta of 20, 20 |   663   // Case 3: fixed-container size delta of 20, 20 | 
|   664   SetFixedContainerSizeDelta(child_impl_, gfx::Vector2d(20, 20)); |   664   SetFixedContainerSizeDelta(child_impl_, gfx::Vector2d(20, 20)); | 
|   665   ExecuteCalculateDrawProperties(root_impl_); |   665   ExecuteCalculateDrawProperties(root_impl_); | 
|   666  |   666  | 
|   667   // Top-left fixed-position layer should not be affected by container size. |   667   // Top-left fixed-position layer should not be affected by container size. | 
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   758   gfx::Transform expected_grand_child_transform; |   758   gfx::Transform expected_grand_child_transform; | 
|   759  |   759  | 
|   760   gfx::Transform expected_great_grand_child_surface_draw_transform; |   760   gfx::Transform expected_great_grand_child_surface_draw_transform; | 
|   761   expected_great_grand_child_surface_draw_transform.Translate(40.0, 60.0); |   761   expected_great_grand_child_surface_draw_transform.Translate(40.0, 60.0); | 
|   762  |   762  | 
|   763   gfx::Transform expected_great_grand_child_transform; |   763   gfx::Transform expected_great_grand_child_transform; | 
|   764  |   764  | 
|   765   gfx::Transform expected_fixed_position_child_transform; |   765   gfx::Transform expected_fixed_position_child_transform; | 
|   766   expected_fixed_position_child_transform.PreconcatTransform(rotation_about_z); |   766   expected_fixed_position_child_transform.PreconcatTransform(rotation_about_z); | 
|   767  |   767  | 
|   768   EXPECT_TRUE(grand_child_impl_->render_surface()); |   768   EXPECT_TRUE(grand_child_impl_->GetRenderSurface()); | 
|   769   EXPECT_TRUE(great_grand_child_impl_->render_surface()); |   769   EXPECT_TRUE(great_grand_child_impl_->GetRenderSurface()); | 
|   770   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |   770   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, | 
|   771                                   child_impl_->DrawTransform()); |   771                                   child_impl_->DrawTransform()); | 
|   772   EXPECT_TRANSFORMATION_MATRIX_EQ( |   772   EXPECT_TRANSFORMATION_MATRIX_EQ( | 
|   773       expected_grand_child_surface_draw_transform, |   773       expected_grand_child_surface_draw_transform, | 
|   774       grand_child_impl_->render_surface()->draw_transform()); |   774       grand_child_impl_->GetRenderSurface()->draw_transform()); | 
|   775   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, |   775   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, | 
|   776                                   grand_child_impl_->DrawTransform()); |   776                                   grand_child_impl_->DrawTransform()); | 
|   777   EXPECT_TRANSFORMATION_MATRIX_EQ( |   777   EXPECT_TRANSFORMATION_MATRIX_EQ( | 
|   778       expected_great_grand_child_surface_draw_transform, |   778       expected_great_grand_child_surface_draw_transform, | 
|   779       great_grand_child_impl_->render_surface()->draw_transform()); |   779       great_grand_child_impl_->GetRenderSurface()->draw_transform()); | 
|   780   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, |   780   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, | 
|   781                                   great_grand_child_impl_->DrawTransform()); |   781                                   great_grand_child_impl_->DrawTransform()); | 
|   782   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_position_child_transform, |   782   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_position_child_transform, | 
|   783                                   fixed_position_child_impl->DrawTransform()); |   783                                   fixed_position_child_impl->DrawTransform()); | 
|   784  |   784  | 
|   785   // Case 2: scroll delta of 10, 30 |   785   // Case 2: scroll delta of 10, 30 | 
|   786   SetScrollOffsetDelta(child_impl_, gfx::Vector2d(10, 30)); |   786   SetScrollOffsetDelta(child_impl_, gfx::Vector2d(10, 30)); | 
|   787   ExecuteCalculateDrawProperties(root_impl_); |   787   ExecuteCalculateDrawProperties(root_impl_); | 
|   788  |   788  | 
|   789   expected_child_transform.MakeIdentity(); |   789   expected_child_transform.MakeIdentity(); | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
|   803   // accounted for. |   803   // accounted for. | 
|   804  |   804  | 
|   805   // But the great-great grandchild, "fixed_position_child", should have a |   805   // But the great-great grandchild, "fixed_position_child", should have a | 
|   806   // transform that explicitly cancels out the scroll delta. |   806   // transform that explicitly cancels out the scroll delta. | 
|   807   expected_fixed_position_child_transform.MakeIdentity(); |   807   expected_fixed_position_child_transform.MakeIdentity(); | 
|   808   // explicit canceling out the scroll delta that gets embedded in the fixed |   808   // explicit canceling out the scroll delta that gets embedded in the fixed | 
|   809   // position layer's surface. |   809   // position layer's surface. | 
|   810   expected_fixed_position_child_transform.Translate(10.0, 30.0); |   810   expected_fixed_position_child_transform.Translate(10.0, 30.0); | 
|   811   expected_fixed_position_child_transform.PreconcatTransform(rotation_about_z); |   811   expected_fixed_position_child_transform.PreconcatTransform(rotation_about_z); | 
|   812  |   812  | 
|   813   EXPECT_TRUE(grand_child_impl_->render_surface()); |   813   EXPECT_TRUE(grand_child_impl_->GetRenderSurface()); | 
|   814   EXPECT_TRUE(great_grand_child_impl_->render_surface()); |   814   EXPECT_TRUE(great_grand_child_impl_->GetRenderSurface()); | 
|   815   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |   815   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, | 
|   816                                   child_impl_->DrawTransform()); |   816                                   child_impl_->DrawTransform()); | 
|   817   EXPECT_TRANSFORMATION_MATRIX_EQ( |   817   EXPECT_TRANSFORMATION_MATRIX_EQ( | 
|   818       expected_grand_child_surface_draw_transform, |   818       expected_grand_child_surface_draw_transform, | 
|   819       grand_child_impl_->render_surface()->draw_transform()); |   819       grand_child_impl_->GetRenderSurface()->draw_transform()); | 
|   820   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, |   820   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, | 
|   821                                   grand_child_impl_->DrawTransform()); |   821                                   grand_child_impl_->DrawTransform()); | 
|   822   EXPECT_TRANSFORMATION_MATRIX_EQ( |   822   EXPECT_TRANSFORMATION_MATRIX_EQ( | 
|   823       expected_great_grand_child_surface_draw_transform, |   823       expected_great_grand_child_surface_draw_transform, | 
|   824       great_grand_child_impl_->render_surface()->draw_transform()); |   824       great_grand_child_impl_->GetRenderSurface()->draw_transform()); | 
|   825   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, |   825   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, | 
|   826                                   great_grand_child_impl_->DrawTransform()); |   826                                   great_grand_child_impl_->DrawTransform()); | 
|   827   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_position_child_transform, |   827   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_position_child_transform, | 
|   828                                   fixed_position_child_impl->DrawTransform()); |   828                                   fixed_position_child_impl->DrawTransform()); | 
|   829 } |   829 } | 
|   830  |   830  | 
|   831 TEST_F(LayerPositionConstraintTest, |   831 TEST_F(LayerPositionConstraintTest, | 
|   832      ScrollCompensationForFixedPositionLayerWithContainerLayerThatHasSurface) { |   832      ScrollCompensationForFixedPositionLayerWithContainerLayerThatHasSurface) { | 
|   833   // This test checks for correct scroll compensation when the fixed-position |   833   // This test checks for correct scroll compensation when the fixed-position | 
|   834   // container itself has a render surface. In this case, the container layer |   834   // container itself has a render surface. In this case, the container layer | 
|   835   // should be treated like a layer that contributes to a render target, and |   835   // should be treated like a layer that contributes to a render target, and | 
|   836   // that render target is completely irrelevant; it should not affect the |   836   // that render target is completely irrelevant; it should not affect the | 
|   837   // scroll compensation. |   837   // scroll compensation. | 
|   838   child_->SetIsContainerForFixedPositionLayers(true); |   838   child_->SetIsContainerForFixedPositionLayers(true); | 
|   839   child_->SetForceRenderSurfaceForTesting(true); |   839   child_->SetForceRenderSurfaceForTesting(true); | 
|   840   grand_child_->SetPositionConstraint(fixed_to_top_left_); |   840   grand_child_->SetPositionConstraint(fixed_to_top_left_); | 
|   841  |   841  | 
|   842   CommitAndUpdateImplPointers(); |   842   CommitAndUpdateImplPointers(); | 
|   843  |   843  | 
|   844   // Case 1: scroll delta of 0, 0 |   844   // Case 1: scroll delta of 0, 0 | 
|   845   SetScrollOffsetDelta(child_impl_, gfx::Vector2d(0, 0)); |   845   SetScrollOffsetDelta(child_impl_, gfx::Vector2d(0, 0)); | 
|   846   ExecuteCalculateDrawProperties(root_impl_); |   846   ExecuteCalculateDrawProperties(root_impl_); | 
|   847  |   847  | 
|   848   gfx::Transform expected_surface_draw_transform; |   848   gfx::Transform expected_surface_draw_transform; | 
|   849   gfx::Transform expected_child_transform; |   849   gfx::Transform expected_child_transform; | 
|   850   gfx::Transform expected_grand_child_transform; |   850   gfx::Transform expected_grand_child_transform; | 
|   851   EXPECT_TRUE(child_impl_->render_surface()); |   851   EXPECT_TRUE(child_impl_->GetRenderSurface()); | 
|   852   EXPECT_TRANSFORMATION_MATRIX_EQ( |   852   EXPECT_TRANSFORMATION_MATRIX_EQ( | 
|   853       expected_surface_draw_transform, |   853       expected_surface_draw_transform, | 
|   854       child_impl_->render_surface()->draw_transform()); |   854       child_impl_->GetRenderSurface()->draw_transform()); | 
|   855   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |   855   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, | 
|   856                                   child_impl_->DrawTransform()); |   856                                   child_impl_->DrawTransform()); | 
|   857   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, |   857   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, | 
|   858                                   grand_child_impl_->DrawTransform()); |   858                                   grand_child_impl_->DrawTransform()); | 
|   859  |   859  | 
|   860   // Case 2: scroll delta of 10, 10 |   860   // Case 2: scroll delta of 10, 10 | 
|   861   SetScrollOffsetDelta(child_impl_, gfx::Vector2d(10, 10)); |   861   SetScrollOffsetDelta(child_impl_, gfx::Vector2d(10, 10)); | 
|   862   ExecuteCalculateDrawProperties(root_impl_); |   862   ExecuteCalculateDrawProperties(root_impl_); | 
|   863  |   863  | 
|   864   // The surface is translated by scroll delta, the child transform doesn't |   864   // The surface is translated by scroll delta, the child transform doesn't | 
|   865   // change because it scrolls along with the surface, but the fixed position |   865   // change because it scrolls along with the surface, but the fixed position | 
|   866   // grand_child needs to compensate for the scroll translation. |   866   // grand_child needs to compensate for the scroll translation. | 
|   867   expected_surface_draw_transform.MakeIdentity(); |   867   expected_surface_draw_transform.MakeIdentity(); | 
|   868   expected_surface_draw_transform.Translate(-10.0, -10.0); |   868   expected_surface_draw_transform.Translate(-10.0, -10.0); | 
|   869   expected_grand_child_transform.MakeIdentity(); |   869   expected_grand_child_transform.MakeIdentity(); | 
|   870   expected_grand_child_transform.Translate(10.0, 10.0); |   870   expected_grand_child_transform.Translate(10.0, 10.0); | 
|   871  |   871  | 
|   872   EXPECT_TRUE(child_impl_->render_surface()); |   872   EXPECT_TRUE(child_impl_->GetRenderSurface()); | 
|   873   EXPECT_TRANSFORMATION_MATRIX_EQ( |   873   EXPECT_TRANSFORMATION_MATRIX_EQ( | 
|   874       expected_surface_draw_transform, |   874       expected_surface_draw_transform, | 
|   875       child_impl_->render_surface()->draw_transform()); |   875       child_impl_->GetRenderSurface()->draw_transform()); | 
|   876   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |   876   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, | 
|   877                                   child_impl_->DrawTransform()); |   877                                   child_impl_->DrawTransform()); | 
|   878   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, |   878   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, | 
|   879                                   grand_child_impl_->DrawTransform()); |   879                                   grand_child_impl_->DrawTransform()); | 
|   880  |   880  | 
|   881   // Case 3: fixed-container size delta of 20, 20 |   881   // Case 3: fixed-container size delta of 20, 20 | 
|   882   SetFixedContainerSizeDelta(child_impl_, gfx::Vector2d(20, 20)); |   882   SetFixedContainerSizeDelta(child_impl_, gfx::Vector2d(20, 20)); | 
|   883   ExecuteCalculateDrawProperties(root_impl_); |   883   ExecuteCalculateDrawProperties(root_impl_); | 
|   884  |   884  | 
|   885   // Top-left fixed-position layer should not be affected by container size. |   885   // Top-left fixed-position layer should not be affected by container size. | 
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1141   expected_fixed_child_transform.Translate(20.0, 20.0); |  1141   expected_fixed_child_transform.Translate(20.0, 20.0); | 
|  1142  |  1142  | 
|  1143   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_scroll_layer_transform, |  1143   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_scroll_layer_transform, | 
|  1144                                   scroll_layer_impl_->DrawTransform()); |  1144                                   scroll_layer_impl_->DrawTransform()); | 
|  1145   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_child_transform, |  1145   EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_child_transform, | 
|  1146                                   fixed_child_impl->DrawTransform()); |  1146                                   fixed_child_impl->DrawTransform()); | 
|  1147 } |  1147 } | 
|  1148  |  1148  | 
|  1149 }  // namespace |  1149 }  // namespace | 
|  1150 }  // namespace cc |  1150 }  // namespace cc | 
| OLD | NEW |