summaryrefslogtreecommitdiffstats
path: root/content/browser
diff options
context:
space:
mode:
authoreugenis@chromium.org <eugenis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-02 10:51:04 +0000
committereugenis@chromium.org <eugenis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-02 10:51:04 +0000
commit88a6f537e7b56479f2e758cea80029468011daec (patch)
treec81e6c466f4f9da6f32907e22846a3950761b9cc /content/browser
parent29286df7fcaba3f94c63c1ac9dd6ff5896623871 (diff)
downloadchromium_src-88a6f537e7b56479f2e758cea80029468011daec.zip
chromium_src-88a6f537e7b56479f2e758cea80029468011daec.tar.gz
chromium_src-88a6f537e7b56479f2e758cea80029468011daec.tar.bz2
Revert 215246 "Ensure RenderWidgetHostImpl calls InputRouter int..."
Memory leaks on Valgrind and Heapcheck bots. > Ensure RenderWidgetHostImpl calls InputRouter interface correctly. > > This patch adds RenderWidgetHostTest.InputRouter* unittests to ensure RenderWidgetHostImpl routes its input related messages to InputRouter correctly. > > BUG=245499 > > Review URL: https://chromiumcodereview.appspot.com/21014002 TBR=kouhei@chromium.org Review URL: https://codereview.chromium.org/21798002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215264 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser')
-rw-r--r--content/browser/renderer_host/render_widget_host_unittest.cc295
1 files changed, 0 insertions, 295 deletions
diff --git a/content/browser/renderer_host/render_widget_host_unittest.cc b/content/browser/renderer_host/render_widget_host_unittest.cc
index 62553c8..0d05270 100644
--- a/content/browser/renderer_host/render_widget_host_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_unittest.cc
@@ -104,115 +104,6 @@ class TestOverscrollDelegate : public OverscrollControllerDelegate {
DISALLOW_COPY_AND_ASSIGN(TestOverscrollDelegate);
};
-// MockKeyboardListener --------------------------------------------------------
-class MockKeyboardListener : public KeyboardListener {
- public:
- MockKeyboardListener()
- : handle_key_press_event_(false) {
- }
- virtual ~MockKeyboardListener() {}
-
- // KeyboardListener:
- virtual bool HandleKeyPressEvent(
- const NativeWebKeyboardEvent& event) OVERRIDE {
- return handle_key_press_event_;
- }
-
- void set_handle_key_press_event(bool handle) {
- handle_key_press_event_ = handle;
- }
-
- private:
- bool handle_key_press_event_;
-
- DISALLOW_COPY_AND_ASSIGN(MockKeyboardListener);
-};
-
-// MockInputRouter -------------------------------------------------------------
-
-class MockInputRouter : public InputRouter {
- public:
- explicit MockInputRouter(InputRouterClient* client)
- : send_event_called_(false),
- sent_mouse_event_(false),
- sent_wheel_event_(false),
- sent_keyboard_event_(false),
- sent_gesture_event_(false),
- send_touch_event_not_cancelled_(false),
- message_received_(false),
- client_(client) {
- }
- virtual ~MockInputRouter() {}
-
- // InputRouter
- virtual bool SendInput(IPC::Message* message) OVERRIDE {
- send_event_called_ = true;
- return true;
- }
- virtual void SendMouseEvent(
- const MouseEventWithLatencyInfo& mouse_event) OVERRIDE {
- if (client_->OnSendMouseEvent(mouse_event))
- sent_mouse_event_ = true;
- }
- virtual void SendWheelEvent(
- const MouseWheelEventWithLatencyInfo& wheel_event) OVERRIDE {
- if (client_->OnSendWheelEvent(wheel_event))
- sent_wheel_event_ = true;
- }
- virtual void SendKeyboardEvent(
- const NativeWebKeyboardEvent& key_event,
- const ui::LatencyInfo& latency_info) OVERRIDE {
- bool is_shortcut = false;
- if (client_->OnSendKeyboardEvent(key_event, latency_info, &is_shortcut))
- sent_keyboard_event_ = true;
- }
- virtual void SendGestureEvent(
- const GestureEventWithLatencyInfo& gesture_event) OVERRIDE {
- if (client_->OnSendGestureEvent(gesture_event))
- sent_gesture_event_ = true;
- }
- virtual void SendTouchEvent(
- const TouchEventWithLatencyInfo& touch_event) OVERRIDE {
- if (client_->OnSendTouchEvent(touch_event))
- send_touch_event_not_cancelled_ = true;
- }
- virtual void SendMouseEventImmediately(
- const MouseEventWithLatencyInfo& mouse_event) OVERRIDE {}
- virtual void SendTouchEventImmediately(
- const TouchEventWithLatencyInfo& touch_event) OVERRIDE {}
- virtual void SendGestureEventImmediately(
- const GestureEventWithLatencyInfo& gesture_event) OVERRIDE {}
- virtual const NativeWebKeyboardEvent* GetLastKeyboardEvent() const OVERRIDE {
- NOTREACHED();
- return NULL;
- }
- virtual bool ShouldForwardTouchEvent() const OVERRIDE { return true; }
- virtual bool ShouldForwardGestureEvent(
- const GestureEventWithLatencyInfo& gesture_event) const OVERRIDE {
- return true;
- }
- virtual bool HasQueuedGestureEvents() const OVERRIDE { return true; }
-
- // IPC::Listener
- virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE {
- message_received_ = true;
- return false;
- }
-
- bool send_event_called_;
- bool sent_mouse_event_;
- bool sent_wheel_event_;
- bool sent_keyboard_event_;
- bool sent_gesture_event_;
- bool send_touch_event_not_cancelled_;
- bool message_received_;
-
- private:
- InputRouterClient* client_;
-
- DISALLOW_COPY_AND_ASSIGN(MockInputRouter);
-};
-
// MockRenderWidgetHost ----------------------------------------------------
class MockRenderWidgetHost : public RenderWidgetHostImpl {
@@ -335,15 +226,6 @@ class MockRenderWidgetHost : public RenderWidgetHostImpl {
return overscroll_delegate_.get();
}
- void SetupForInputRouterTest() {
- mock_input_router_ = new MockInputRouter(this);
- input_router_.reset(mock_input_router_);
- }
-
- MockInputRouter* mock_input_router() {
- return mock_input_router_;
- }
-
protected:
virtual void NotifyRendererUnresponsive() OVERRIDE {
unresponsive_timer_fired_ = true;
@@ -360,12 +242,7 @@ class MockRenderWidgetHost : public RenderWidgetHostImpl {
private:
bool unresponsive_timer_fired_;
- // |immediate_input_router_| and |mock_input_router_| are owned by
- // RenderWidgetHostImpl |input_router_|. Below are provided for convenience so
- // that we don't have to reinterpret_cast it all the time.
ImmediateInputRouter* immediate_input_router_;
- MockInputRouter* mock_input_router_;
-
scoped_ptr<TestOverscrollDelegate> overscroll_delegate_;
DISALLOW_COPY_AND_ASSIGN(MockRenderWidgetHost);
@@ -460,7 +337,6 @@ class TestView : public TestRenderWidgetHostView {
explicit TestView(RenderWidgetHostImpl* rwh)
: TestRenderWidgetHostView(rwh),
acked_event_count_(0),
- gesture_event_type_(-1),
use_fake_physical_backing_size_(false) {
}
@@ -479,7 +355,6 @@ class TestView : public TestRenderWidgetHostView {
const WebMouseWheelEvent& unhandled_wheel_event() const {
return unhandled_wheel_event_;
}
- int gesture_event_type() const { return gesture_event_type_; }
void SetMockPhysicalBackingSize(const gfx::Size& mock_physical_backing_size) {
use_fake_physical_backing_size_ = true;
@@ -501,9 +376,6 @@ class TestView : public TestRenderWidgetHostView {
virtual void UnhandledWheelEvent(const WebMouseWheelEvent& event) OVERRIDE {
unhandled_wheel_event_ = event;
}
- virtual void GestureEventAck(int gesture_event_type) OVERRIDE {
- gesture_event_type_ = gesture_event_type;
- }
virtual gfx::Size GetPhysicalBackingSize() const OVERRIDE {
if (use_fake_physical_backing_size_)
return mock_physical_backing_size_;
@@ -514,7 +386,6 @@ class TestView : public TestRenderWidgetHostView {
WebMouseWheelEvent unhandled_wheel_event_;
WebTouchEvent acked_event_;
int acked_event_count_;
- int gesture_event_type_;
gfx::Rect bounds_;
bool use_fake_physical_backing_size_;
gfx::Size mock_physical_backing_size_;
@@ -1218,35 +1089,6 @@ TEST_F(RenderWidgetHostTest, PreHandleRawKeyDownEvent) {
EXPECT_EQ(WebInputEvent::KeyUp, delegate_->unhandled_keyboard_event_type());
}
-TEST_F(RenderWidgetHostTest, UnhandledWheelEvent) {
- SimulateWheelEvent(-5, 0, 0, true);
-
- // Make sure we sent the input event to the renderer.
- EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(
- InputMsg_HandleInputEvent::ID));
- process_->sink().ClearMessages();
-
- // Send the simulated response from the renderer back.
- SendInputEventACK(WebInputEvent::MouseWheel,
- INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
- EXPECT_EQ(-5, view_->unhandled_wheel_event().deltaX);
-}
-
-TEST_F(RenderWidgetHostTest, UnhandledGestureEvent) {
- SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
- WebGestureEvent::Touchscreen);
-
- // Make sure we sent the input event to the renderer.
- EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(
- InputMsg_HandleInputEvent::ID));
- process_->sink().ClearMessages();
-
- // Send the simulated response from the renderer back.
- SendInputEventACK(WebInputEvent::GestureScrollBegin,
- INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
- EXPECT_EQ(WebInputEvent::GestureScrollBegin, view_->gesture_event_type());
-}
-
// Test that the hang monitor timer expires properly if a new timer is started
// while one is in progress (see crbug.com/11007).
TEST_F(RenderWidgetHostTest, DontPostponeHangMonitorTimeout) {
@@ -2426,141 +2268,4 @@ TEST_F(RenderWidgetHostTest, OverscrollResetsOnBlur) {
process_->sink().ClearMessages();
}
-#define TEST_InputRouterRoutes_NOARGS(INPUTMSG) \
- TEST_F(RenderWidgetHostTest, InputRouterRoutes##INPUTMSG) { \
- host_->SetupForInputRouterTest(); \
- host_->INPUTMSG(); \
- EXPECT_TRUE(host_->mock_input_router()->send_event_called_); \
- }
-
-TEST_InputRouterRoutes_NOARGS(Undo);
-TEST_InputRouterRoutes_NOARGS(Redo);
-TEST_InputRouterRoutes_NOARGS(Cut);
-TEST_InputRouterRoutes_NOARGS(Copy);
-#if defined(OS_MACOSX)
-TEST_InputRouterRoutes_NOARGS(CopyToFindPboard);
-#endif
-TEST_InputRouterRoutes_NOARGS(Paste);
-TEST_InputRouterRoutes_NOARGS(PasteAndMatchStyle);
-TEST_InputRouterRoutes_NOARGS(Delete);
-TEST_InputRouterRoutes_NOARGS(SelectAll);
-TEST_InputRouterRoutes_NOARGS(Unselect);
-TEST_InputRouterRoutes_NOARGS(Focus);
-TEST_InputRouterRoutes_NOARGS(Blur);
-TEST_InputRouterRoutes_NOARGS(LostCapture);
-
-#undef TEST_InputRouterRoutes_NOARGS
-
-TEST_F(RenderWidgetHostTest, InputRouterRoutesReplace) {
- host_->SetupForInputRouterTest();
- host_->Replace(EmptyString16());
- EXPECT_TRUE(host_->mock_input_router()->send_event_called_);
-}
-
-TEST_F(RenderWidgetHostTest, InputRouterRoutesReplaceMisspelling) {
- host_->SetupForInputRouterTest();
- host_->ReplaceMisspelling(EmptyString16());
- EXPECT_TRUE(host_->mock_input_router()->send_event_called_);
-}
-
-TEST_F(RenderWidgetHostTest, IgnoreInputEvent) {
- host_->SetupForInputRouterTest();
-
- host_->SetIgnoreInputEvents(true);
-
- SimulateKeyboardEvent(WebInputEvent::RawKeyDown);
- EXPECT_FALSE(host_->mock_input_router()->sent_keyboard_event_);
-
- SimulateMouseEvent(WebInputEvent::MouseMove);
- EXPECT_FALSE(host_->mock_input_router()->sent_mouse_event_);
-
- SimulateWheelEvent(0, 100, 0, true);
- EXPECT_FALSE(host_->mock_input_router()->sent_wheel_event_);
-
- SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
- WebGestureEvent::Touchscreen);
- EXPECT_FALSE(host_->mock_input_router()->sent_gesture_event_);
-
- PressTouchPoint(100, 100);
- SendTouchEvent();
- EXPECT_FALSE(host_->mock_input_router()->send_touch_event_not_cancelled_);
-}
-
-TEST_F(RenderWidgetHostTest, KeyboardListenerIgnoresEvent) {
- host_->SetupForInputRouterTest();
-
- scoped_ptr<MockKeyboardListener> keyboard_listener_(new MockKeyboardListener);
- host_->AddKeyboardListener(keyboard_listener_.get());
-
- keyboard_listener_->set_handle_key_press_event(false);
- SimulateKeyboardEvent(WebInputEvent::RawKeyDown);
-
- EXPECT_TRUE(host_->mock_input_router()->sent_keyboard_event_);
-
- host_->RemoveKeyboardListener(keyboard_listener_.get());
-}
-
-TEST_F(RenderWidgetHostTest, KeyboardListenerSuppressFollowingEvents) {
- host_->SetupForInputRouterTest();
-
- scoped_ptr<MockKeyboardListener> keyboard_listener_(new MockKeyboardListener);
- host_->AddKeyboardListener(keyboard_listener_.get());
-
- // KeyboardListener handles the first event
- keyboard_listener_->set_handle_key_press_event(true);
- SimulateKeyboardEvent(WebInputEvent::RawKeyDown);
-
- EXPECT_FALSE(host_->mock_input_router()->sent_keyboard_event_);
-
- // Following Char events should be suppressed
- keyboard_listener_->set_handle_key_press_event(false);
- SimulateKeyboardEvent(WebInputEvent::Char);
- EXPECT_FALSE(host_->mock_input_router()->sent_keyboard_event_);
- SimulateKeyboardEvent(WebInputEvent::Char);
- EXPECT_FALSE(host_->mock_input_router()->sent_keyboard_event_);
-
- // Sending RawKeyDown event should stop suppression
- SimulateKeyboardEvent(WebInputEvent::RawKeyDown);
- EXPECT_TRUE(host_->mock_input_router()->sent_keyboard_event_);
-
- host_->mock_input_router()->sent_keyboard_event_ = false;
- SimulateKeyboardEvent(WebInputEvent::Char);
- EXPECT_TRUE(host_->mock_input_router()->sent_keyboard_event_);
-
- host_->RemoveKeyboardListener(keyboard_listener_.get());
-}
-
-TEST_F(RenderWidgetHostTest, InputRouterReceivesHandleInputEvent_ACK) {
- host_->SetupForInputRouterTest();
-
- SendInputEventACK(WebInputEvent::RawKeyDown,
- INPUT_EVENT_ACK_STATE_CONSUMED);
-
- EXPECT_TRUE(host_->mock_input_router()->message_received_);
-}
-
-TEST_F(RenderWidgetHostTest, InputRouterReceivesMoveCaret_ACK) {
- host_->SetupForInputRouterTest();
-
- host_->OnMessageReceived(ViewHostMsg_MoveCaret_ACK(0));
-
- EXPECT_TRUE(host_->mock_input_router()->message_received_);
-}
-
-TEST_F(RenderWidgetHostTest, InputRouterReceivesSelectRange_ACK) {
- host_->SetupForInputRouterTest();
-
- host_->OnMessageReceived(ViewHostMsg_SelectRange_ACK(0));
-
- EXPECT_TRUE(host_->mock_input_router()->message_received_);
-}
-
-TEST_F(RenderWidgetHostTest, InputRouterReceivesHasTouchEventHandlers) {
- host_->SetupForInputRouterTest();
-
- host_->OnMessageReceived(ViewHostMsg_HasTouchEventHandlers(0, true));
-
- EXPECT_TRUE(host_->mock_input_router()->message_received_);
-}
-
} // namespace content