OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
7 #include "base/shared_memory.h" | 7 #include "base/shared_memory.h" |
8 #include "base/timer.h" | 8 #include "base/timer.h" |
9 #include "content/browser/browser_thread_impl.h" | 9 #include "content/browser/browser_thread_impl.h" |
10 #include "content/browser/renderer_host/backing_store.h" | 10 #include "content/browser/renderer_host/backing_store.h" |
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
509 | 509 |
510 // RenderWidgetHostView override. | 510 // RenderWidgetHostView override. |
511 virtual gfx::Rect GetViewBounds() const OVERRIDE { | 511 virtual gfx::Rect GetViewBounds() const OVERRIDE { |
512 return bounds_; | 512 return bounds_; |
513 } | 513 } |
514 virtual void ProcessAckedTouchEvent(const WebTouchEvent& touch, | 514 virtual void ProcessAckedTouchEvent(const WebTouchEvent& touch, |
515 InputEventAckState ack_result) OVERRIDE { | 515 InputEventAckState ack_result) OVERRIDE { |
516 acked_event_ = touch; | 516 acked_event_ = touch; |
517 ++acked_event_count_; | 517 ++acked_event_count_; |
518 } | 518 } |
| 519 virtual gfx::Size GetPhysicalBackingSize() const OVERRIDE { |
| 520 if (use_custom_physical_backing_size_) |
| 521 return custom_physical_backing_size_; |
| 522 return TestRenderWidgetHostView::GetPhysicalBackingSize(); |
| 523 } |
| 524 |
| 525 void SetCustomPhysicalBackingSize(const gfx::Size& physical_backing_size) { |
| 526 use_custom_physical_backing_size_ = true; |
| 527 custom_physical_backing_size_ = physical_backing_size; |
| 528 } |
| 529 |
| 530 void ClearCustomPhysicalBackingSize() { |
| 531 use_custom_physical_backing_size_ = false; |
| 532 } |
519 | 533 |
520 protected: | 534 protected: |
521 WebTouchEvent acked_event_; | 535 WebTouchEvent acked_event_; |
522 int acked_event_count_; | 536 int acked_event_count_; |
523 gfx::Rect bounds_; | 537 gfx::Rect bounds_; |
| 538 bool use_custom_physical_backing_size_; |
| 539 gfx::Size custom_physical_backing_size_; |
524 | 540 |
525 DISALLOW_COPY_AND_ASSIGN(TestView); | 541 DISALLOW_COPY_AND_ASSIGN(TestView); |
526 }; | 542 }; |
527 | 543 |
528 // MockRenderWidgetHostDelegate -------------------------------------------- | 544 // MockRenderWidgetHostDelegate -------------------------------------------- |
529 | 545 |
530 class MockRenderWidgetHostDelegate : public RenderWidgetHostDelegate { | 546 class MockRenderWidgetHostDelegate : public RenderWidgetHostDelegate { |
531 public: | 547 public: |
532 MockRenderWidgetHostDelegate() | 548 MockRenderWidgetHostDelegate() |
533 : prehandle_keyboard_event_(false), | 549 : prehandle_keyboard_event_(false), |
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
856 | 872 |
857 TEST_F(RenderWidgetHostTest, Resize) { | 873 TEST_F(RenderWidgetHostTest, Resize) { |
858 // The initial bounds is the empty rect, so setting it to the same thing | 874 // The initial bounds is the empty rect, so setting it to the same thing |
859 // should do nothing. | 875 // should do nothing. |
860 view_->set_bounds(gfx::Rect()); | 876 view_->set_bounds(gfx::Rect()); |
861 host_->WasResized(); | 877 host_->WasResized(); |
862 EXPECT_FALSE(host_->resize_ack_pending_); | 878 EXPECT_FALSE(host_->resize_ack_pending_); |
863 EXPECT_EQ(gfx::Size(), host_->in_flight_size_); | 879 EXPECT_EQ(gfx::Size(), host_->in_flight_size_); |
864 EXPECT_FALSE(process_->sink().GetUniqueMessageMatching(ViewMsg_Resize::ID)); | 880 EXPECT_FALSE(process_->sink().GetUniqueMessageMatching(ViewMsg_Resize::ID)); |
865 | 881 |
866 // Setting the bounds to a "real" rect should send out the notification. | 882 // Setting the bounds to a "real" rect should send out the notification, |
| 883 // but should not expect ack for empty physical backing size. |
867 gfx::Rect original_size(0, 0, 100, 100); | 884 gfx::Rect original_size(0, 0, 100, 100); |
868 process_->sink().ClearMessages(); | 885 process_->sink().ClearMessages(); |
869 view_->set_bounds(original_size); | 886 view_->set_bounds(original_size); |
| 887 view_->SetCustomPhysicalBackingSize(gfx::Size()); |
| 888 host_->WasResized(); |
| 889 EXPECT_FALSE(host_->resize_ack_pending_); |
| 890 EXPECT_EQ(original_size.size(), host_->in_flight_size_); |
| 891 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(ViewMsg_Resize::ID)); |
| 892 |
| 893 // Setting the bounds to a "real" rect should send out the notification. |
| 894 process_->sink().ClearMessages(); |
| 895 view_->ClearCustomPhysicalBackingSize(); |
870 host_->WasResized(); | 896 host_->WasResized(); |
871 EXPECT_TRUE(host_->resize_ack_pending_); | 897 EXPECT_TRUE(host_->resize_ack_pending_); |
872 EXPECT_EQ(original_size.size(), host_->in_flight_size_); | 898 EXPECT_EQ(original_size.size(), host_->in_flight_size_); |
873 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(ViewMsg_Resize::ID)); | 899 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(ViewMsg_Resize::ID)); |
874 | 900 |
875 // Send out a update that's not a resize ack. This should not clean the | 901 // Send out a update that's not a resize ack. This should not clean the |
876 // resize ack pending flag. | 902 // resize ack pending flag. |
877 ViewHostMsg_UpdateRect_Params params; | 903 ViewHostMsg_UpdateRect_Params params; |
878 process_->InitUpdateRectParams(¶ms); | 904 process_->InitUpdateRectParams(¶ms); |
879 host_->OnUpdateRect(params); | 905 host_->OnUpdateRect(params); |
(...skipping 2930 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3810 EXPECT_EQ(OVERSCROLL_NONE, host_->overscroll_mode()); | 3836 EXPECT_EQ(OVERSCROLL_NONE, host_->overscroll_mode()); |
3811 | 3837 |
3812 // Since the overscroll mode has been reset, the next scroll update events | 3838 // Since the overscroll mode has been reset, the next scroll update events |
3813 // should reach the renderer. | 3839 // should reach the renderer. |
3814 SimulateGestureScrollUpdateEvent(-20, 0, 0); | 3840 SimulateGestureScrollUpdateEvent(-20, 0, 0); |
3815 EXPECT_EQ(1U, process_->sink().message_count()); | 3841 EXPECT_EQ(1U, process_->sink().message_count()); |
3816 EXPECT_EQ(OVERSCROLL_NONE, host_->overscroll_mode()); | 3842 EXPECT_EQ(OVERSCROLL_NONE, host_->overscroll_mode()); |
3817 } | 3843 } |
3818 | 3844 |
3819 } // namespace content | 3845 } // namespace content |
OLD | NEW |