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

Issue 633376 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 1
Type: Bug-Regression

Blocking:
issue 635724



Sign in to add a comment

Arrow Right key should not scroll window when caret is in text field

Project Member Reported by kbr@chromium.org, Aug 1 2016

Issue description

Version: 54.0.2815.0 (Official Build) canary (64-bit)
OS: Mac OS X (haven't tried on other platforms though)

What steps will reproduce the problem?
(1) Navigate to  http://crbug.com/628823 
(2) Click in the CC: list
(3) Use the right arrow to scroll forward

What is the expected output?

Expect the cursor to get to the end of the line.

What do you see instead?

The cursor seems to get stuck going back and forth at the last name in the CC: list. This works fine in Firefox, so it's not a problem with Monorail.

It might be related to the display of the autocomplete drop-down for peoples' email addresses.

I noticed this regression a few Canaries ago but failed to file it then, and am surprised it's lasted this long. I imagine quite a few sites are broken by this so am marking it P1 and a release blocker. Please triage this right away. Thanks.

 

Comment 1 by yosin@chromium.org, Aug 2 2016

Components: -Blink>Editing Blink>TextSelection
Labels: -Pri-1 -ReleaseBlock-Beta OS-Linux OS-Windows Pri-2
Status: Available (was: Untriaged)
I could re-produce with M51 stable, so this isn't regression.

Lower to Pri-2, since this bug exists at least May 31, it may from begining, we have 
no report about this.

Remove Release-Block, since this doesn't prevent users to interact with text field.

Simpler steps to re-produce:
(1) Navigate to https://jsfiddle.net/mgfc457f/
(2) Click in text field
(3) Hit End key to locate caret end of text field
(4) Use the right arrow to scroll forward

Actual behavior:
Horizontal scroll to show long line.

Edge and Firefox behave this.

Expected behavior:
Should not scroll






Comment 2 by yosin@chromium.org, Aug 2 2016

Summary: Arrow Left key should not scroll window when caret is in text field (was: Forward/backward through cc: list broken on crbug.com)

Comment 3 by yosin@chromium.org, Aug 2 2016

In #c1's step, Shift+ArrowRight doesn't scroll window.

Comment 4 by yosin@chromium.org, Aug 2 2016

Components: -UI>Input
It seems following two statements in FrameSelection::revealSelection() returns different |rect|, but they should be same.
 - rect = LayoutRect(absoluteCaretBounds())
 - rect = LayoutRect(absoluteCaretBoundsOf(createVisiblePosition(extent()))

Comment 5 by kbr@chromium.org, Aug 2 2016

Labels: -Type-Bug -Pri-2 M-54 Pri-1 Type-Bug-Regression
It does prevent correct interaction with the text field. I can't get the cursor to go to the end of the line to append more email addresses. Raising back to P1 and marking ReleaseBlock-Stable again. We should fix this for M54, even if it regressed in M51 or earlier.

Comment 6 by yosin@chromium.org, Aug 3 2016

Scroll is caused by scrollViewWithKeyboard() in WebViewImpl::keyEventDefault().
When ArrowRight down at end of text field, FrameSelection::modify("move", "forward", "character") returns false as event not handled, then WebViewImpl::keyEventDefault() does scroll.

Comment 7 by yosin@chromium.org, Aug 3 2016

Owner: yosin@chromium.org
Status: Started (was: Available)
In review: http://crrev.com/2200833007
Project Member

Comment 8 by bugdroid1@chromium.org, Aug 5 2016

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

commit 8e786c79ce204adb73db01db98f5a606c8365c2a
Author: yosin <yosin@chromium.org>
Date: Fri Aug 05 05:34:03 2016

Change return value of FrameSelection::modify() to prevent unnecessary window scrolling

This patch changes return value of |FrameSelection::modify()| to prevent
unnecessary window scrolling by returning true, indicating user action is
processed. Note: for spacial navigation case, |FrameSelection::modify()| returns
false to allow default key event handler of spacial navigation to move
focus to another element.

Before this patch, hitting right arrow key at end of text field causes
window scrolling by WebViewImpl::keyEventDefault() due by
|FrameSelection::modify()| returns false since selection isn't changed.

BUG= 633376 
TEST=run_webkit_unit_tests --gtest_filter=FrameSelectionTest.ModifyWithUserTriggered

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

[modify] https://crrev.com/8e786c79ce204adb73db01db98f5a606c8365c2a/third_party/WebKit/Source/core/editing/FrameSelection.cpp
[modify] https://crrev.com/8e786c79ce204adb73db01db98f5a606c8365c2a/third_party/WebKit/Source/core/editing/FrameSelectionTest.cpp

Comment 9 by yosin@chromium.org, Aug 5 2016

Status: Fixed (was: Started)

Comment 10 by kbr@chromium.org, Aug 8 2016

Status: Started (was: Fixed)
This is still broken in 54.0.2823.0 (Official Build) canary (64-bit).

Revision: c6b7050c321314686730fb679a7122341f16c7c2-refs/heads/master@{#410278}

As an example, go to http://crbug.com/633053 , click the CC: field, and try to use Option + Right arrow (on Mac OS) to scroll to the end of the field. The cursor will start cycling between a few positions but will never reach the right side.

Comment 11 by kbr@chromium.org, Aug 8 2016

The current behavior is that every time the caret blinks, the cursor jumps to a different position on the line, once scrolled to the right past a certain point.

Summary: Arrow Right key should not scroll window when caret is in text field (was: Arrow Left key should not scroll window when caret is in text field)
Status: Fixed (was: Started)
kbr@, since scrolling bug is fixed, could you file another bug for Move Right by Word bug?

BTW, we, I and two Mac users, could not reproduce Option+Right (Mac), Ctrl+Right (Win/Linux), Move Right by Word, with Canary 54.0.2823.0, in #c10.

I update sample with numbering of words in text field.
https://jsfiddle.net/mgfc457f/1/

If you use this example, and record a word for start of "cycling" and end of "cycling" are helpful.

Thanks!


Comment 14 by kbr@chromium.org, Aug 9 2016

Blocking: 635724

Comment 15 by kbr@chromium.org, Aug 9 2016

Filed  Issue 635724  about the continued problems.

Cc: rnimmagadda@chromium.org
Labels: TE-Verified-M54 TE-Verified-54.0.2824.0 TE-Verified-54.0.2823.0
Verified the fix on Windows 7, MAC (10.11.6) for Google Chrome Dev Version - 54.0.2824.0 and Ubuntu Trusty (14.04) on Chrome Dev Version - 54.0.2823.0

Screen-recording is attached.

TE-Verified Labels are added.
633376.mov
2.7 MB Download

Comment 17 by tkent@chromium.org, Oct 12 2016

Components: -Blink>TextSelection Blink>Editing>Selection

Sign in to add a comment