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

Side by Side Diff: cc/trees/layer_tree_host_impl_unittest.cc

Issue 437163007: Revert of Implement scroll handler latency tracking (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_host_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 954 matching lines...) Expand 10 before | Expand all | Expand 10 after
965 host_impl_->ScrollEnd(); 965 host_impl_->ScrollEnd();
966 966
967 scoped_ptr<ScrollAndScaleSet> scroll_info = 967 scoped_ptr<ScrollAndScaleSet> scroll_info =
968 host_impl_->ProcessScrollDeltas(); 968 host_impl_->ProcessScrollDeltas();
969 ExpectContains(*scroll_info.get(), 969 ExpectContains(*scroll_info.get(),
970 scroll_layer->id(), 970 scroll_layer->id(),
971 scroll_delta); 971 scroll_delta);
972 } 972 }
973 } 973 }
974 974
975 TEST_F(LayerTreeHostImplTest, ScrollWithSwapPromises) {
976 ui::LatencyInfo latency_info;
977 latency_info.trace_id = 1234;
978 scoped_ptr<SwapPromise> swap_promise(
979 new LatencyInfoSwapPromise(latency_info));
980
981 SetupScrollAndContentsLayers(gfx::Size(100, 100));
982 EXPECT_EQ(InputHandler::ScrollStarted,
983 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Gesture));
984 host_impl_->ScrollBy(gfx::Point(), gfx::Vector2d(0, 10));
985 host_impl_->QueueSwapPromiseForMainThreadScrollUpdate(swap_promise.Pass());
986 host_impl_->ScrollEnd();
987
988 scoped_ptr<ScrollAndScaleSet> scroll_info = host_impl_->ProcessScrollDeltas();
989 EXPECT_EQ(1u, scroll_info->swap_promises.size());
990 EXPECT_EQ(latency_info.trace_id, scroll_info->swap_promises[0]->TraceId());
991 }
992
993 TEST_F(LayerTreeHostImplTest, MasksToBoundsDoesntClobberInnerContainerSize) { 975 TEST_F(LayerTreeHostImplTest, MasksToBoundsDoesntClobberInnerContainerSize) {
994 SetupScrollAndContentsLayers(gfx::Size(100, 100)); 976 SetupScrollAndContentsLayers(gfx::Size(100, 100));
995 host_impl_->SetViewportSize(gfx::Size(50, 50)); 977 host_impl_->SetViewportSize(gfx::Size(50, 50));
996 DrawFrame(); 978 DrawFrame();
997 979
998 LayerImpl* scroll_layer = host_impl_->InnerViewportScrollLayer(); 980 LayerImpl* scroll_layer = host_impl_->InnerViewportScrollLayer();
999 LayerImpl* container_layer = scroll_layer->scroll_clip_layer(); 981 LayerImpl* container_layer = scroll_layer->scroll_clip_layer();
1000 DCHECK(scroll_layer); 982 DCHECK(scroll_layer);
1001 983
1002 float min_page_scale = 1.f; 984 float min_page_scale = 1.f;
(...skipping 5375 matching lines...) Expand 10 before | Expand all | Expand 10 after
6378 EXPECT_EQ(selection_rect, selection_start_after.viewport_rect); 6360 EXPECT_EQ(selection_rect, selection_start_after.viewport_rect);
6379 EXPECT_TRUE(selection_start_after.visible); 6361 EXPECT_TRUE(selection_start_after.visible);
6380 EXPECT_TRUE(selection_start_after.visible); 6362 EXPECT_TRUE(selection_start_after.visible);
6381 } 6363 }
6382 6364
6383 class SimpleSwapPromiseMonitor : public SwapPromiseMonitor { 6365 class SimpleSwapPromiseMonitor : public SwapPromiseMonitor {
6384 public: 6366 public:
6385 SimpleSwapPromiseMonitor(LayerTreeHost* layer_tree_host, 6367 SimpleSwapPromiseMonitor(LayerTreeHost* layer_tree_host,
6386 LayerTreeHostImpl* layer_tree_host_impl, 6368 LayerTreeHostImpl* layer_tree_host_impl,
6387 int* set_needs_commit_count, 6369 int* set_needs_commit_count,
6388 int* set_needs_redraw_count, 6370 int* set_needs_redraw_count)
6389 int* forward_to_main_count)
6390 : SwapPromiseMonitor(layer_tree_host, layer_tree_host_impl), 6371 : SwapPromiseMonitor(layer_tree_host, layer_tree_host_impl),
6391 set_needs_commit_count_(set_needs_commit_count), 6372 set_needs_commit_count_(set_needs_commit_count),
6392 set_needs_redraw_count_(set_needs_redraw_count), 6373 set_needs_redraw_count_(set_needs_redraw_count) {}
6393 forward_to_main_count_(forward_to_main_count) {}
6394 6374
6395 virtual ~SimpleSwapPromiseMonitor() {} 6375 virtual ~SimpleSwapPromiseMonitor() {}
6396 6376
6397 virtual void OnSetNeedsCommitOnMain() OVERRIDE { 6377 virtual void OnSetNeedsCommitOnMain() OVERRIDE {
6398 (*set_needs_commit_count_)++; 6378 (*set_needs_commit_count_)++;
6399 } 6379 }
6400 6380
6401 virtual void OnSetNeedsRedrawOnImpl() OVERRIDE { 6381 virtual void OnSetNeedsRedrawOnImpl() OVERRIDE {
6402 (*set_needs_redraw_count_)++; 6382 (*set_needs_redraw_count_)++;
6403 } 6383 }
6404 6384
6405 virtual void OnForwardScrollUpdateToMainThreadOnImpl() OVERRIDE {
6406 (*forward_to_main_count_)++;
6407 }
6408
6409 private: 6385 private:
6410 int* set_needs_commit_count_; 6386 int* set_needs_commit_count_;
6411 int* set_needs_redraw_count_; 6387 int* set_needs_redraw_count_;
6412 int* forward_to_main_count_;
6413 }; 6388 };
6414 6389
6415 TEST_F(LayerTreeHostImplTest, SimpleSwapPromiseMonitor) { 6390 TEST_F(LayerTreeHostImplTest, SimpleSwapPromiseMonitor) {
6416 int set_needs_commit_count = 0; 6391 int set_needs_commit_count = 0;
6417 int set_needs_redraw_count = 0; 6392 int set_needs_redraw_count = 0;
6418 int forward_to_main_count = 0;
6419 6393
6420 { 6394 {
6421 scoped_ptr<SimpleSwapPromiseMonitor> swap_promise_monitor( 6395 scoped_ptr<SimpleSwapPromiseMonitor> swap_promise_monitor(
6422 new SimpleSwapPromiseMonitor(NULL, 6396 new SimpleSwapPromiseMonitor(NULL,
6423 host_impl_.get(), 6397 host_impl_.get(),
6424 &set_needs_commit_count, 6398 &set_needs_commit_count,
6425 &set_needs_redraw_count, 6399 &set_needs_redraw_count));
6426 &forward_to_main_count));
6427 host_impl_->SetNeedsRedraw(); 6400 host_impl_->SetNeedsRedraw();
6428 EXPECT_EQ(0, set_needs_commit_count); 6401 EXPECT_EQ(0, set_needs_commit_count);
6429 EXPECT_EQ(1, set_needs_redraw_count); 6402 EXPECT_EQ(1, set_needs_redraw_count);
6430 EXPECT_EQ(0, forward_to_main_count);
6431 } 6403 }
6432 6404
6433 // Now the monitor is destroyed, SetNeedsRedraw() is no longer being 6405 // Now the monitor is destroyed, SetNeedsRedraw() is no longer being
6434 // monitored. 6406 // monitored.
6435 host_impl_->SetNeedsRedraw(); 6407 host_impl_->SetNeedsRedraw();
6436 EXPECT_EQ(0, set_needs_commit_count); 6408 EXPECT_EQ(0, set_needs_commit_count);
6437 EXPECT_EQ(1, set_needs_redraw_count); 6409 EXPECT_EQ(1, set_needs_redraw_count);
6438 EXPECT_EQ(0, forward_to_main_count);
6439 6410
6440 { 6411 {
6441 scoped_ptr<SimpleSwapPromiseMonitor> swap_promise_monitor( 6412 scoped_ptr<SimpleSwapPromiseMonitor> swap_promise_monitor(
6442 new SimpleSwapPromiseMonitor(NULL, 6413 new SimpleSwapPromiseMonitor(NULL,
6443 host_impl_.get(), 6414 host_impl_.get(),
6444 &set_needs_commit_count, 6415 &set_needs_commit_count,
6445 &set_needs_redraw_count, 6416 &set_needs_redraw_count));
6446 &forward_to_main_count));
6447 host_impl_->SetNeedsRedrawRect(gfx::Rect(10, 10)); 6417 host_impl_->SetNeedsRedrawRect(gfx::Rect(10, 10));
6448 EXPECT_EQ(0, set_needs_commit_count); 6418 EXPECT_EQ(0, set_needs_commit_count);
6449 EXPECT_EQ(2, set_needs_redraw_count); 6419 EXPECT_EQ(2, set_needs_redraw_count);
6450 EXPECT_EQ(0, forward_to_main_count);
6451 } 6420 }
6452 6421
6453 { 6422 {
6454 scoped_ptr<SimpleSwapPromiseMonitor> swap_promise_monitor( 6423 scoped_ptr<SimpleSwapPromiseMonitor> swap_promise_monitor(
6455 new SimpleSwapPromiseMonitor(NULL, 6424 new SimpleSwapPromiseMonitor(NULL,
6456 host_impl_.get(), 6425 host_impl_.get(),
6457 &set_needs_commit_count, 6426 &set_needs_commit_count,
6458 &set_needs_redraw_count, 6427 &set_needs_redraw_count));
6459 &forward_to_main_count));
6460 // Empty damage rect won't signal the monitor. 6428 // Empty damage rect won't signal the monitor.
6461 host_impl_->SetNeedsRedrawRect(gfx::Rect()); 6429 host_impl_->SetNeedsRedrawRect(gfx::Rect());
6462 EXPECT_EQ(0, set_needs_commit_count); 6430 EXPECT_EQ(0, set_needs_commit_count);
6463 EXPECT_EQ(2, set_needs_redraw_count); 6431 EXPECT_EQ(2, set_needs_redraw_count);
6464 EXPECT_EQ(0, forward_to_main_count);
6465 }
6466
6467 {
6468 set_needs_commit_count = 0;
6469 set_needs_redraw_count = 0;
6470 forward_to_main_count = 0;
6471 scoped_ptr<SimpleSwapPromiseMonitor> swap_promise_monitor(
6472 new SimpleSwapPromiseMonitor(NULL,
6473 host_impl_.get(),
6474 &set_needs_commit_count,
6475 &set_needs_redraw_count,
6476 &forward_to_main_count));
6477 LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(100, 100));
6478
6479 // Scrolling normally should not trigger any forwarding.
6480 EXPECT_EQ(InputHandler::ScrollStarted,
6481 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Gesture));
6482 EXPECT_TRUE(host_impl_->ScrollBy(gfx::Point(), gfx::Vector2d(0, 10)));
6483 host_impl_->ScrollEnd();
6484
6485 EXPECT_EQ(0, set_needs_commit_count);
6486 EXPECT_EQ(1, set_needs_redraw_count);
6487 EXPECT_EQ(0, forward_to_main_count);
6488
6489 // Scrolling with a scroll handler should defer the swap to the main
6490 // thread.
6491 scroll_layer->SetHaveScrollEventHandlers(true);
6492 EXPECT_EQ(InputHandler::ScrollStarted,
6493 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Gesture));
6494 EXPECT_TRUE(host_impl_->ScrollBy(gfx::Point(), gfx::Vector2d(0, 10)));
6495 host_impl_->ScrollEnd();
6496
6497 EXPECT_EQ(0, set_needs_commit_count);
6498 EXPECT_EQ(2, set_needs_redraw_count);
6499 EXPECT_EQ(1, forward_to_main_count);
6500 } 6432 }
6501 } 6433 }
6502 6434
6503 class LayerTreeHostImplWithTopControlsTest : public LayerTreeHostImplTest { 6435 class LayerTreeHostImplWithTopControlsTest : public LayerTreeHostImplTest {
6504 public: 6436 public:
6505 virtual void SetUp() OVERRIDE { 6437 virtual void SetUp() OVERRIDE {
6506 LayerTreeSettings settings = DefaultSettings(); 6438 LayerTreeSettings settings = DefaultSettings();
6507 settings.calculate_top_controls_position = true; 6439 settings.calculate_top_controls_position = true;
6508 settings.top_controls_height = top_controls_height_; 6440 settings.top_controls_height = top_controls_height_;
6509 CreateHostImpl(settings, CreateOutputSurface()); 6441 CreateHostImpl(settings, CreateOutputSurface());
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
6827 layer_pairs.clear(); 6759 layer_pairs.clear();
6828 host_impl_->GetPictureLayerImplPairs(&layer_pairs); 6760 host_impl_->GetPictureLayerImplPairs(&layer_pairs);
6829 EXPECT_EQ(1u, layer_pairs.size()); 6761 EXPECT_EQ(1u, layer_pairs.size());
6830 6762
6831 EXPECT_EQ(active_layer.get(), layer_pairs[0].active); 6763 EXPECT_EQ(active_layer.get(), layer_pairs[0].active);
6832 EXPECT_EQ(pending_layer.get(), layer_pairs[0].pending); 6764 EXPECT_EQ(pending_layer.get(), layer_pairs[0].pending);
6833 } 6765 }
6834 6766
6835 } // namespace 6767 } // namespace
6836 } // namespace cc 6768 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698