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

Issue 866380 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

Allow floating virtual keyboard events to pass through.

Project Member Reported by shend@chromium.org, Jul 23

Issue description

What steps will reproduce the problem?
(1) Use the floating virtual keyboard under the new UI.
(2) Click on the transparent areas.

What is the expected result?
Click events pass through to the window behind.

What happens instead?
Click events are handled by the keyboard.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jul 26

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

commit 489344842fc67d3c006ee95c70b35a8fff285234
Author: Darren Shen <shend@chromium.org>
Date: Thu Jul 26 00:31:19 2018

[VK] Add private extension API to set virtual keyboard hit-test rects.

In the new virtual keyboard UI, the floating virtual keyboard has a
an irregular shape. This is implemented by drawing the shape over a
transparent background, so it looks like the window has the correct
shape. However, clicking the transparent areas does not propagate to
the window behind the keyboard, breaking the illusion.

We add a new private extension API for setting a custom hit test area
for the virtual keyboard from the IME extension. By using this API, the
IME can specify the exact shape of the virtual keyboard so that events
are propagated correctly based on the shape.

Only the new UI will be calling this API, so nothing changes for the
old UI (hit test area == window bounds).

Bug:  866380 
Change-Id: I38d9cc7f263d09cb3343be6d298667bdba7dd9ea
Reviewed-on: https://chromium-review.googlesource.com/1147680
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Steven Holte <holte@chromium.org>
Reviewed-by: Yuichiro Hanada <yhanada@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578143}
[modify] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/ash/BUILD.gn
[add] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/ash/keyboard/virtual_keyboard_unittest.cc
[modify] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.h
[modify] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/extensions/browser/api/virtual_keyboard_private/virtual_keyboard_delegate.h
[modify] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/extensions/browser/api/virtual_keyboard_private/virtual_keyboard_private_api.cc
[modify] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/extensions/browser/api/virtual_keyboard_private/virtual_keyboard_private_api.h
[modify] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/extensions/browser/api/virtual_keyboard_private/virtual_keyboard_private_api_unittest.cc
[modify] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/extensions/browser/extension_function_histogram_value.h
[modify] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/extensions/common/api/virtual_keyboard_private.json
[modify] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/extensions/shell/browser/shell_virtual_keyboard_delegate.cc
[modify] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/extensions/shell/browser/shell_virtual_keyboard_delegate.h
[modify] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/tools/metrics/histograms/enums.xml
[modify] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/ui/keyboard/BUILD.gn
[modify] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/ui/keyboard/keyboard_controller.h
[add] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/ui/keyboard/shaped_window_targeter.cc
[add] https://crrev.com/489344842fc67d3c006ee95c70b35a8fff285234/ui/keyboard/shaped_window_targeter.h

Labels: M-69
Labels: Merge-Request-69
Labels: OS-Chrome
Requesting merge for c#1, thanks!
Project Member

Comment 6 by bugdroid1@chromium.org, Jul 27

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

commit dd6ec013c6ee757265e62a1079449e08be917488
Author: Darren Shen <shend@chromium.org>
Date: Fri Jul 27 01:48:12 2018

[VK] Reset hit test bounds when changing container type.

We previously added a setHitTestBounds API that allows IME to indicate
what area on the keyboard is clickable. However, if IME forgets to
set it when the UI changes (e.g. when the container type changes), then
the UI may be unusable because it is using another container type's
hit test bounds.

This patch resets the hit test bounds when we change the container
type.

Bug:  866380 
Change-Id: Ia02d958e8aa8505c82a82121e00647702da4df69
Reviewed-on: https://chromium-review.googlesource.com/1152327
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: Yuichiro Hanada <yhanada@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578515}
[modify] https://crrev.com/dd6ec013c6ee757265e62a1079449e08be917488/ash/keyboard/virtual_keyboard_unittest.cc
[modify] https://crrev.com/dd6ec013c6ee757265e62a1079449e08be917488/ui/keyboard/keyboard_controller.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Jul 27

Project Member

Comment 8 by sheriffbot@chromium.org, Jul 28

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 9 by bugdroid1@chromium.org, Jul 29

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

commit 31a59f3ac23a9263db807c4fcbd162e1b2b609e5
Author: Darren Shen <shend@chromium.org>
Date: Sun Jul 29 22:18:45 2018

[VK] Add private extension API to set virtual keyboard hit-test rects.

In the new virtual keyboard UI, the floating virtual keyboard has a
an irregular shape. This is implemented by drawing the shape over a
transparent background, so it looks like the window has the correct
shape. However, clicking the transparent areas does not propagate to
the window behind the keyboard, breaking the illusion.

We add a new private extension API for setting a custom hit test area
for the virtual keyboard from the IME extension. By using this API, the
IME can specify the exact shape of the virtual keyboard so that events
are propagated correctly based on the shape.

Only the new UI will be calling this API, so nothing changes for the
old UI (hit test area == window bounds).

Bug:  866380 
Change-Id: I38d9cc7f263d09cb3343be6d298667bdba7dd9ea
Reviewed-on: https://chromium-review.googlesource.com/1147680
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Steven Holte <holte@chromium.org>
Reviewed-by: Yuichiro Hanada <yhanada@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#578143}(cherry picked from commit 489344842fc67d3c006ee95c70b35a8fff285234)
Reviewed-on: https://chromium-review.googlesource.com/1154547
Reviewed-by: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/branch-heads/3497@{#191}
Cr-Branched-From: 271eaf50594eb818c9295dc78d364aea18c82ea8-refs/heads/master@{#576753}
[modify] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/ash/BUILD.gn
[add] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/ash/keyboard/virtual_keyboard_unittest.cc
[modify] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc
[modify] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.h
[modify] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/extensions/browser/api/virtual_keyboard_private/virtual_keyboard_delegate.h
[modify] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/extensions/browser/api/virtual_keyboard_private/virtual_keyboard_private_api.cc
[modify] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/extensions/browser/api/virtual_keyboard_private/virtual_keyboard_private_api.h
[modify] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/extensions/browser/api/virtual_keyboard_private/virtual_keyboard_private_api_unittest.cc
[modify] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/extensions/browser/extension_function_histogram_value.h
[modify] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/extensions/common/api/virtual_keyboard_private.json
[modify] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/extensions/shell/browser/shell_virtual_keyboard_delegate.cc
[modify] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/extensions/shell/browser/shell_virtual_keyboard_delegate.h
[modify] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/tools/metrics/histograms/enums.xml
[modify] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/ui/keyboard/BUILD.gn
[modify] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/ui/keyboard/keyboard_controller.h
[add] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/ui/keyboard/shaped_window_targeter.cc
[add] https://crrev.com/31a59f3ac23a9263db807c4fcbd162e1b2b609e5/ui/keyboard/shaped_window_targeter.h

Status: Fixed (was: Started)
Project Member

Comment 11 by bugdroid1@chromium.org, Jul 30

Labels: merge-merged-release-R69-10895.B
The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chromeos/overlays/chromeos-overlay/+/362f76410db1583bd82ae9299d08a3e66518d1c1

commit 362f76410db1583bd82ae9299d08a3e66518d1c1
Author: Chen Gong <chengong@google.com>
Date: Mon Jul 30 03:59:40 2018

Sign in to add a comment