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

Unified Diff: content/renderer/input/input_event_filter_unittest.cc

Issue 2166703003: Implement Main Thread RAF Aligned Input (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master_main_thread_queue
Patch Set: Clean prototype up Created 4 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/input/input_event_filter_unittest.cc
diff --git a/content/renderer/input/input_event_filter_unittest.cc b/content/renderer/input/input_event_filter_unittest.cc
index 880a361f2d074f517917da21f4765648e1468290..09a7cd23294e86089595e2b63e6ae57d90f3d93e 100644
--- a/content/renderer/input/input_event_filter_unittest.cc
+++ b/content/renderer/input/input_event_filter_unittest.cc
@@ -18,6 +18,7 @@
#include "content/common/input_messages.h"
#include "content/common/view_messages.h"
#include "content/renderer/input/input_event_filter.h"
+#include "content/renderer/input/input_handler_manager.h"
#include "ipc/ipc_listener.h"
#include "ipc/ipc_test_sink.h"
#include "ipc/message_filter.h"
@@ -34,15 +35,16 @@ namespace {
const int kTestRoutingID = 13;
-class InputEventRecorder {
+class InputEventRecorder : public content::InputHandlerManager {
public:
- InputEventRecorder()
- : filter_(NULL),
+ InputEventRecorder(InputEventFilter* filter)
+ : InputHandlerManager(nullptr, filter, nullptr, nullptr),
handle_events_(false),
send_to_widget_(false),
passive_(false) {}
- void set_filter(InputEventFilter* filter) { filter_ = filter; }
+ ~InputEventRecorder() override {}
+
void set_handle_events(bool value) { handle_events_ = value; }
void set_send_to_widget(bool value) { send_to_widget_ = value; }
void set_passive(bool value) { passive_ = value; }
@@ -60,7 +62,7 @@ class InputEventRecorder {
InputEventAckState HandleInputEvent(int routing_id,
const WebInputEvent* event,
- ui::LatencyInfo* latency_info) {
+ ui::LatencyInfo* latency_info) override {
DCHECK_EQ(kTestRoutingID, routing_id);
records_.push_back(Record(event));
if (handle_events_) {
@@ -84,7 +86,6 @@ class InputEventRecorder {
std::vector<char> event_data;
};
- InputEventFilter* filter_;
bool handle_events_;
bool send_to_widget_;
bool passive_;
@@ -145,11 +146,8 @@ class InputEventFilterTest : public testing::Test {
base::Bind(base::IgnoreResult(&IPCMessageRecorder::OnMessageReceived),
base::Unretained(&message_recorder_)),
base::ThreadTaskRunnerHandle::Get(), message_loop_.task_runner());
- filter_->SetBoundHandler(base::Bind(&InputEventRecorder::HandleInputEvent,
- base::Unretained(&event_recorder_)));
-
- event_recorder_.set_filter(filter_.get());
-
+ event_recorder_.reset(new InputEventRecorder(filter_.get()));
tdresser 2016/08/24 13:42:59 Sounds like folks are preferring event_recorder_ =
dtapuska 2016/08/24 17:10:06 done
+ filter_->SetInputHandlerManager(event_recorder_.get());
filter_->OnFilterAdded(&ipc_sink_);
}
@@ -162,10 +160,10 @@ class InputEventFilterTest : public testing::Test {
// Used to record IPCs forwarded by the filter to the main thread.
IPCMessageRecorder message_recorder_;
- // Used to record WebInputEvents delivered to the handler.
- InputEventRecorder event_recorder_;
-
scoped_refptr<InputEventFilter> filter_;
+
+ // Used to record WebInputEvents delivered to the handler.
+ std::unique_ptr<InputEventRecorder> event_recorder_;
};
TEST_F(InputEventFilterTest, Basic) {
@@ -177,14 +175,14 @@ TEST_F(InputEventFilterTest, Basic) {
AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents));
EXPECT_EQ(0U, ipc_sink_.message_count());
- EXPECT_EQ(0U, event_recorder_.record_count());
+ EXPECT_EQ(0U, event_recorder_->record_count());
EXPECT_EQ(0U, message_recorder_.message_count());
filter_->RegisterRoutingID(kTestRoutingID);
AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents));
ASSERT_EQ(arraysize(kEvents), ipc_sink_.message_count());
- ASSERT_EQ(arraysize(kEvents), event_recorder_.record_count());
+ ASSERT_EQ(arraysize(kEvents), event_recorder_->record_count());
EXPECT_EQ(0U, message_recorder_.message_count());
for (size_t i = 0; i < arraysize(kEvents); ++i) {
@@ -200,18 +198,18 @@ TEST_F(InputEventFilterTest, Basic) {
EXPECT_EQ(kEvents[i].type, event_type);
EXPECT_EQ(ack_result, INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS);
- const WebInputEvent* event = event_recorder_.record_at(i);
+ const WebInputEvent* event = event_recorder_->record_at(i);
ASSERT_TRUE(event);
EXPECT_EQ(kEvents[i].size, event->size);
EXPECT_TRUE(memcmp(&kEvents[i], event, event->size) == 0);
}
- event_recorder_.set_send_to_widget(true);
+ event_recorder_->set_send_to_widget(true);
AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents));
EXPECT_EQ(arraysize(kEvents), ipc_sink_.message_count());
- EXPECT_EQ(2 * arraysize(kEvents), event_recorder_.record_count());
+ EXPECT_EQ(2 * arraysize(kEvents), event_recorder_->record_count());
EXPECT_EQ(1u, message_recorder_.message_count());
{
@@ -229,14 +227,14 @@ TEST_F(InputEventFilterTest, Basic) {
// Now reset everything, and test that DidHandleInputEvent is called.
ipc_sink_.ClearMessages();
- event_recorder_.Clear();
+ event_recorder_->Clear();
message_recorder_.Clear();
- event_recorder_.set_handle_events(true);
+ event_recorder_->set_handle_events(true);
AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents));
EXPECT_EQ(arraysize(kEvents), ipc_sink_.message_count());
- EXPECT_EQ(arraysize(kEvents), event_recorder_.record_count());
+ EXPECT_EQ(arraysize(kEvents), event_recorder_->record_count());
EXPECT_EQ(0U, message_recorder_.message_count());
for (size_t i = 0; i < arraysize(kEvents); ++i) {
@@ -257,8 +255,7 @@ TEST_F(InputEventFilterTest, Basic) {
TEST_F(InputEventFilterTest, PreserveRelativeOrder) {
filter_->RegisterRoutingID(kTestRoutingID);
- event_recorder_.set_send_to_widget(true);
-
+ event_recorder_->set_send_to_widget(true);
WebMouseEvent mouse_down =
SyntheticWebMouseEventBuilder::Build(WebMouseEvent::MouseDown);
@@ -320,11 +317,11 @@ TEST_F(InputEventFilterTest, NonBlockingWheel) {
};
filter_->RegisterRoutingID(kTestRoutingID);
- event_recorder_.set_send_to_widget(true);
- event_recorder_.set_passive(true);
+ event_recorder_->set_send_to_widget(true);
+ event_recorder_->set_passive(true);
AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents));
- EXPECT_EQ(arraysize(kEvents), event_recorder_.record_count());
+ EXPECT_EQ(arraysize(kEvents), event_recorder_->record_count());
ASSERT_EQ(4u, ipc_sink_.message_count());
// All events are handled, one is coalesced.
@@ -381,11 +378,11 @@ TEST_F(InputEventFilterTest, NonBlockingTouch) {
kEvents[3].MovePoint(0, 35, 35);
filter_->RegisterRoutingID(kTestRoutingID);
- event_recorder_.set_send_to_widget(true);
- event_recorder_.set_passive(true);
+ event_recorder_->set_send_to_widget(true);
+ event_recorder_->set_passive(true);
AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents));
- EXPECT_EQ(arraysize(kEvents), event_recorder_.record_count());
+ EXPECT_EQ(arraysize(kEvents), event_recorder_->record_count());
ASSERT_EQ(4u, ipc_sink_.message_count());
// All events are handled and one set was coalesced.
@@ -438,16 +435,16 @@ TEST_F(InputEventFilterTest, IntermingledNonBlockingTouch) {
kBlockingEvents[0].PressPoint(10, 10);
filter_->RegisterRoutingID(kTestRoutingID);
- event_recorder_.set_send_to_widget(true);
- event_recorder_.set_passive(true);
+ event_recorder_->set_send_to_widget(true);
+ event_recorder_->set_passive(true);
AddEventsToFilter(filter_.get(), kEvents, arraysize(kEvents));
- EXPECT_EQ(arraysize(kEvents), event_recorder_.record_count());
+ EXPECT_EQ(arraysize(kEvents), event_recorder_->record_count());
- event_recorder_.set_passive(false);
+ event_recorder_->set_passive(false);
AddEventsToFilter(filter_.get(), kBlockingEvents, arraysize(kBlockingEvents));
EXPECT_EQ(arraysize(kEvents) + arraysize(kBlockingEvents),
- event_recorder_.record_count());
- ASSERT_EQ(3u, event_recorder_.record_count());
+ event_recorder_->record_count());
+ ASSERT_EQ(3u, event_recorder_->record_count());
EXPECT_EQ(3u, message_recorder_.message_count());
{

Powered by Google App Engine
This is Rietveld 408576698