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

Issue 813457 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 12
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug

Blocked on:
issue 817501



Sign in to add a comment

Virtual Keyboard toggle does not fire resize event on Visual Viewport on Windows

Project Member Reported by shend@chromium.org, Feb 19 2018

Issue description

Chrome Version: 66.0.3350.0
OS: Windows 10 Touch

What steps will reproduce the problem?
(1) Open http://fiddle.jshell.net/nzLsLebg/2/show/light/ in tablet mode.
(2) Tap the text box.

What is the expected result?
On screen keyboard should appear. A message like "i resized to ..." should also appear.

What happens instead?
On screen keyboard appears, but no message (viewport event not fired).

This works fine on ChromeOS (66.0.3329.0).
 

Comment 1 by shend@chromium.org, Feb 19 2018

In ChromeOS, we send an internal IPC resize message when we show the keyboard. It appears that we don't send that IPC message when we're on Windows.

The code path for showing keyboard on Surface Pro goes from RenderWidget::DidHandleGestureEvent() to OnScreenKeyboardDisplayManager::DisplayVirtualKeyboard(). A possible fix is to just send the resize IPC message somewhere along that path (maybe in [1]), but we have to be careful to not trigger any unintended side effects.

[1] https://cs.chromium.org/chromium/src/content/browser/renderer_host/render_widget_host_view_aura.cc?type=cs&q=RenderWidgetHostViewAura::FocusedNodeTouched&sq=package:chromium&l=811

Comment 2 by gracec@chromium.org, Feb 20 2018

Cc: gracec@chromium.org

Comment 3 by shend@chromium.org, Feb 26 2018

Cc: girard@chromium.org ananta@chromium.org
The code is failing at [1], which seems to be old piece of Windows code for detecting whether the keyboard was shown or not. 

I don't know enough about this code to do anything with it, so cc'ing a bunch of people who might know? (sorry if you are no longer working on Chrome).

[1] https://cs.chromium.org/chromium/src/ui/base/win/osk_display_manager.cc?dr&sq=package:chromium&l=193

Comment 4 by shend@chromium.org, Mar 6 2018

Cc: dtapu...@chromium.org
Hi Dave, I saw that you recently committed [1], where you mentioned that the current code only works for < Win 10 RS1? Perhaps your follow up patch using InputPane will fix this bug?

I also did some investigation myself in [2] to find the root cause of the bug, but it sounds like the InputPanes thing is the correct fix?

[1] https://chromium-review.googlesource.com/c/chromium/src/+/941911
[2] https://chromium-review.googlesource.com/c/chromium/src/+/925123

Comment 5 by shend@chromium.org, Mar 6 2018

Blockedon: 817501

Comment 6 by shend@chromium.org, May 22 2018

Cc: -dtapu...@chromium.org shend@chromium.org
Owner: dtapu...@chromium.org
Hey dtapuska@, I think this bug will be fixed once 817501 is fixed, so do you mind if I just assign this to you? Thanks!

Comment 7 by luizp@google.com, Jun 19 2018

Labels: Hotlist-Partner-GSuite
Owner: nzolghadr@chromium.org
Components: Blink>Input
Status: Started (was: Assigned)
shend@, I just tested this on ChromeOS 67 and it doesn't seem to send the resize events when VK shows up. Also tested with Edge on latest Windows 10 (v1803) and it doesn't seem to send the resize event either. Note that both Chrome and Edge do scroll the text boxes into the view if they were blocked by appearing the VK.
Interesting...I just tested it on Chrome 69 and it seems to work fine. I just put:

    monitorEvents(window.visualViewport, 'resize')

into devtools. Then showing/hiding the VK triggers the event as expected.
Fair enough. I just tested with 69 on ChromeOS as well as Win 10 and in both cases it does send the resize events. Can you confirm this on your end too?
Hmm it doesn't seem to work on my Surface Pro with Chrome Canary, but could that be because I have an older version of Windows?

P.S. I don't know why, but the original test case in http://fiddle.jshell.net/nzLsLebg/2/show/light/ no longer works. I suspect it's because jsfiddle does weird things with frames or something.
I have tested on Win 10 Pro 1803.
Ah, I only have Win 10 Pro 1709. Let me update the machine and I'll close this bug if it's fixed.
Status: Fixed (was: Started)
Confirmed fixed on Win 10 Pro 1803.

Sign in to add a comment