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

Issue 603389 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

Regression: Two cursors/text caret is observed on deleting the input numbers in text field.

Reported by lpa...@etouch.net, Apr 14 2016

Issue description

Chrome Version: 51.0.2704.7 (Official Build) a8bebc2b0cd3e3018b7c9f6ac698f04dd226abba-refs/branch-heads/2704@{#48} 32/64 Bit.
OS: Windows, Linux (Win 7 Aero-Enabled)

Steps:
1. Launch chrome and navigate to https://www.kotak.com/j1001mp/netapp/MainPage.jsp
2. Input numbers for eg. 12345 in CRN text box (Use the virtual keypad to enter the CRN/CUSTOMER ID)
3. Hit Backspace key to delete the input numbers and observe.

Actual: Two cursors/text caret is observed on deleting the input numbers.

Expected: Only one cursor should be seen.

This is a regression issue broken in M-51, will soon update the other info. 
 
Issue_textcaret.png
47.7 KB View Download

Comment 1 by lpa...@etouch.net, Apr 14 2016

Labels: hasbisect
Owner: chrishtr@chromium.org
Status: Assigned (was: Unconfirmed)
Manual Regression Range:
Good Build: 51.0.2695.1
Bad Build: 51.0.2696.0

Narrow Bisect:
https://chromium.googlesource.com/chromium/src/+log/8694d7b928ba2b7bfe73fbcb74d052faa5eb309c..4c9fd0d3128c87e1289e9ac1d47fec18d7107077?pretty=fuller&n=100 

Suspecting: r384374

Note: Issue is not seen in Mac OS.
Labels: ReleaseBlock-Stable
as this is recent regression adding RB-label, please change if required.
Just to update, Verified the issue on Latest Dev# 51.0.2704.7 and Latest Canary# 52.0.2711.0 on Windows and Linux and the issue is still reproducible.
Thank You.

Comment 4 by e...@chromium.org, Apr 19 2016

Components: -Blink>Layout Blink>Paint>Invalidation
Just to update, this issue is reproducible on windows 7 using chrome version 52.0.2715.0.

chrishtr@ Could you please look into this issue.

Thanks,
Just to update: Able to repro this issue on Windows 7 for Latest Canary Version - 52.0.2715.0 
Status: Started (was: Assigned)
Confirmed: it was caused by turning on partial raster (r384374). Investigating.
Cc: yosin@chromium.org
I think the bug is that when a text node is deleted, the LayoutText corresponding
to it is removed before we get around to calling FrameSelection::nodeWillBeRemoved, which prevents us from invalidating the previous caret location.

Comment 9 by yosin@chromium.org, Apr 27 2016

I could not reproduce on Win10 with

52.0.2717.0 (Official Build) canary (64-bit)
Revision	82735e00e98486689f2d6bca470b0ad18d05a985-refs/heads/master@{#389638}
OS	Windows 
Blink	537.36 (@82735e00e98486689f2d6bca470b0ad18d05a985)

crrev.com/1654123002 makes FrameSelection::nodeWillBeRemoved() to invalidate the previous caret rect.
I'm interested in why Win10 works fine.

@yosin: repro steps are:

1. Load the page
2. Click on the "1" on the virtual keyboard
3. Press the backspace key on the physical keyboard

Re FrameSelection::nodeWillBeRemoved: the problem appears to be that the LayoutObject
for the text node which is being removed is already gone by then. Debugging futher
today.

Comment 11 by yosin@chromium.org, Apr 28 2016

>#c10, fumm, I follow the steps but I could not reproduce on Win10 with M50 and M52.

Comment 12 by yoichio@google.com, Apr 28 2016

I reproduced.

1. Load the page
2. Click on the "1" on the virtual keyboard of the page.
3. Press the backspace key on the physical keyboard when cursor appears.


Labels: Merge-Request-51

Comment 15 by tin...@google.com, May 3 2016

Labels: -Merge-Request-51 Merge-Approved-51 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M51 (branch: 2704)
Project Member

Comment 16 by bugdroid1@chromium.org, May 3 2016

Labels: -merge-approved-51 merge-merged-2704
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5e4151927a5f6a0d3153264eed40fcf26ce53b75

commit 5e4151927a5f6a0d3153264eed40fcf26ce53b75
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Tue May 03 17:00:56 2016

Invalidate the previous caret location when editing text nodes.

Previously we would miss this invalidation.

BUG= 603389 

Review-Url: https://codereview.chromium.org/1931513003
Cr-Commit-Position: refs/heads/master@{#390982}
(cherry picked from commit c8811f690116723cd62bb57ff6e3ff046bc3de42)

Review URL: https://codereview.chromium.org/1950473002 .

Cr-Commit-Position: refs/branch-heads/2704@{#355}
Cr-Branched-From: 6e53600def8f60d8c632fadc70d7c1939ccea347-refs/heads/master@{#386251}

[add] https://crrev.com/5e4151927a5f6a0d3153264eed40fcf26ce53b75/third_party/WebKit/LayoutTests/paint/invalidation/invalidate-caret-before-text-node-update.html
[modify] https://crrev.com/5e4151927a5f6a0d3153264eed40fcf26ce53b75/third_party/WebKit/Source/core/dom/CharacterData.cpp
[modify] https://crrev.com/5e4151927a5f6a0d3153264eed40fcf26ce53b75/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/5e4151927a5f6a0d3153264eed40fcf26ce53b75/third_party/WebKit/Source/core/dom/Document.h
[modify] https://crrev.com/5e4151927a5f6a0d3153264eed40fcf26ce53b75/third_party/WebKit/Source/core/editing/FrameSelection.cpp
[modify] https://crrev.com/5e4151927a5f6a0d3153264eed40fcf26ce53b75/third_party/WebKit/Source/core/editing/FrameSelection.h

Status: Fixed (was: Started)
Cc: rnimmagadda@chromium.org
Labels: TE-Verified-51.0.2704.36 TE-Verified-M51
Verified the fix on Windows 7, MAC (10.11.4) & Ubuntu Trusty (14.04) for Google Chrome Beta Version - 51.0.2704.36

Screen-recording is attached.

TE-Verified Labels are added.
603389.mov
4.5 MB Download

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

Components: Blink>Editing>Selection

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

Components: -Blink>TextSelection>Caret

Sign in to add a comment