diff options
author | hbono@chromium.org <hbono@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-27 09:36:34 +0000 |
---|---|---|
committer | hbono@chromium.org <hbono@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-27 09:36:34 +0000 |
commit | 555d361a10df8ee24817128dfb867365d1f58f4e (patch) | |
tree | b69a9642636d7a01cb1bdee77fd2d8c5e7f57097 | |
parent | 5a91f021a1d3e00ca7d6a394445f5df3b44d2eb6 (diff) | |
download | chromium_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.txt | 1 | ||||
-rw-r--r-- | webkit/tools/test_shell/event_sending_controller.cc | 24 |
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); } |