Distinguish between keystroke and character events.

As described in its class comment, a ui::KeyEvent can be either of two
distinct kinds. When constructing a ui::KeyEvent from a native event,
the distinction is made by a new IsCharFromNative() call, in the same
way that other ui::Event properties are determined, instead of having the
caller inspect the native event itself. Removing the redundant |is_char|
parameter from constructors also prevent accidental synthetic `mixed'
events that consuming code does not handle.

Incidentally, while KeyEvent constructor calls are being touched, use
EF_NONE instead of 0 to make that argument's purpose clear.

BUG=380349
TEST=unit_tests,ash_unittests,events_unittests,ui_unittests,interactive_ui_tests

Review URL: https://codereview.chromium.org/404203003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285605 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/chromeos/events/event_rewriter_unittest.cc b/chrome/browser/chromeos/events/event_rewriter_unittest.cc
index cdd5b76..4df68a10 100644
--- a/chrome/browser/chromeos/events/event_rewriter_unittest.cc
+++ b/chrome/browser/chromeos/events/event_rewriter_unittest.cc
@@ -64,7 +64,7 @@
                                       ui::KeyboardCode ui_keycode,
                                       int ui_flags,
                                       ui::EventType ui_type) {
-  const ui::KeyEvent event(ui_type, ui_keycode, ui_flags, false);
+  const ui::KeyEvent event(ui_type, ui_keycode, ui_flags);
   scoped_ptr<ui::Event> new_event;
   rewriter->RewriteEvent(event, &new_event);
   if (new_event)
@@ -99,7 +99,7 @@
                          chromeos::EventRewriter* rewriter,
                          const KeyTestCase& test,
                          XEvent* xevent) {
-  ui::KeyEvent xkey_event(xevent, false);
+  ui::KeyEvent xkey_event(xevent);
   if (test.test & KeyTestCase::NUMPAD)
     xkey_event.set_flags(xkey_event.flags() | ui::EF_NUMPAD_KEY);
   // Verify that the X11-based key event is as expected.
@@ -117,7 +117,7 @@
     // Build a new ui::KeyEvent from the rewritten native component,
     // and check that it also matches the rewritten event.
     EXPECT_TRUE(rewritten_key_event.native_event());
-    ui::KeyEvent from_native_event(rewritten_key_event.native_event(), false);
+    ui::KeyEvent from_native_event(rewritten_key_event.native_event());
     EXPECT_EQ(expected, GetKeyEventAsString(from_native_event));
   }
 }
@@ -194,7 +194,7 @@
   xev.InitKeyEvent(test.type, test.input.key_code, test.input.flags);
   XEvent* xevent = xev;
   if (xevent->xkey.keycode) {
-    ui::KeyEvent xkey_event(xevent, false);
+    ui::KeyEvent xkey_event(xevent);
     // Rewrite the event and check the result.
     scoped_ptr<ui::Event> new_event;
     rewriter->RewriteEvent(xkey_event, &new_event);
@@ -1713,7 +1713,7 @@
   // Send left control press.
   {
     ui::KeyEvent keyevent(
-        ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, ui::EF_FINAL, false);
+        ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, ui::EF_FINAL);
     scoped_ptr<ui::Event> new_event;
     // Control should NOT be remapped to Alt if EF_FINAL is set.
     EXPECT_EQ(ui::EVENT_REWRITE_CONTINUE,
@@ -1728,7 +1728,7 @@
     XEvent* xevent = xev;
     xevent->xkey.keycode = XKeysymToKeycode(gfx::GetXDisplay(), XK_Control_L);
     xevent->xkey.send_event = True;  // XSendEvent() always does this.
-    ui::KeyEvent keyevent(xev, false /* is_char */);
+    ui::KeyEvent keyevent(xev);
     scoped_ptr<ui::Event> new_event;
     // Control should NOT be remapped to Alt if send_event
     // flag in the event is True.
@@ -1832,7 +1832,7 @@
   }
 
   void SendKeyEvent(ui::EventType type, ui::KeyboardCode key_code) {
-    ui::KeyEvent press(type, key_code, ui::EF_NONE, false);
+    ui::KeyEvent press(type, key_code, ui::EF_NONE);
     ui::EventDispatchDetails details = Send(&press);
     CHECK(!details.dispatcher_destroyed);
   }
@@ -1891,7 +1891,7 @@
   ScopedVector<ui::Event> events;
 
   // Create a simulated keypress of F1 targetted at the window.
-  ui::KeyEvent press_f1(ui::ET_KEY_PRESSED, ui::VKEY_F1, 0, false);
+  ui::KeyEvent press_f1(ui::ET_KEY_PRESSED, ui::VKEY_F1, ui::EF_NONE);
 
   // Simulate an apps v2 window that has requested top row keys as function
   // keys. The event should not be rewritten.
@@ -2197,7 +2197,7 @@
 
   // Test key press event is correctly modified and modifier release
   // event is sent.
-  ui::KeyEvent press(ui::ET_KEY_PRESSED, ui::VKEY_C, ui::EF_NONE, false);
+  ui::KeyEvent press(ui::ET_KEY_PRESSED, ui::VKEY_C, ui::EF_NONE);
   ui::EventDispatchDetails details = Send(&press);
   PopEvents(&events);
   EXPECT_EQ(2u, events.size());
@@ -2209,7 +2209,7 @@
             static_cast<ui::KeyEvent*>(events[1])->key_code());
 
   // Test key release event is not modified.
-  ui::KeyEvent release(ui::ET_KEY_RELEASED, ui::VKEY_C, ui::EF_NONE, false);
+  ui::KeyEvent release(ui::ET_KEY_RELEASED, ui::VKEY_C, ui::EF_NONE);
   details = Send(&release);
   ASSERT_FALSE(details.dispatcher_destroyed);
   PopEvents(&events);