Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: cc/layers/scrollbar_layer_unittest.cc

Issue 584503005: Make scroll offset type of float in cc (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: blow up the patchset :( Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 "base/containers/hash_tables.h" 5 #include "base/containers/hash_tables.h"
6 #include "cc/animation/scrollbar_animation_controller.h" 6 #include "cc/animation/scrollbar_animation_controller.h"
7 #include "cc/layers/append_quads_data.h" 7 #include "cc/layers/append_quads_data.h"
8 #include "cc/layers/painted_scrollbar_layer.h" 8 #include "cc/layers/painted_scrollbar_layer.h"
9 #include "cc/layers/painted_scrollbar_layer_impl.h" 9 #include "cc/layers/painted_scrollbar_layer_impl.h"
10 #include "cc/layers/scrollbar_layer_interface.h" 10 #include "cc/layers/scrollbar_layer_interface.h"
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 scoped_ptr<Scrollbar> scrollbar(new FakeScrollbar); 128 scoped_ptr<Scrollbar> scrollbar(new FakeScrollbar);
129 scoped_refptr<Layer> layer_tree_root = Layer::Create(); 129 scoped_refptr<Layer> layer_tree_root = Layer::Create();
130 scoped_refptr<Layer> scroll_layer = Layer::Create(); 130 scoped_refptr<Layer> scroll_layer = Layer::Create();
131 scoped_refptr<Layer> content_layer = Layer::Create(); 131 scoped_refptr<Layer> content_layer = Layer::Create();
132 scoped_refptr<Layer> scrollbar_layer = 132 scoped_refptr<Layer> scrollbar_layer =
133 PaintedScrollbarLayer::Create(scrollbar.Pass(), layer_tree_root->id()); 133 PaintedScrollbarLayer::Create(scrollbar.Pass(), layer_tree_root->id());
134 134
135 // Choose bounds to give max_scroll_offset = (30, 50). 135 // Choose bounds to give max_scroll_offset = (30, 50).
136 layer_tree_root->SetBounds(gfx::Size(70, 150)); 136 layer_tree_root->SetBounds(gfx::Size(70, 150));
137 scroll_layer->SetScrollClipLayerId(layer_tree_root->id()); 137 scroll_layer->SetScrollClipLayerId(layer_tree_root->id());
138 scroll_layer->SetScrollOffset(gfx::Vector2d(10, 20)); 138 scroll_layer->SetScrollOffset(gfx::ScrollOffset(10, 20));
139 scroll_layer->SetBounds(gfx::Size(100, 200)); 139 scroll_layer->SetBounds(gfx::Size(100, 200));
140 content_layer->SetBounds(gfx::Size(100, 200)); 140 content_layer->SetBounds(gfx::Size(100, 200));
141 141
142 host->SetRootLayer(layer_tree_root); 142 host->SetRootLayer(layer_tree_root);
143 layer_tree_root->AddChild(scroll_layer); 143 layer_tree_root->AddChild(scroll_layer);
144 scroll_layer->AddChild(content_layer); 144 scroll_layer->AddChild(content_layer);
145 layer_tree_root->AddChild(scrollbar_layer); 145 layer_tree_root->AddChild(scrollbar_layer);
146 scrollbar_layer->ToScrollbarLayer()->SetScrollLayer(scroll_layer->id()); 146 scrollbar_layer->ToScrollbarLayer()->SetScrollLayer(scroll_layer->id());
147 scrollbar_layer->ToScrollbarLayer()->SetClipLayer(layer_tree_root->id()); 147 scrollbar_layer->ToScrollbarLayer()->SetClipLayer(layer_tree_root->id());
148 148
149 layer_tree_root->SavePaintProperties(); 149 layer_tree_root->SavePaintProperties();
150 content_layer->SavePaintProperties(); 150 content_layer->SavePaintProperties();
151 151
152 LayerImpl* layer_impl_tree_root = host->CommitAndCreateLayerImplTree(); 152 LayerImpl* layer_impl_tree_root = host->CommitAndCreateLayerImplTree();
153 153
154 ScrollbarLayerImplBase* cc_scrollbar_layer = 154 ScrollbarLayerImplBase* cc_scrollbar_layer =
155 static_cast<PaintedScrollbarLayerImpl*>( 155 static_cast<PaintedScrollbarLayerImpl*>(
156 layer_impl_tree_root->children()[1]); 156 layer_impl_tree_root->children()[1]);
157 157
158 EXPECT_EQ(10.f, cc_scrollbar_layer->current_pos()); 158 EXPECT_EQ(10.f, cc_scrollbar_layer->current_pos());
159 EXPECT_EQ(30, cc_scrollbar_layer->maximum()); 159 EXPECT_EQ(30, cc_scrollbar_layer->maximum());
160 160
161 layer_tree_root->SetBounds(gfx::Size(700, 1500)); 161 layer_tree_root->SetBounds(gfx::Size(700, 1500));
162 layer_tree_root->SavePaintProperties(); 162 layer_tree_root->SavePaintProperties();
163 scroll_layer->SetBounds(gfx::Size(1000, 2000)); 163 scroll_layer->SetBounds(gfx::Size(1000, 2000));
164 scroll_layer->SetScrollOffset(gfx::Vector2d(100, 200)); 164 scroll_layer->SetScrollOffset(gfx::ScrollOffset(100, 200));
165 scroll_layer->SavePaintProperties(); 165 scroll_layer->SavePaintProperties();
166 content_layer->SetBounds(gfx::Size(1000, 2000)); 166 content_layer->SetBounds(gfx::Size(1000, 2000));
167 content_layer->SavePaintProperties(); 167 content_layer->SavePaintProperties();
168 168
169 ScrollbarAnimationController* scrollbar_controller = 169 ScrollbarAnimationController* scrollbar_controller =
170 layer_impl_tree_root->scrollbar_animation_controller(); 170 layer_impl_tree_root->scrollbar_animation_controller();
171 layer_impl_tree_root = host->CommitAndCreateLayerImplTree(); 171 layer_impl_tree_root = host->CommitAndCreateLayerImplTree();
172 EXPECT_EQ(scrollbar_controller, 172 EXPECT_EQ(scrollbar_controller,
173 layer_impl_tree_root->scrollbar_animation_controller()); 173 layer_impl_tree_root->scrollbar_animation_controller());
174 174
(...skipping 29 matching lines...) Expand all
204 // Give the root-clip a size that will result in MaxScrollOffset = (80, 0). 204 // Give the root-clip a size that will result in MaxScrollOffset = (80, 0).
205 root_clip_layer->SetBounds(gfx::Size(20, 50)); 205 root_clip_layer->SetBounds(gfx::Size(20, 50));
206 root_layer->SetBounds(gfx::Size(100, 50)); 206 root_layer->SetBounds(gfx::Size(100, 50));
207 content_layer->SetBounds(gfx::Size(100, 50)); 207 content_layer->SetBounds(gfx::Size(100, 50));
208 208
209 host->SetRootLayer(root_clip_layer); 209 host->SetRootLayer(root_clip_layer);
210 root_clip_layer->AddChild(root_layer); 210 root_clip_layer->AddChild(root_layer);
211 root_layer->AddChild(content_layer); 211 root_layer->AddChild(content_layer);
212 root_layer->AddChild(scrollbar_layer); 212 root_layer->AddChild(scrollbar_layer);
213 213
214 root_layer->SetScrollOffset(gfx::Vector2d(0, 0)); 214 root_layer->SetScrollOffset(gfx::ScrollOffset(0, 0));
215 scrollbar_layer->SetBounds(gfx::Size(70, 10)); 215 scrollbar_layer->SetBounds(gfx::Size(70, 10));
216 scrollbar_layer->SetScrollLayer(root_layer->id()); 216 scrollbar_layer->SetScrollLayer(root_layer->id());
217 scrollbar_layer->SetClipLayer(root_clip_layer->id()); 217 scrollbar_layer->SetClipLayer(root_clip_layer->id());
218 scrollbar_layer->fake_scrollbar()->set_location(gfx::Point(20, 10)); 218 scrollbar_layer->fake_scrollbar()->set_location(gfx::Point(20, 10));
219 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(30, 10, 50, 10)); 219 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(30, 10, 50, 10));
220 scrollbar_layer->fake_scrollbar()->set_thumb_thickness(10); 220 scrollbar_layer->fake_scrollbar()->set_thumb_thickness(10);
221 scrollbar_layer->fake_scrollbar()->set_thumb_length(4); 221 scrollbar_layer->fake_scrollbar()->set_thumb_length(4);
222 222
223 scrollbar_layer->UpdateThumbAndTrackGeometry(); 223 scrollbar_layer->UpdateThumbAndTrackGeometry();
224 LayerImpl* root_clip_layer_impl = NULL; 224 LayerImpl* root_clip_layer_impl = NULL;
(...skipping 23 matching lines...) Expand all
248 // Give the root-clip a size that will result in MaxScrollOffset = (80, 0). 248 // Give the root-clip a size that will result in MaxScrollOffset = (80, 0).
249 root_clip_layer->SetBounds(gfx::Size(20, 50)); 249 root_clip_layer->SetBounds(gfx::Size(20, 50));
250 root_layer->SetBounds(gfx::Size(100, 50)); 250 root_layer->SetBounds(gfx::Size(100, 50));
251 content_layer->SetBounds(gfx::Size(100, 50)); 251 content_layer->SetBounds(gfx::Size(100, 50));
252 252
253 host->SetRootLayer(root_clip_layer); 253 host->SetRootLayer(root_clip_layer);
254 root_clip_layer->AddChild(root_layer); 254 root_clip_layer->AddChild(root_layer);
255 root_layer->AddChild(content_layer); 255 root_layer->AddChild(content_layer);
256 root_layer->AddChild(scrollbar_layer); 256 root_layer->AddChild(scrollbar_layer);
257 257
258 root_layer->SetScrollOffset(gfx::Vector2d(0, 0)); 258 root_layer->SetScrollOffset(gfx::ScrollOffset(0, 0));
259 scrollbar_layer->SetBounds(gfx::Size(70, 10)); 259 scrollbar_layer->SetBounds(gfx::Size(70, 10));
260 scrollbar_layer->SetScrollLayer(root_layer->id()); 260 scrollbar_layer->SetScrollLayer(root_layer->id());
261 scrollbar_layer->SetClipLayer(root_clip_layer->id()); 261 scrollbar_layer->SetClipLayer(root_clip_layer->id());
262 scrollbar_layer->fake_scrollbar()->set_location(gfx::Point(20, 10)); 262 scrollbar_layer->fake_scrollbar()->set_location(gfx::Point(20, 10));
263 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(30, 10, 50, 10)); 263 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(30, 10, 50, 10));
264 scrollbar_layer->fake_scrollbar()->set_thumb_thickness(10); 264 scrollbar_layer->fake_scrollbar()->set_thumb_thickness(10);
265 scrollbar_layer->fake_scrollbar()->set_thumb_length(4); 265 scrollbar_layer->fake_scrollbar()->set_thumb_length(4);
266 scrollbar_layer->UpdateThumbAndTrackGeometry(); 266 scrollbar_layer->UpdateThumbAndTrackGeometry();
267 LayerImpl* root_clip_layer_impl = NULL; 267 LayerImpl* root_clip_layer_impl = NULL;
268 LayerImpl* root_layer_impl = NULL; 268 LayerImpl* root_layer_impl = NULL;
269 PaintedScrollbarLayerImpl* scrollbar_layer_impl = NULL; 269 PaintedScrollbarLayerImpl* scrollbar_layer_impl = NULL;
270 270
271 // Thumb is at the edge of the scrollbar (should be inset to 271 // Thumb is at the edge of the scrollbar (should be inset to
272 // the start of the track within the scrollbar layer's 272 // the start of the track within the scrollbar layer's
273 // position). 273 // position).
274 UPDATE_AND_EXTRACT_LAYER_POINTERS(); 274 UPDATE_AND_EXTRACT_LAYER_POINTERS();
275 EXPECT_EQ(gfx::Rect(10, 0, 4, 10).ToString(), 275 EXPECT_EQ(gfx::Rect(10, 0, 4, 10).ToString(),
276 scrollbar_layer_impl->ComputeThumbQuadRect().ToString()); 276 scrollbar_layer_impl->ComputeThumbQuadRect().ToString());
277 277
278 // Under-scroll (thumb position should clamp and be unchanged). 278 // Under-scroll (thumb position should clamp and be unchanged).
279 root_layer->SetScrollOffset(gfx::Vector2d(-5, 0)); 279 root_layer->SetScrollOffset(gfx::ScrollOffset(-5, 0));
280 280
281 UPDATE_AND_EXTRACT_LAYER_POINTERS(); 281 UPDATE_AND_EXTRACT_LAYER_POINTERS();
282 EXPECT_EQ(gfx::Rect(10, 0, 4, 10).ToString(), 282 EXPECT_EQ(gfx::Rect(10, 0, 4, 10).ToString(),
283 scrollbar_layer_impl->ComputeThumbQuadRect().ToString()); 283 scrollbar_layer_impl->ComputeThumbQuadRect().ToString());
284 284
285 // Over-scroll (thumb position should clamp on the far side). 285 // Over-scroll (thumb position should clamp on the far side).
286 root_layer->SetScrollOffset(gfx::Vector2d(85, 0)); 286 root_layer->SetScrollOffset(gfx::ScrollOffset(85, 0));
287 287
288 UPDATE_AND_EXTRACT_LAYER_POINTERS(); 288 UPDATE_AND_EXTRACT_LAYER_POINTERS();
289 EXPECT_EQ(gfx::Rect(56, 0, 4, 10).ToString(), 289 EXPECT_EQ(gfx::Rect(56, 0, 4, 10).ToString(),
290 scrollbar_layer_impl->ComputeThumbQuadRect().ToString()); 290 scrollbar_layer_impl->ComputeThumbQuadRect().ToString());
291 291
292 // Change thumb thickness and length. 292 // Change thumb thickness and length.
293 scrollbar_layer->fake_scrollbar()->set_thumb_thickness(4); 293 scrollbar_layer->fake_scrollbar()->set_thumb_thickness(4);
294 scrollbar_layer->fake_scrollbar()->set_thumb_length(6); 294 scrollbar_layer->fake_scrollbar()->set_thumb_length(6);
295 295
296 UPDATE_AND_EXTRACT_LAYER_POINTERS(); 296 UPDATE_AND_EXTRACT_LAYER_POINTERS();
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 scrollbar_layer = PaintedScrollbarLayer::Create(scrollbar.Pass(), 713 scrollbar_layer = PaintedScrollbarLayer::Create(scrollbar.Pass(),
714 layer_tree_root->id()); 714 layer_tree_root->id());
715 } 715 }
716 layer_tree_root->AddChild(content_layer); 716 layer_tree_root->AddChild(content_layer);
717 layer_tree_root->AddChild(scrollbar_layer); 717 layer_tree_root->AddChild(scrollbar_layer);
718 718
719 layer_tree_host_->SetRootLayer(layer_tree_root); 719 layer_tree_host_->SetRootLayer(layer_tree_root);
720 720
721 scrollbar_layer->SetIsDrawable(true); 721 scrollbar_layer->SetIsDrawable(true);
722 scrollbar_layer->SetBounds(gfx::Size(100, 100)); 722 scrollbar_layer->SetBounds(gfx::Size(100, 100));
723 layer_tree_root->SetScrollOffset(gfx::Vector2d(10, 20)); 723 layer_tree_root->SetScrollOffset(gfx::ScrollOffset(10, 20));
724 layer_tree_root->SetBounds(gfx::Size(100, 200)); 724 layer_tree_root->SetBounds(gfx::Size(100, 200));
725 content_layer->SetBounds(gfx::Size(100, 200)); 725 content_layer->SetBounds(gfx::Size(100, 200));
726 scrollbar_layer->draw_properties().content_bounds = gfx::Size(100, 200); 726 scrollbar_layer->draw_properties().content_bounds = gfx::Size(100, 200);
727 scrollbar_layer->draw_properties().visible_content_rect = 727 scrollbar_layer->draw_properties().visible_content_rect =
728 gfx::Rect(0, 0, 100, 200); 728 gfx::Rect(0, 0, 100, 200);
729 scrollbar_layer->CreateRenderSurface(); 729 scrollbar_layer->CreateRenderSurface();
730 scrollbar_layer->draw_properties().render_target = scrollbar_layer.get(); 730 scrollbar_layer->draw_properties().render_target = scrollbar_layer.get();
731 731
732 testing::Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 732 testing::Mock::VerifyAndClearExpectations(layer_tree_host_.get());
733 EXPECT_EQ(scrollbar_layer->layer_tree_host(), layer_tree_host_.get()); 733 EXPECT_EQ(scrollbar_layer->layer_tree_host(), layer_tree_host_.get());
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 TestScale(gfx::Rect(1240, 0, 15, 1333), 2.7754839f); 1095 TestScale(gfx::Rect(1240, 0, 15, 1333), 2.7754839f);
1096 TestScale(gfx::Rect(1240, 0, 15, 677), 2.46677136f); 1096 TestScale(gfx::Rect(1240, 0, 15, 677), 2.46677136f);
1097 1097
1098 // Horizontal Scrollbars. 1098 // Horizontal Scrollbars.
1099 TestScale(gfx::Rect(0, 1240, 1333, 15), 2.7754839f); 1099 TestScale(gfx::Rect(0, 1240, 1333, 15), 2.7754839f);
1100 TestScale(gfx::Rect(0, 1240, 677, 15), 2.46677136f); 1100 TestScale(gfx::Rect(0, 1240, 677, 15), 2.46677136f);
1101 } 1101 }
1102 1102
1103 } // namespace 1103 } // namespace
1104 } // namespace cc 1104 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698