New issue
Advanced search Search tips

Issue 832811 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 15
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Feature

Blocked on:
issue 831743
issue 857277

Blocking:
issue 817480



Sign in to add a comment

Add support for Keyboard Map API

Project Member Reported by garykac@chromium.org, Apr 13 2018

Issue description

Adding an API to return a map that translates from KeyboardEvent.code values into a strings that can be shown to the user to identify each key. 
This is not possible with existing web platform APIs because the value that should be shown to the user depends on the keyboard layouts that the user has installed and active.

Explainer: https://github.com/wicg/keyboard-map/blob/master/explainer.md

Draft specification: https://wicg.github.io/keyboard-map/

WICG Discourse: https://discourse.wicg.io/t/keyboardevent-getcharacterbykey-key-modifierlist/1857
 
Blockedon: 831743
Project Member

Comment 2 by bugdroid1@chromium.org, May 8 2018

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

commit 95d79fb633b6342ff8ed61cefe377f37e839cca2
Author: Gary Kacmarcik <garykac@chromium.org>
Date: Tue May 08 01:51:04 2018

[KeyboardMap] Initial stub for navigator.keyboard.getLayoutMap

This includes the WebIDL defs, initial WebPlatformTests and mojom
over to stubs in the RenderWidgetHost.

Spec: https://wicg.github.io/keyboard-map/

A proper implementation for this API will be in follow up cls,
a separate cl per platform.

Bug:  832811 
Change-Id: I17dee21095665739a3f1986e48a2182d6b6fab00
Reviewed-on: https://chromium-review.googlesource.com/1014244
Commit-Queue: Gary Kacmarcik <garykac@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556639}
[modify] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/content/browser/keyboard_lock/keyboard_lock_service_impl.cc
[modify] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/content/browser/keyboard_lock/keyboard_lock_service_impl.h
[modify] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/content/browser/renderer_host/render_widget_host_view_base.cc
[modify] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/content/browser/renderer_host/render_widget_host_view_base.h
[modify] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/content/public/browser/render_widget_host_view.h
[add] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/WebKit/LayoutTests/external/wpt/interfaces/keyboard-map.idl
[add] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/WebKit/LayoutTests/external/wpt/keyboard-map/OWNERS
[add] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/WebKit/LayoutTests/external/wpt/keyboard-map/idlharness.https.html
[add] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/WebKit/LayoutTests/external/wpt/keyboard-map/keyboard-map-https-expected.txt
[add] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/WebKit/LayoutTests/external/wpt/keyboard-map/keyboard-map-https.html
[modify] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/blink/public/platform/modules/keyboard_lock/keyboard_lock.mojom
[modify] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/blink/public/platform/web_feature.mojom
[modify] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/blink/renderer/modules/keyboard/BUILD.gn
[modify] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/blink/renderer/modules/keyboard/keyboard.cc
[modify] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/blink/renderer/modules/keyboard/keyboard.h
[modify] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/blink/renderer/modules/keyboard/keyboard.idl
[add] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/blink/renderer/modules/keyboard/keyboard_layout.cc
[add] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/blink/renderer/modules/keyboard/keyboard_layout.h
[add] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/blink/renderer/modules/keyboard/keyboard_layout_map.cc
[add] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/blink/renderer/modules/keyboard/keyboard_layout_map.h
[add] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/blink/renderer/modules/keyboard/keyboard_layout_map.idl
[modify] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/blink/renderer/modules/modules_idl_files.gni
[modify] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/third_party/blink/renderer/platform/runtime_enabled_features.json5
[modify] https://crrev.com/95d79fb633b6342ff8ed61cefe377f37e839cca2/tools/metrics/histograms/enums.xml

Project Member

Comment 3 by bugdroid1@chromium.org, May 15 2018

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

commit 9c79e1fe51fb63b5046220f98525ca7a50e74a51
Author: Gary Kacmarcik <garykac@chromium.org>
Date: Tue May 15 15:57:20 2018

[KeyboardMap] Initial Linux(gdk) version for getLayoutMap

See spec: https://wicg.github.io/keyboard-map/

Bug:  832811 
Change-Id: I74bf2ecd3581bd4e68a1c17390b24101a79721ab
Reviewed-on: https://chromium-review.googlesource.com/1053398
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Gary Kacmarcik <garykac@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558723}
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/chrome/browser/ui/libgtkui/BUILD.gn
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/chrome/browser/ui/libgtkui/gtk_ui.cc
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/chrome/browser/ui/libgtkui/gtk_ui.h
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/content/browser/keyboard_lock/keyboard_lock_service_impl.cc
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/content/browser/renderer_host/render_widget_host_impl.h
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/headless/lib/browser/headless_window_tree_host.cc
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/headless/lib/browser/headless_window_tree_host.h
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/ui/aura/window_tree_host.h
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/ui/aura/window_tree_host_platform.cc
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/ui/aura/window_tree_host_platform.h
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/ui/events/keycodes/dom/keycode_converter.cc
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/ui/events/keycodes/dom/keycode_converter.h
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/ui/views/linux_ui/linux_ui.h
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
[modify] https://crrev.com/9c79e1fe51fb63b5046220f98525ca7a50e74a51/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h

Project Member

Comment 4 by bugdroid1@chromium.org, May 17 2018

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

commit f2dbc59da3373e168ce99a860799fe7511acabb7
Author: Gary Kacmarcik <garykac@chromium.org>
Date: Thu May 17 03:00:52 2018

[Keyboard Map] Add shared DomKeyboardLayout class.

This class contains all the platform-independent code for creating
the Keyboard Map.

Bug:  832811 
Change-Id: Icb4dbf85419c72e795b090bae816b0b1c6b03f67
Reviewed-on: https://chromium-review.googlesource.com/1062925
Commit-Queue: Gary Kacmarcik <garykac@chromium.org>
Reviewed-by: Joe Downing <joedow@chromium.org>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559408}
[modify] https://crrev.com/f2dbc59da3373e168ce99a860799fe7511acabb7/chrome/browser/ui/libgtkui/gtk_ui.cc
[modify] https://crrev.com/f2dbc59da3373e168ce99a860799fe7511acabb7/ui/events/BUILD.gn
[add] https://crrev.com/f2dbc59da3373e168ce99a860799fe7511acabb7/ui/events/keycodes/dom/dom_keyboard_layout.cc
[add] https://crrev.com/f2dbc59da3373e168ce99a860799fe7511acabb7/ui/events/keycodes/dom/dom_keyboard_layout.h
[add] https://crrev.com/f2dbc59da3373e168ce99a860799fe7511acabb7/ui/events/keycodes/dom/dom_keyboard_layout_manager.cc
[add] https://crrev.com/f2dbc59da3373e168ce99a860799fe7511acabb7/ui/events/keycodes/dom/dom_keyboard_layout_manager.h
[modify] https://crrev.com/f2dbc59da3373e168ce99a860799fe7511acabb7/ui/events/keycodes/dom/keycode_converter.cc
[modify] https://crrev.com/f2dbc59da3373e168ce99a860799fe7511acabb7/ui/events/keycodes/dom/keycode_converter.h

Project Member

Comment 5 by bugdroid1@chromium.org, May 24 2018

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

commit 5928688b3ceebd2ac720def48355242fa6d27be3
Author: Gary Kacmarcik <garykac@chromium.org>
Date: Thu May 24 00:11:02 2018

[KeyboardMap] Convert combining chars into printable chars

Rather than have each platform convert Unicode combining characters
before adding them to the DomKeyboardLayout, with this change each
platform adds the Unicode combining characters and they are converted
into printable characters as the LayoutMap is being created for
the user.

Bug:  832811 
Change-Id: Ie1b23b228c1227b7c4be6e5409dba881ef1ff586
Reviewed-on: https://chromium-review.googlesource.com/1070756
Reviewed-by: Joe Downing <joedow@chromium.org>
Commit-Queue: Gary Kacmarcik <garykac@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561321}
[modify] https://crrev.com/5928688b3ceebd2ac720def48355242fa6d27be3/ui/events/keycodes/dom/dom_keyboard_layout.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 1 2018

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

commit 4d294e294efeb835278a4f852674c53b7227a62c
Author: Gary Kacmarcik <garykac@chromium.org>
Date: Fri Jun 01 23:57:42 2018

[KeyboardMap] Ozone implementation getKeyboardLayoutMap

See Draft specification: https://wicg.github.io/keyboard-map/

Bug:  832811 
Change-Id: Ife1ac762b238020f491ff6f977ef7e8105572f28
Reviewed-on: https://chromium-review.googlesource.com/1070876
Commit-Queue: Gary Kacmarcik <garykac@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563870}
[modify] https://crrev.com/4d294e294efeb835278a4f852674c53b7227a62c/ui/aura/BUILD.gn
[modify] https://crrev.com/4d294e294efeb835278a4f852674c53b7227a62c/ui/aura/window_tree_host_platform.cc
[add] https://crrev.com/4d294e294efeb835278a4f852674c53b7227a62c/ui/aura/window_tree_host_platform_ozone.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 6 2018

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

commit be12e75c6d128f0f5dfc9b23ab2d1f314e2fae48
Author: Joe Downing <joedow@chromium.org>
Date: Wed Jun 06 16:35:46 2018

[KeyboardMap] Base class and Windows implementation

This CL contains a base class and unittests for generating
a keyboard layout map for the KeyboardMap API.  It also
includes a a Windows implementation which uses the base
class.

BUG= 832811 

Change-Id: I7ff20cf8b2a34cf8c7a9bbe9609e40f39bb89634
Reviewed-on: https://chromium-review.googlesource.com/1077596
Commit-Queue: Joe Downing <joedow@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Gary Kacmarcik <garykac@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564918}
[modify] https://crrev.com/be12e75c6d128f0f5dfc9b23ab2d1f314e2fae48/ui/events/BUILD.gn
[add] https://crrev.com/be12e75c6d128f0f5dfc9b23ab2d1f314e2fae48/ui/events/keycodes/dom/dom_keyboard_layout_map.h
[add] https://crrev.com/be12e75c6d128f0f5dfc9b23ab2d1f314e2fae48/ui/events/keycodes/dom/dom_keyboard_layout_map_base.cc
[add] https://crrev.com/be12e75c6d128f0f5dfc9b23ab2d1f314e2fae48/ui/events/keycodes/dom/dom_keyboard_layout_map_base.h
[add] https://crrev.com/be12e75c6d128f0f5dfc9b23ab2d1f314e2fae48/ui/events/keycodes/dom/dom_keyboard_layout_map_unittest.cc
[add] https://crrev.com/be12e75c6d128f0f5dfc9b23ab2d1f314e2fae48/ui/events/keycodes/dom/dom_keyboard_layout_map_win.cc
[modify] https://crrev.com/be12e75c6d128f0f5dfc9b23ab2d1f314e2fae48/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 9 2018

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

commit 5914b261406afb3d6a1236dfe8d8bc9f01757161
Author: Joe Downing <joedow@chromium.org>
Date: Sat Jun 09 03:25:09 2018

[KeyboardMap] Blink module now handles iFrames and multiple calls

This CL adds the following:
- KeyboardMap now requires the caller to be a top-level, secure
  browsing context
- Multiple calls to getKeyboardLayout() will now be given the same
  promise instead of it being timing dependent (the initial promise
  might get overwritten with the old logic)
- Sequential calls to getKeyboardLayout() still get their own promise
- All promise rejections will return a DOM exception (similar to
  KeyboardLock)
- I've cleaned up KeyboardLock a bit as well so it has similar
  logic/formatting to what I added to KeyboardMap
- Added several tests to KeyboardMap and fixed some failing cases

BUG= 832811 

Change-Id: I4a03f68c239cff42b8840e9513257384038f04b4
Reviewed-on: https://chromium-review.googlesource.com/1093474
Commit-Queue: Joe Downing <joedow@chromium.org>
Reviewed-by: Gary Kacmarcik <garykac@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565833}
[modify] https://crrev.com/5914b261406afb3d6a1236dfe8d8bc9f01757161/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/idlharness.https.html
[modify] https://crrev.com/5914b261406afb3d6a1236dfe8d8bc9f01757161/third_party/WebKit/LayoutTests/external/wpt/keyboard-lock/navigator-keyboard-lock.https.html
[delete] https://crrev.com/9a80079af10fb187c280bcf8a0625e8863d8eb2d/third_party/WebKit/LayoutTests/external/wpt/keyboard-map/keyboard-map-https-expected.txt
[add] https://crrev.com/5914b261406afb3d6a1236dfe8d8bc9f01757161/third_party/WebKit/LayoutTests/external/wpt/keyboard-map/keyboard-map-two-parallel-requests.https.html
[add] https://crrev.com/5914b261406afb3d6a1236dfe8d8bc9f01757161/third_party/WebKit/LayoutTests/external/wpt/keyboard-map/navigator-keyboard-map-blocked-from-cross-origin-iframe.https.html
[add] https://crrev.com/5914b261406afb3d6a1236dfe8d8bc9f01757161/third_party/WebKit/LayoutTests/external/wpt/keyboard-map/navigator-keyboard-map-blocked-from-iframe.https.html
[add] https://crrev.com/5914b261406afb3d6a1236dfe8d8bc9f01757161/third_party/WebKit/LayoutTests/external/wpt/keyboard-map/navigator-keyboard-map-two-parallel-requests.https.html
[add] https://crrev.com/5914b261406afb3d6a1236dfe8d8bc9f01757161/third_party/WebKit/LayoutTests/external/wpt/keyboard-map/navigator-keyboard-map-two-sequential-requests.https.html
[rename] https://crrev.com/5914b261406afb3d6a1236dfe8d8bc9f01757161/third_party/WebKit/LayoutTests/external/wpt/keyboard-map/navigator-keyboard-map.https.html
[add] https://crrev.com/5914b261406afb3d6a1236dfe8d8bc9f01757161/third_party/WebKit/LayoutTests/external/wpt/keyboard-map/resources/iframe-keyboard-map-helper.html
[modify] https://crrev.com/5914b261406afb3d6a1236dfe8d8bc9f01757161/third_party/blink/renderer/modules/keyboard/keyboard_layout.cc
[modify] https://crrev.com/5914b261406afb3d6a1236dfe8d8bc9f01757161/third_party/blink/renderer/modules/keyboard/keyboard_layout.h
[modify] https://crrev.com/5914b261406afb3d6a1236dfe8d8bc9f01757161/third_party/blink/renderer/modules/keyboard/keyboard_lock.cc
[modify] https://crrev.com/5914b261406afb3d6a1236dfe8d8bc9f01757161/third_party/blink/renderer/modules/keyboard/keyboard_lock.h

Project Member

Comment 9 by bugdroid1@chromium.org, Jun 9 2018

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

commit 1bb698dbbe51e846498e3137b2ceb52ee912a251
Author: Joe Downing <joedow@chromium.org>
Date: Sat Jun 09 05:30:45 2018

[KeyboardMap] MacOS implementation

This CL adds the MacOS implementation for the KeyboardMap API and
hooks it up via the RenderWidgetHostViewMac class.  This is a bit
different than on the Aura platforms as the WindowTreeHost class
is used there, however those classes do not exist on MacOS so the
RWHVM is the next best place to put it.

BUG= 832811 

Change-Id: I2eaa36bb4b8ab0328678219bba9973f80c04dcb6
Reviewed-on: https://chromium-review.googlesource.com/1089633
Commit-Queue: Joe Downing <joedow@chromium.org>
Reviewed-by: ccameron <ccameron@chromium.org>
Reviewed-by: Gary Kacmarcik <garykac@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565864}
[modify] https://crrev.com/1bb698dbbe51e846498e3137b2ceb52ee912a251/content/browser/renderer_host/render_widget_host_view_mac.h
[modify] https://crrev.com/1bb698dbbe51e846498e3137b2ceb52ee912a251/content/browser/renderer_host/render_widget_host_view_mac.mm
[modify] https://crrev.com/1bb698dbbe51e846498e3137b2ceb52ee912a251/ui/events/BUILD.gn
[modify] https://crrev.com/1bb698dbbe51e846498e3137b2ceb52ee912a251/ui/events/keycodes/dom/dom_keyboard_layout_map_base.cc
[add] https://crrev.com/1bb698dbbe51e846498e3137b2ceb52ee912a251/ui/events/keycodes/dom/dom_keyboard_layout_map_mac.mm
[modify] https://crrev.com/1bb698dbbe51e846498e3137b2ceb52ee912a251/ui/events/keycodes/dom/dom_keyboard_layout_map_win.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Jun 12 2018

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

commit 5adea9267ad635715f8a8b4a3938220d8635f6b3
Author: Joe Downing <joedow@chromium.org>
Date: Tue Jun 12 01:40:09 2018

[KeyboardMap] Updating Ozone impl to use shared base class

This CL adds a DomKeyboardLayoutMapOzone subclass.  Since the Ozone
impl depends on the KeyboardLayoutEngine/Manager, I needed to split
up the previous GN build target to take a dependency on the target
which builds it (this prevents a cyclical dependency on events_base).
I was also able to remove the ozone specific WindowTreeHostPlatform
file and update the base class too use the static GenerateMap
function. This means that Windows should work now and, hopefully, X11
will as well once I move it over to use the base class.

BUG= 832811 

Change-Id: Ie6212f8d7292a7621714824d7845485407bdaa1b
Reviewed-on: https://chromium-review.googlesource.com/1093891
Commit-Queue: Joe Downing <joedow@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Gary Kacmarcik <garykac@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566233}
[modify] https://crrev.com/5adea9267ad635715f8a8b4a3938220d8635f6b3/chrome/browser/ui/libgtkui/BUILD.gn
[modify] https://crrev.com/5adea9267ad635715f8a8b4a3938220d8635f6b3/content/browser/BUILD.gn
[modify] https://crrev.com/5adea9267ad635715f8a8b4a3938220d8635f6b3/ui/aura/BUILD.gn
[modify] https://crrev.com/5adea9267ad635715f8a8b4a3938220d8635f6b3/ui/aura/window_tree_host_platform.cc
[delete] https://crrev.com/4322a53d1dcfa85ef9419ad4e74628839f57d721/ui/aura/window_tree_host_platform_ozone.cc
[modify] https://crrev.com/5adea9267ad635715f8a8b4a3938220d8635f6b3/ui/events/BUILD.gn
[add] https://crrev.com/5adea9267ad635715f8a8b4a3938220d8635f6b3/ui/events/keycodes/dom/dom_keyboard_layout_map_ozone.cc
[modify] https://crrev.com/5adea9267ad635715f8a8b4a3938220d8635f6b3/ui/views/BUILD.gn

Project Member

Comment 11 by bugdroid1@chromium.org, Jun 14 2018

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

commit db3b29d9b8769cc82a1fe9b7bace14d4b0bc78e4
Author: Joe Downing <joedow@chromium.org>
Date: Thu Jun 14 15:16:52 2018

[KeyboardMap] UCKeyTranslate refactor

This is a follow-up from
https://chromium-review.googlesource.com/c/chromium/src/+/1089633

This CL adds a helper function which wraps UCKeyTranslate along with
some param conversions needed to call into it in a new helper function.
I've also updated all of the callsites which used UCKeyTranslate
directly to use the new helper function.

During the original CR, there was a suggestion to put the helper
method in ui/base/cocoa.  I've kept it in ui/events as referring
to ui/base from within ui/events was problematic.  Also ui/base
seemed like the wrong place given that this helper does work with
low level key event data and not higher level constructs.

BUG= 832811 

Change-Id: Iba6c78c846637afd74eb0256ac7e65dc3508d97a
Reviewed-on: https://chromium-review.googlesource.com/1097976
Commit-Queue: Joe Downing <joedow@chromium.org>
Reviewed-by: Shuotao Gao <stgao@chromium.org>
Reviewed-by: ccameron <ccameron@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567269}
[modify] https://crrev.com/db3b29d9b8769cc82a1fe9b7bace14d4b0bc78e4/chrome/browser/ui/cocoa/nsmenuitem_additions_unittest.mm
[modify] https://crrev.com/db3b29d9b8769cc82a1fe9b7bace14d4b0bc78e4/chrome/test/chromedriver/keycode_text_conversion_mac.mm
[modify] https://crrev.com/db3b29d9b8769cc82a1fe9b7bace14d4b0bc78e4/ui/events/BUILD.gn
[modify] https://crrev.com/db3b29d9b8769cc82a1fe9b7bace14d4b0bc78e4/ui/events/keycodes/dom/dom_keyboard_layout_map_mac.mm
[modify] https://crrev.com/db3b29d9b8769cc82a1fe9b7bace14d4b0bc78e4/ui/events/keycodes/keyboard_code_conversion_mac.h
[modify] https://crrev.com/db3b29d9b8769cc82a1fe9b7bace14d4b0bc78e4/ui/events/keycodes/keyboard_code_conversion_mac.mm

Blockedon: 857277
Project Member

Comment 13 by bugdroid1@chromium.org, Jul 9

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

commit 4ed555782bc0020bde85c21591fd78edd305953d
Author: Joe Downing <joedow@chromium.org>
Date: Mon Jul 09 23:53:35 2018

[KeyboardMap] Updating Windows impl to prioritize current layout

The API used to retrieve the list of layouts does not reflect the
order of the layouts in the control panel.  I don't see another
Win32 API which would give us that ordering so I am now grabbing
the current layout and swapping it with the first element to ensure
it is evaluated first.

BUG= 832811 

Change-Id: Icef22303e38be4b2680ad8636ba408fcb81239a2
Reviewed-on: https://chromium-review.googlesource.com/1130455
Reviewed-by: Gary Kacmarcik <garykac@chromium.org>
Commit-Queue: Joe Downing <joedow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573537}
[modify] https://crrev.com/4ed555782bc0020bde85c21591fd78edd305953d/ui/events/keycodes/dom/dom_keyboard_layout_map_win.cc

Labels: Merge-Request-69
It's just the final cl (the one enabling that feature) that needs to be merged.
Project Member

Comment 17 by sheriffbot@chromium.org, Jul 21

Labels: -Merge-Request-69 Hotlist-Merge-Approved Merge-Approved-69
Your change meets the bar and is auto-approved for M69. Please go ahead and merge the CL to branch 3497 manually. Please contact milestone owner if you have questions.
Owners: amineer@(Android), kariahda@(iOS), cindyb@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 18 by bugdroid1@chromium.org, Jul 23

Labels: -merge-approved-69 merge-merged-3497
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f4a68d04e9dc0c3afa660cf4faea906d8f314572

commit f4a68d04e9dc0c3afa660cf4faea906d8f314572
Author: Gary Kacmarcik <garykac@chromium.org>
Date: Mon Jul 23 17:23:05 2018

[KeyboardMap] Enable navigator.keyboard.getLayoutMap() on Stable.

Launch bug (w/ approvals): crbug.com/831743

Intent 2 ship: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/V2xR7cucnOA

Bug:  832811 , 831743
Change-Id: I24d2f49e82b5afe1dd668dc57e0ceb98af36e205
Reviewed-on: https://chromium-review.googlesource.com/1141104
Reviewed-by: Alex Russell <slightlyoff@chromium.org>
Commit-Queue: Gary Kacmarcik <garykac@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#576796}(cherry picked from commit 4fcc638ec7f175167fcc9a00233c96cd7c22eda7)
Reviewed-on: https://chromium-review.googlesource.com/1147040
Reviewed-by: Gary Kacmarcik <garykac@chromium.org>
Cr-Commit-Position: refs/branch-heads/3497@{#16}
Cr-Branched-From: 271eaf50594eb818c9295dc78d364aea18c82ea8-refs/heads/master@{#576753}
[modify] https://crrev.com/f4a68d04e9dc0c3afa660cf4faea906d8f314572/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/f4a68d04e9dc0c3afa660cf4faea906d8f314572/third_party/blink/renderer/modules/keyboard/keyboard.idl
[modify] https://crrev.com/f4a68d04e9dc0c3afa660cf4faea906d8f314572/third_party/blink/renderer/platform/runtime_enabled_features.json5

Blocking: 817480
Status: Fixed (was: Started)

Sign in to add a comment