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

Issue 783166 link

Starred by 17 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

Pixelbook falling back to old keyboard mapping

Reported by robby.n....@gmail.com, Nov 9 2017

Issue description

UserAgent: Mozilla/5.0 (X11; CrOS x86_64 9901.54.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.74 Safari/537.36
Platform: 9901.54.0 (Official Build) stable-channel eve

Steps to reproduce the problem:
1. Press full screen function button (F3) or
2. Press any function key
3. Press Assistant Key

What is the expected behavior?
I expect the Chromebook to do what the keyboard indicates.  Full screen, overview, refresh, etc.

What went wrong?
Instead, the old mappings for all other Chromebooks comes back.  F2 becomes forward instead of refresh, for instance.

Did this work before? N/A 

Chrome version: 62.0.3202.74  Channel: n/a
OS Version: 9901.54.0
Flash Version: 

A restart fixes this.
 

Comment 1 by dymp...@gmail.com, Nov 9 2017

CBC-RS/TC-watchlist
Cc: abodenha@chromium.org x...@chromium.org zalcorn@chromium.org adlr@chromium.org
Components: -UI UI>Shell UI>Input>KeyboardShortcuts
Labels: -Pri-2 Pri-1
Adding a bunch of folks to take a look. This should def not happen

Comment 3 by x...@chromium.org, Nov 10 2017

Cc: afakhry@chromium.org
Cc: derat@chromium.org
Cc: dtor@chromium.org bleung@chromium.org
Components: IO>Keyboard
Owner: afakhry@chromium.org
robby.n.payne@ does the device start with the correct layout and then revert to the old? Or does it come up with the wrong layout on boot/wake and recover on a reboot.  Can you file a feedback report via alt+shift+i if this happens again.

afakhry@, I'm looking at the code in event_rewriter_chromeos.cc and it looks like we're reading the keyboard type from udev on every function key press. If anything fails there we'll end up falling back to the older layout. We should be able to figure out a way to make this more robust.
Status: Started (was: Unconfirmed)
Yes, this was introduced in this CL: https://chromium-review.googlesource.com/c/chromium/src/+/571652.
If we fail to get the proper layout from udev for any reason, we'll default to Layout1 (non-eve layout), and we'll store this keyboard device in `device_id_to_info_` with that default layout (even though it might be wrong due to the earlier failure). On subsequent key events, we'll use that value we stored, and won't attempt to re-read from udev.
That's why rebooting is the only way to recover from this bad state.

I suggest observing those potential failures, and not storing the device info when they happen. This gives us a chance to retry.
Project Member

Comment 9 by bugdroid1@chromium.org, Nov 13 2017

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

commit aa02b4e9e62729e8570796fd5de6597fba1ceb51
Author: Ahmed Fakhry <afakhry@google.com>
Date: Mon Nov 13 21:43:32 2017

Don't store the keyboard info when reading the layout property fails

Reading the keyboard device layout property from udev might fail. When
this happens, we used to store the keyboard info with a default layout
value = Layout1.

This CL avoid storing the keyboard info when a failure in udev is detected,
we will still fallback to the default layout for the current key event, but
we will attempt to re-read the layout property from udev on subsequent keys
until a valid layout is returned. This eliminates the need to reboot the
device to exit the bad state.

BUG= 783166 
TEST=added new test.

Change-Id: I94d6771ef955e20cee831ad0a93e31dcaaf8f610
Reviewed-on: https://chromium-review.googlesource.com/764444
Reviewed-by: Dan Erat <derat@chromium.org>
Commit-Queue: Ahmed Fakhry <afakhry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#516063}
[modify] https://crrev.com/aa02b4e9e62729e8570796fd5de6597fba1ceb51/chrome/browser/chromeos/events/event_rewriter_unittest.cc
[modify] https://crrev.com/aa02b4e9e62729e8570796fd5de6597fba1ceb51/ui/chromeos/events/event_rewriter_chromeos.cc
[modify] https://crrev.com/aa02b4e9e62729e8570796fd5de6597fba1ceb51/ui/chromeos/events/event_rewriter_chromeos.h
[modify] https://crrev.com/aa02b4e9e62729e8570796fd5de6597fba1ceb51/ui/chromeos/events/keyboard_layout_util.cc

Thanks.  Should we merge to 63?
Labels: Merge-Request-63
Yes.
Project Member

Comment 12 by sheriffbot@chromium.org, Nov 15 2017

Labels: -Merge-Request-63 Merge-Review-63 Hotlist-Merge-Review
This bug requires manual review: M63 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), gkihumba@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Will wait for this to be verified on tot first. Please mark as fixed for TE to have it on their radar.
Status: Fixed (was: Started)
Re#13: Done.
Labels: -Merge-Review-63 Merge-Approved-63
Project Member

Comment 16 by bugdroid1@chromium.org, Nov 29 2017

Labels: -merge-approved-63 merge-merged-3239
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/df5824ae3976152e922652d5fc2e72f0fb03c189

commit df5824ae3976152e922652d5fc2e72f0fb03c189
Author: Ahmed Fakhry <afakhry@google.com>
Date: Wed Nov 29 03:26:33 2017

[Merge to M-63] Don't store the keyboard info when reading the layout property fails

Reading the keyboard device layout property from udev might fail. When
this happens, we used to store the keyboard info with a default layout
value = Layout1.

This CL avoid storing the keyboard info when a failure in udev is detected,
we will still fallback to the default layout for the current key event, but
we will attempt to re-read the layout property from udev on subsequent keys
until a valid layout is returned. This eliminates the need to reboot the
device to exit the bad state.

TBR=derat@chromium.org, kpschoedel@chromium.org
BUG= 783166 
TEST=added new test.

(cherry picked from commit aa02b4e9e62729e8570796fd5de6597fba1ceb51)

Change-Id: I94d6771ef955e20cee831ad0a93e31dcaaf8f610
Reviewed-on: https://chromium-review.googlesource.com/764444
Reviewed-by: Dan Erat <derat@chromium.org>
Commit-Queue: Ahmed Fakhry <afakhry@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#516063}
Reviewed-on: https://chromium-review.googlesource.com/795180
Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
Cr-Commit-Position: refs/branch-heads/3239@{#599}
Cr-Branched-From: adb61db19020ed8ecee5e91b1a0ea4c924ae2988-refs/heads/master@{#508578}
[modify] https://crrev.com/df5824ae3976152e922652d5fc2e72f0fb03c189/chrome/browser/chromeos/events/event_rewriter_unittest.cc
[modify] https://crrev.com/df5824ae3976152e922652d5fc2e72f0fb03c189/ui/chromeos/events/event_rewriter_chromeos.cc
[modify] https://crrev.com/df5824ae3976152e922652d5fc2e72f0fb03c189/ui/chromeos/events/event_rewriter_chromeos.h
[modify] https://crrev.com/df5824ae3976152e922652d5fc2e72f0fb03c189/ui/chromeos/events/keyboard_layout_util.cc

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

Status: Archived (was: Fixed)

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

Status: Fixed (was: Archived)

Sign in to add a comment