New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 633238 link

Starred by 4 users

Issue metadata

Status: Archived
Owner:
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Several keys on fourth layer of German Neo 2 keyboard layout not working

Reported by pm.mol...@gmail.com, Aug 1 2016

Issue description

Chrome Version: 51.0.2704.106 (Offizieller Build) (32-Bit)
Chrome OS Version: 8172.62.0 (Official Build) stable-channel veyron_jaq
Chrome OS Platform: Medion AKOYA S2013 (MD60077)

Please specify Cr-* of the system to which this bug/feature applies (add
the label below).

Steps To Reproduce:
(1) Select [*Deutsche Neo2-Tastatur*](http://www.neo-layout.org/) as keyboard layout.
(2) Try to enter a *return* (Alt Gr + p (QWERTZ v)) or *backspace* (Alt Gr + v (QWERTZ w)) using the fourth layer, anywhere, for example the address bar of the browser.

Expected Result:

On return the Web site of the entered URL should be loaded. On backspace, the character in front of the cursor should be deleted.

Actual Result:

Nothing happens.

How frequently does this problem reproduce? (Always, sometimes, hard to
reproduce?)

Always.

What is the impact to the user, and is there a workaround? If so, what is
it?

Use the present keys for return and backspace, which makes the experience bad, as users fluent in Neo, are used to using the fourth layer.

Please provide any additional information below. Attach a screen shot or
log if possible.
 
Owner: afakhry@chromium.org
Status: Assigned (was: Unconfirmed)
afakhry@ can someone in your team take this on?
Cc: afakhry@chromium.org kpschoedel@chromium.org warx@chromium.org
Owner: shuchen@chromium.org
That looks like an IME issue. shuchen@ Could you please take a look? If it's something on our side, please let us know.
Status: Started (was: Assigned)
From my ChromeOS days I recall Neo is a stress test for keyboard handling. I would first check a layout tester like https://dvcs.w3.org/hg/d4e/raw-file/tip/key-event-test.html

I conjecture that the DOM3 key and code are correct but the Windows VK (legacy keyCode) is wrong (and is VKEY_V and VKEY_W). In that case the problem would be that XkbKeyboardLayoutEngine::Lookup() fails to handle the case of values with special VKEYs (Return & Backspace) generated from non-Control modified printable keys.


Cc: shuchen@chromium.org spang@chromium.org
Owner: kpschoedel@chromium.org
I don't have a debugging environment setup for this (the sandbox chrome os doesn't compile with ozone).

By checking the code & guessing the root cuase, I made a simple fix: 
https://codereview.chromium.org/2481413006

Kevin, can you please help to verify whether my cl can fix this issue? thanks!
Labels: -Pri-3 Pri-2
#5 I'm travelling this week; I'll verify this on Tuesday.
Labels: M-57
Cc: -shuchen@chromium.org
Owner: shuchen@chromium.org
Thanks kpschoedel@ for verification. Taking over the issue and submitting the cl.

Project Member

Comment 10 by bugdroid1@chromium.org, Nov 25 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/958f9a87ed3bf08d72839ce1e078f967ff4dabd6

commit 958f9a87ed3bf08d72839ce1e078f967ff4dabd6
Author: shuchen <shuchen@chromium.org>
Date: Fri Nov 25 00:25:09 2016

Checks the DomKey in the non-printable map to determine whether a key event is non-character.

And fallback to check the character value.

BUG= 633238 

Review-Url: https://codereview.chromium.org/2481413006
Cr-Commit-Position: refs/heads/master@{#434412}

[modify] https://crrev.com/958f9a87ed3bf08d72839ce1e078f967ff4dabd6/ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.cc
[modify] https://crrev.com/958f9a87ed3bf08d72839ce1e078f967ff4dabd6/ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc

Status: Fixed (was: Started)
This still doesn’t work with version 55.0.2883.103 on platform 8872.73.0.
For the record, this causes chromeos/ozone use_xkbcommon=true failures to me:

FAILED: obj/ui/events/events_unittests/xkb_keyboard_layout_engine_unittest.o 
/b/c/cipd/goma/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/ui/events/events_unittests/xkb_keyboard_layout_engine_unittest.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=\"289944-2\" -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGTEST_HAS_POSIX_RE=0 -DGTEST_LANG_CXX11=1 -DGL_GLEXT_PROTOTYPES -DUSE_GLX -DUSE_EGL -DSK_IGNORE_DW_GRAY_FIX -DSK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS -DSK_SUPPORT_GPU=1 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DUNIT_TEST -DENABLE_IPC_FUZZER -DUSE_EVDEV -I../.. -Igen -I../../testing/gtest/include -I../../third_party/khronos -I../../gpu -I../../skia/config -I../../skia/ext -I../../third_party/skia/include/c -I../../third_party/skia/include/config -I../../third_party/skia/include/core -I../../third_party/skia/include/effects -I../../third_party/skia/include/images -I../../third_party/skia/include/lazy -I../../third_party/skia/include/pathops -I../../third_party/skia/include/pdf -I../../third_party/skia/include/pipe -I../../third_party/skia/include/ports -I../../third_party/skia/include/utils -I../../third_party/skia/include/gpu -I../../third_party/skia/src/gpu -I../../third_party/skia/src/sksl -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../third_party/ced/src -I../../testing/gmock_custom -I../../testing/gmock/include -I../../third_party/WebKit -Igen/third_party/WebKit -I../../v8/include -Igen/v8/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -B../../third_party/binutils/Linux_x64/Release/bin -fcolor-diagnostics -fdebug-prefix-map=/b/c/b/linux/src=. -m64 -march=x86-64 -pthread -Wall -Werror -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-deprecated-register -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-address-of-packed-member -O2 -fno-ident -fdata-sections -ffunction-sections -g0 --sysroot=../../build/linux/debian_jessie_amd64-sysroot -fvisibility=hidden -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-ipc -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -fvisibility-inlines-hidden -std=gnu++11 -fno-rtti -fno-exceptions -c ../../ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc -o obj/ui/events/events_unittests/xkb_keyboard_layout_engine_unittest.o
../../ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc:826:60: error: use of undeclared identifier 'VKEY_BACKSPACE'
    {{DomCode::US_W, EF_ALTGR_DOWN, XKB_KEY_BackSpace, 8}, VKEY_BACKSPACE},
                                                           ^
../../ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc:827:58: error: use of undeclared identifier 'VKEY_ENTER'
    {{DomCode::US_V, EF_ALTGR_DOWN, XKB_KEY_Return, 13}, VKEY_ENTER},
                                                         ^
../../ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc:829:24: error: cannot use incomplete type 'const struct (anonymous struct at ../../ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc:803:16) []' as a range
  for (const auto& e : kVkeyTestCase) {
                       ^
../../ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc:836:5: error: no type named 'Compare' in the global namespace
    EXPECT_EQ(e.key_code, key_code);


Build error can also be verified in the linux/ozone FYI bot: https://build.chromium.org/p/chromium.fyi/builders/Ozone%20Linux/builds/5214/steps/compile/logs/stdio

shuchen@, kpschoedel@, spang@: any ideas?

Should be VKEY_BACK and VKEY_RETURN respectively.
Project Member

Comment 15 by bugdroid1@chromium.org, Feb 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f2da5092fa3e87ef4a0d8111f2818148238bd06c

commit f2da5092fa3e87ef4a0d8111f2818148238bd06c
Author: tonikitoo <tonikitoo@igalia.com>
Date: Tue Feb 07 20:45:35 2017

Fix 'events_unittests' build

$ vim u/e/o/l/x/xkb_keyboard_layout_engine_unittest.cc
: %s/VKEY_BACKSPACE/VKEY_BACK/gc
: %s/VKEY_ENTER/VKEY_RETURN/gc

TBR=kpschoedel@chromium.org,spang@chromium.org

BUG= 633238 

Review-Url: https://codereview.chromium.org/2678283003
Cr-Commit-Position: refs/heads/master@{#448726}

[modify] https://crrev.com/f2da5092fa3e87ef4a0d8111f2818148238bd06c/ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine_unittest.cc

This is just to confirm, that the fourth layer seems to work now, since the update from *last week*.
Labels: VerifyIn-61

Comment 18 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment