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

Unified Diff: content/renderer/render_view_browsertest.cc

Issue 1026493002: Allow only a user gesture to trigger autofill popup (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Do not show autofill popup if desktop IME is composing. Created 5 years, 8 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/render_view_browsertest.cc
diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc
index f01c8928078b7b386cd6f85e4711f7817d488e00..458b9f22fe616b748265775316d5d42fc14c4a41 100644
--- a/content/renderer/render_view_browsertest.cc
+++ b/content/renderer/render_view_browsertest.cc
@@ -61,18 +61,6 @@
#include "ui/gfx/codec/jpeg_codec.h"
#include "ui/gfx/range/range.h"
-#if defined(USE_AURA) && defined(USE_X11)
-#include <X11/Xlib.h>
-#include "ui/events/event_constants.h"
-#include "ui/events/keycodes/keyboard_code_conversion.h"
-#include "ui/events/test/events_test_utils.h"
-#include "ui/events/test/events_test_utils_x11.h"
-#endif
-
-#if defined(USE_OZONE)
-#include "ui/events/keycodes/keyboard_code_conversion.h"
-#endif
-
using blink::WebFrame;
using blink::WebInputEvent;
using blink::WebLocalFrame;
@@ -88,30 +76,6 @@ namespace {
static const int kProxyRoutingId = 13;
-#if (defined(USE_AURA) && defined(USE_X11)) || defined(USE_OZONE)
-// Converts MockKeyboard::Modifiers to ui::EventFlags.
-int ConvertMockKeyboardModifier(MockKeyboard::Modifiers modifiers) {
- static struct ModifierMap {
- MockKeyboard::Modifiers src;
- int dst;
- } kModifierMap[] = {
- { MockKeyboard::LEFT_SHIFT, ui::EF_SHIFT_DOWN },
- { MockKeyboard::RIGHT_SHIFT, ui::EF_SHIFT_DOWN },
- { MockKeyboard::LEFT_CONTROL, ui::EF_CONTROL_DOWN },
- { MockKeyboard::RIGHT_CONTROL, ui::EF_CONTROL_DOWN },
- { MockKeyboard::LEFT_ALT, ui::EF_ALT_DOWN },
- { MockKeyboard::RIGHT_ALT, ui::EF_ALT_DOWN },
- };
- int flags = 0;
- for (size_t i = 0; i < arraysize(kModifierMap); ++i) {
- if (kModifierMap[i].src & modifiers) {
- flags |= kModifierMap[i].dst;
- }
- }
- return flags;
-}
-#endif
-
class WebUITestWebUIControllerFactory : public WebUIControllerFactory {
public:
WebUIController* CreateWebUIControllerForURL(WebUI* web_ui,
@@ -163,115 +127,6 @@ class RenderViewImplTest : public RenderViewTest {
return static_cast<RenderFrameImpl*>(view()->GetMainRenderFrame());
}
- // Sends IPC messages that emulates a key-press event.
- int SendKeyEvent(MockKeyboard::Layout layout,
- int key_code,
- MockKeyboard::Modifiers modifiers,
- base::string16* output) {
-#if defined(OS_WIN)
- // Retrieve the Unicode character for the given tuple (keyboard-layout,
- // key-code, and modifiers).
- // Exit when a keyboard-layout driver cannot assign a Unicode character to
- // the tuple to prevent sending an invalid key code to the RenderView
- // object.
- CHECK(mock_keyboard_.get());
- CHECK(output);
- int length = mock_keyboard_->GetCharacters(layout, key_code, modifiers,
- output);
- if (length != 1)
- return -1;
-
- // Create IPC messages from Windows messages and send them to our
- // back-end.
- // A keyboard event of Windows consists of three Windows messages:
- // WM_KEYDOWN, WM_CHAR, and WM_KEYUP.
- // WM_KEYDOWN and WM_KEYUP sends virtual-key codes. On the other hand,
- // WM_CHAR sends a composed Unicode character.
- MSG msg1 = { NULL, WM_KEYDOWN, key_code, 0 };
- ui::KeyEvent evt1(msg1);
- NativeWebKeyboardEvent keydown_event(evt1);
- SendNativeKeyEvent(keydown_event);
-
- MSG msg2 = { NULL, WM_CHAR, (*output)[0], 0 };
- ui::KeyEvent evt2(msg2);
- NativeWebKeyboardEvent char_event(evt2);
- SendNativeKeyEvent(char_event);
-
- MSG msg3 = { NULL, WM_KEYUP, key_code, 0 };
- ui::KeyEvent evt3(msg3);
- NativeWebKeyboardEvent keyup_event(evt3);
- SendNativeKeyEvent(keyup_event);
-
- return length;
-#elif defined(USE_AURA) && defined(USE_X11)
- // We ignore |layout|, which means we are only testing the layout of the
- // current locale. TODO(mazda): fix this to respect |layout|.
- CHECK(output);
- const int flags = ConvertMockKeyboardModifier(modifiers);
-
- ui::ScopedXI2Event xevent;
- xevent.InitKeyEvent(ui::ET_KEY_PRESSED,
- static_cast<ui::KeyboardCode>(key_code),
- flags);
- ui::KeyEvent event1(xevent);
- NativeWebKeyboardEvent keydown_event(event1);
- SendNativeKeyEvent(keydown_event);
-
- // X11 doesn't actually have native character events, but give the test
- // what it wants.
- xevent.InitKeyEvent(ui::ET_KEY_PRESSED,
- static_cast<ui::KeyboardCode>(key_code),
- flags);
- ui::KeyEvent event2(xevent);
- event2.set_character(GetCharacterFromKeyCode(event2.key_code(),
- event2.flags()));
- ui::KeyEventTestApi test_event2(&event2);
- test_event2.set_is_char(true);
- NativeWebKeyboardEvent char_event(event2);
- SendNativeKeyEvent(char_event);
-
- xevent.InitKeyEvent(ui::ET_KEY_RELEASED,
- static_cast<ui::KeyboardCode>(key_code),
- flags);
- ui::KeyEvent event3(xevent);
- NativeWebKeyboardEvent keyup_event(event3);
- SendNativeKeyEvent(keyup_event);
-
- long c = GetCharacterFromKeyCode(static_cast<ui::KeyboardCode>(key_code),
- flags);
- output->assign(1, static_cast<base::char16>(c));
- return 1;
-#elif defined(USE_OZONE)
- const int flags = ConvertMockKeyboardModifier(modifiers);
-
- ui::KeyEvent keydown_event(ui::ET_KEY_PRESSED,
- static_cast<ui::KeyboardCode>(key_code),
- flags);
- NativeWebKeyboardEvent keydown_web_event(keydown_event);
- SendNativeKeyEvent(keydown_web_event);
-
- ui::KeyEvent char_event(keydown_event.GetCharacter(),
- static_cast<ui::KeyboardCode>(key_code),
- flags);
- NativeWebKeyboardEvent char_web_event(char_event);
- SendNativeKeyEvent(char_web_event);
-
- ui::KeyEvent keyup_event(ui::ET_KEY_RELEASED,
- static_cast<ui::KeyboardCode>(key_code),
- flags);
- NativeWebKeyboardEvent keyup_web_event(keyup_event);
- SendNativeKeyEvent(keyup_web_event);
-
- long c = GetCharacterFromKeyCode(static_cast<ui::KeyboardCode>(key_code),
- flags);
- output->assign(1, static_cast<base::char16>(c));
- return 1;
-#else
- NOTIMPLEMENTED();
- return L'\0';
-#endif
- }
-
void EnablePreferredSizeMode() {
view()->OnEnablePreferredSizeChangedMode();
}
@@ -326,7 +181,7 @@ class RenderViewImplTest : public RenderViewTest {
frame()->OnSetCompositionFromExistingText(start, end, underlines);
}
- private:
+ protected:
scoped_ptr<MockKeyboard> mock_keyboard_;
};
@@ -1394,9 +1249,12 @@ TEST_F(RenderViewImplTest, MAYBE_OnHandleKeyboardEvent) {
// We should test a keyboard event only when the given keyboard-layout
// driver is installed in a PC and the driver can assign a Unicode
// charcter for the given tuple (key-code and modifiers).
+ if (!mock_keyboard_->Update(layout, modifiers))
+ continue;
+
int key_code = kKeyCodes[k];
base::string16 char_code;
- if (SendKeyEvent(layout, key_code, modifiers, &char_code) < 0)
+ if (SendKeyEvent(*mock_keyboard_, key_code, &char_code) < 0)
continue;
// Create an expected result from the virtual-key code, the character
@@ -1641,9 +1499,12 @@ TEST_F(RenderViewImplTest, MAYBE_InsertCharacters) {
// We should test a keyboard event only when the given keyboard-layout
// driver is installed in a PC and the driver can assign a Unicode
// charcter for the given tuple (layout, key-code, and modifiers).
+ if (!mock_keyboard_->Update(layout, modifiers))
+ continue;
+
int key_code = kKeyCodes[k];
base::string16 char_code;
- if (SendKeyEvent(layout, key_code, modifiers, &char_code) < 0)
+ if (SendKeyEvent(*mock_keyboard_, key_code, &char_code) < 0)
continue;
}
}

Powered by Google App Engine
This is Rietveld 408576698