summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhbono@chromium.org <hbono@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-27 09:36:34 +0000
committerhbono@chromium.org <hbono@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-27 09:36:34 +0000
commit555d361a10df8ee24817128dfb867365d1f58f4e (patch)
treeb69a9642636d7a01cb1bdee77fd2d8c5e7f57097
parent5a91f021a1d3e00ca7d6a394445f5df3b44d2eb6 (diff)
downloadchromium_src-555d361a10df8ee24817128dfb867365d1f58f4e.zip
chromium_src-555d361a10df8ee24817128dfb867365d1f58f4e.tar.gz
chromium_src-555d361a10df8ee24817128dfb867365d1f58f4e.tar.bz2
A quick fix for Issue 23745.
This issue is caused by my another mistake that I forgot changing test_shell to apply my input-code refactoring. (Since my refactoring, EventSendingController::keyDown() doesn't need platform-dependent code.) This change just removes the platform-dependent code in EventSendingController::keyDown() and updates 'test_expectations.txt'. BUG=23745 TEST=run-webkit-tests.sh LayoutTests/fast/events/node-event-anchor-lock.html Review URL: http://codereview.chromium.org/258032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30175 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--webkit/tools/layout_tests/test_expectations.txt1
-rw-r--r--webkit/tools/test_shell/event_sending_controller.cc24
2 files changed, 13 insertions, 12 deletions
diff --git a/webkit/tools/layout_tests/test_expectations.txt b/webkit/tools/layout_tests/test_expectations.txt
index 0017f3a..538740a 100644
--- a/webkit/tools/layout_tests/test_expectations.txt
+++ b/webkit/tools/layout_tests/test_expectations.txt
@@ -3085,7 +3085,6 @@ BUG23956 WIN LINUX : LayoutTests/fast/dom/Range/getClientRects.html = FAIL
BUG24126 : LayoutTests/fast/dom/HTMLInputElement/size-attribute.html = FAIL
// WebKit update 48883:48904
-BUG23745 LINUX MAC : LayoutTests/fast/events/node-event-anchor-lock.html = FAIL
// WebKit update 48937:48947
BUG23751 WIN LINUX DEBUG : LayoutTests/fast/inline/relative-positioned-overflow.html = CRASH
diff --git a/webkit/tools/test_shell/event_sending_controller.cc b/webkit/tools/test_shell/event_sending_controller.cc
index 3a024d8..e0b24bd 100644
--- a/webkit/tools/test_shell/event_sending_controller.cc
+++ b/webkit/tools/test_shell/event_sending_controller.cc
@@ -147,9 +147,7 @@ void ApplyKeyModifier(const std::wstring& arg, WebKeyboardEvent* event) {
event->modifiers |= WebInputEvent::ShiftKey;
} else if (!wcscmp(arg_string, L"altKey")) {
event->modifiers |= WebInputEvent::AltKey;
-#if defined(OS_WIN)
event->isSystemKey = true;
-#endif
} else if (!wcscmp(arg_string, L"metaKey")) {
event->modifiers |= WebInputEvent::MetaKey;
}
@@ -486,12 +484,8 @@ void EventSendingController::keyDown(
// On Windows, we might also need to generate a char event to mimic the
// Windows event flow; on other platforms we create a merged event and test
// the event flow that that platform provides.
- WebKeyboardEvent event_down, event_up;
-#if defined(OS_WIN)
+ WebKeyboardEvent event_down, event_char, event_up;
event_down.type = WebInputEvent::RawKeyDown;
-#else
- event_down.type = WebInputEvent::KeyDown;
-#endif
event_down.modifiers = 0;
event_down.windowsKeyCode = code;
if (generate_char) {
@@ -506,22 +500,30 @@ void EventSendingController::keyDown(
if (needs_shift_key_modifier)
event_down.modifiers |= WebInputEvent::ShiftKey;
- event_up = event_down;
+ event_char = event_up = event_down;
event_up.type = WebInputEvent::KeyUp;
// EventSendingController.m forces a layout here, with at least one
// test (fast\forms\focus-control-to-page.html) relying on this.
webview()->layout();
+#if defined(OS_MACOSX)
+ // On Mac OS, some layout tests (such as "delete-by-word-001.html") sends
+ // an option-key (or alt-key) event to test it is mapped to an appropriate
+ // editor command (such as "DeleteWordBackward").
+ // On the other hand, EditorClientImpl::handleEditingKeyboardEvent()
+ // ignores the key event whose isSystemKey value is true and cannot map
+ // an editor command to an option-key event.
+ // As a workaround for this problem, we set isSystemKey of RawKeyDown
+ // events to false.
+ event_down.isSystemKey = false;
+#endif
webview()->handleInputEvent(event_down);
-#if defined(OS_WIN)
if (generate_char) {
- WebKeyboardEvent event_char = event_down;
event_char.type = WebInputEvent::Char;
event_char.keyIdentifier[0] = '\0';
webview()->handleInputEvent(event_char);
}
-#endif
webview()->handleInputEvent(event_up);
}