#include "base/timer/timer.h"
#include "content/browser/browser_thread_impl.h"
#include "content/browser/renderer_host/backing_store.h"
-#include "content/browser/renderer_host/input/gesture_event_filter.h"
+#include "content/browser/renderer_host/input/gesture_event_queue.h"
#include "content/browser/renderer_host/input/input_router_impl.h"
#include "content/browser/renderer_host/input/tap_suppression_controller.h"
#include "content/browser/renderer_host/input/tap_suppression_controller_client.h"
#include "content/common/input_messages.h"
#include "content/common/view_messages.h"
#include "content/port/browser/render_widget_host_view_port.h"
-#include "content/public/browser/notification_details.h"
-#include "content/public/browser/notification_observer.h"
-#include "content/public/browser/notification_registrar.h"
-#include "content/public/browser/notification_source.h"
-#include "content/public/browser/notification_types.h"
#include "content/public/test/mock_render_process_host.h"
#include "content/public/test/test_browser_context.h"
#include "content/test/test_render_view_host.h"
}
// Allow poking at a few private members.
- using RenderWidgetHostImpl::OnPaintAtSizeAck;
using RenderWidgetHostImpl::OnUpdateRect;
using RenderWidgetHostImpl::RendererExited;
using RenderWidgetHostImpl::last_requested_size_;
}
unsigned GestureEventLastQueueEventSize() const {
- return gesture_event_filter()->coalesced_gesture_events_.size();
+ return gesture_event_queue()->coalesced_gesture_events_.size();
}
WebGestureEvent GestureEventSecondFromLastQueueEvent() const {
- return gesture_event_filter()->coalesced_gesture_events_.at(
+ return gesture_event_queue()->coalesced_gesture_events_.at(
GestureEventLastQueueEventSize() - 2).event;
}
WebGestureEvent GestureEventLastQueueEvent() const {
- return gesture_event_filter()->coalesced_gesture_events_.back().event;
+ return gesture_event_queue()->coalesced_gesture_events_.back().event;
}
unsigned GestureEventDebouncingQueueSize() const {
- return gesture_event_filter()->debouncing_deferral_queue_.size();
+ return gesture_event_queue()->debouncing_deferral_queue_.size();
}
WebGestureEvent GestureEventQueueEventAt(int i) const {
- return gesture_event_filter()->coalesced_gesture_events_.at(i).event;
+ return gesture_event_queue()->coalesced_gesture_events_.at(i).event;
}
bool ScrollingInProgress() const {
- return gesture_event_filter()->scrolling_in_progress_;
+ return gesture_event_queue()->scrolling_in_progress_;
}
bool FlingInProgress() const {
- return gesture_event_filter()->fling_in_progress_;
+ return gesture_event_queue()->fling_in_progress_;
}
bool WillIgnoreNextACK() const {
- return gesture_event_filter()->ignore_next_ack_;
+ return gesture_event_queue()->ignore_next_ack_;
}
void SetupForOverscrollControllerTest() {
}
void DisableGestureDebounce() {
- gesture_event_filter()->set_debounce_enabled_for_testing(false);
+ gesture_event_queue()->set_debounce_enabled_for_testing(false);
}
void set_debounce_interval_time_ms(int delay_ms) {
- gesture_event_filter()->
+ gesture_event_queue()->
set_debounce_interval_time_ms_for_testing(delay_ms);
}
return input_router_impl_->touch_event_queue_.get();
}
- const GestureEventFilter* gesture_event_filter() const {
- return input_router_impl_->gesture_event_filter_.get();
+ const GestureEventQueue* gesture_event_queue() const {
+ return input_router_impl_->gesture_event_queue_.get();
}
- GestureEventFilter* gesture_event_filter() {
- return input_router_impl_->gesture_event_filter_.get();
+ GestureEventQueue* gesture_event_queue() {
+ return input_router_impl_->gesture_event_queue_.get();
}
private:
virtual void UnhandledWheelEvent(const WebMouseWheelEvent& event) OVERRIDE {
unhandled_wheel_event_ = event;
}
- virtual void GestureEventAck(int gesture_event_type,
+ virtual void GestureEventAck(const WebGestureEvent& event,
InputEventAckState ack_result) OVERRIDE {
- gesture_event_type_ = gesture_event_type;
+ gesture_event_type_ = event.type;
ack_result_ = ack_result;
}
virtual gfx::Size GetPhysicalBackingSize() const OVERRIDE {
WebInputEvent::Type unhandled_keyboard_event_type_;
};
-// MockPaintingObserver --------------------------------------------------------
-
-class MockPaintingObserver : public NotificationObserver {
- public:
- void WidgetDidReceivePaintAtSizeAck(RenderWidgetHostImpl* host,
- int tag,
- const gfx::Size& size) {
- host_ = reinterpret_cast<MockRenderWidgetHost*>(host);
- tag_ = tag;
- size_ = size;
- }
-
- virtual void Observe(int type,
- const NotificationSource& source,
- const NotificationDetails& details) OVERRIDE {
- if (type == NOTIFICATION_RENDER_WIDGET_HOST_DID_RECEIVE_PAINT_AT_SIZE_ACK) {
- std::pair<int, gfx::Size>* size_ack_details =
- Details<std::pair<int, gfx::Size> >(details).ptr();
- WidgetDidReceivePaintAtSizeAck(
- RenderWidgetHostImpl::From(Source<RenderWidgetHost>(source).ptr()),
- size_ack_details->first,
- size_ack_details->second);
- }
- }
-
- MockRenderWidgetHost* host() const { return host_; }
- int tag() const { return tag_; }
- gfx::Size size() const { return size_; }
-
- private:
- MockRenderWidgetHost* host_;
- int tag_;
- gfx::Size size_;
-};
-
// RenderWidgetHostTest --------------------------------------------------------
class RenderWidgetHostTest : public testing::Test {
EXPECT_TRUE(needs_repaint.a);
}
-TEST_F(RenderWidgetHostTest, PaintAtSize) {
- const int kPaintAtSizeTag = 42;
- host_->PaintAtSize(TransportDIB::GetFakeHandleForTest(), kPaintAtSizeTag,
- gfx::Size(40, 60), gfx::Size(20, 30));
- EXPECT_TRUE(
- process_->sink().GetUniqueMessageMatching(ViewMsg_PaintAtSize::ID));
-
- NotificationRegistrar registrar;
- MockPaintingObserver observer;
- registrar.Add(
- &observer,
- NOTIFICATION_RENDER_WIDGET_HOST_DID_RECEIVE_PAINT_AT_SIZE_ACK,
- Source<RenderWidgetHost>(host_.get()));
-
- host_->OnPaintAtSizeAck(kPaintAtSizeTag, gfx::Size(20, 30));
- EXPECT_EQ(host_.get(), observer.host());
- EXPECT_EQ(kPaintAtSizeTag, observer.tag());
- EXPECT_EQ(20, observer.size().width());
- EXPECT_EQ(30, observer.size().height());
-}
-
TEST_F(RenderWidgetHostTest, IgnoreKeyEventsHandledByRenderer) {
// Simulate a keyboard event.
SimulateKeyboardEvent(WebInputEvent::RawKeyDown);