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

Unified Diff: content/browser/renderer_host/render_widget_host_unittest.cc

Issue 2641313002: Bypass key event suppression for PrintScreen (Closed)
Patch Set: Created 3 years, 11 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/browser/renderer_host/render_widget_host_unittest.cc
diff --git a/content/browser/renderer_host/render_widget_host_unittest.cc b/content/browser/renderer_host/render_widget_host_unittest.cc
index e0de9d3e66d50593cc09c13119039e2a700f3365..0c134ef3d1e407d6774f4960608c0dc289d08872 100644
--- a/content/browser/renderer_host/render_widget_host_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_unittest.cc
@@ -34,6 +34,7 @@
#include "ui/display/screen.h"
#include "ui/events/base_event_utils.h"
#include "ui/events/blink/web_input_event_traits.h"
+#include "ui/events/keycodes/dom/dom_code.h"
#include "ui/events/keycodes/keyboard_codes.h"
#include "ui/gfx/canvas.h"
@@ -986,6 +987,39 @@ TEST_F(RenderWidgetHostTest, PreHandleRawKeyDownEvent) {
delegate_->unhandled_keyboard_event_type());
}
+TEST_F(RenderWidgetHostTest, SuppressEventsUntilKeyDown) {
+ // Clear any messages unrelated to this test.
+ process_->sink().ClearMessages();
+ EXPECT_EQ(0U, process_->sink().message_count());
+
+ // Enable key event suppression.
+ host_->SuppressEventsUntilKeyDown();
+
+ // Simulate a KeyUp event.
+ SimulateKeyboardEvent(WebInputEvent::KeyUp);
+ EXPECT_EQ(0U, process_->sink().message_count());
+
+ // Simulate a RawKeyDown event.
+ SimulateKeyboardEvent(WebInputEvent::RawKeyDown);
+ EXPECT_EQ(1U, process_->sink().message_count());
+ EXPECT_EQ(InputMsg_HandleInputEvent::ID,
+ process_->sink().GetMessageAt(0)->type());
+ process_->sink().ClearMessages();
+
+ // Enable key event suppression again.
+ host_->SuppressEventsUntilKeyDown();
+ process_->sink().ClearMessages();
+
+ // Simulate a PrintScreen KeyUp event.
+ NativeWebKeyboardEvent print_screen_event(WebInputEvent::KeyUp, 0,
+ GetNextSimulatedEventTimeSeconds());
+ print_screen_event.domCode = static_cast<int>(ui::DomCode::PRINT_SCREEN);
+ host_->ForwardKeyboardEvent(print_screen_event);
+ EXPECT_EQ(1U, process_->sink().message_count());
+ EXPECT_EQ(InputMsg_HandleInputEvent::ID,
+ process_->sink().GetMessageAt(0)->type());
+}
+
TEST_F(RenderWidgetHostTest, RawKeyDownShortcutEvent) {
// Simulate the situation that the browser marks the key down as a keyboard
// shortcut, but doesn't consume it in the pre-handle phase.

Powered by Google App Engine
This is Rietveld 408576698