iron-autogrow-textarea icon indicating copy to clipboard operation
iron-autogrow-textarea copied to clipboard

Inconsistent Ctrl-Z Behavior in Chrome

Open wyattallen opened this issue 8 years ago • 10 comments

Inconsistent Ctrl-Z Behavior in Chrome

Expected outcome

When typing out text in an iron-autogrow-textarea Ctrl-Z command removes batches of text content per keypress. (Not individual characters.)

Actual outcome

Using Ctrl-Z in iron-autogrow-textarea elements inconsistently only undoes one character at a time (particularly when there is more than one line of content).

Live Demo

The demo page for this element

Steps to reproduce

  1. Focus on the first textarea of the page (the one that is a single line initially).
  2. Type a few words (but not enough to wrap to a new line).
  3. Type Ctrl-Z to undo.
  4. Note that the content is undone in batches or entirely.
  5. Type several more words (enough to cause the textarea to grow to 2 or more lines).
  6. Type Ctrl-Z to undo repeatedly.
  7. Note that the characters are undone individually until there is only one line remaining (in which case it is undone in a batch again).

Browsers Affected

The behavior was observed only in Chrome.

  • [x] Chrome
  • [ ] Firefox
  • [ ] Safari 9
  • [ ] Safari 8
  • [ ] Safari 7
  • [ ] Edge
  • [ ] IE 11
  • [ ] IE 10

wyattallen avatar Jul 29 '16 23:07 wyattallen

@notwaldorf @cdata

andybons avatar Aug 01 '16 17:08 andybons

Ping 🔔

andybons avatar Oct 04 '16 00:10 andybons

I haven't looked at this -- if anyone has any ideas why this is happening, I'd love to hear them :)

notwaldorf avatar Oct 04 '16 15:10 notwaldorf

I'm still able to reproduce this bug.

If additional context is helpful, the issue was originally filed regarding our use of iron-autogrow-textarea in PolyGerrit. It's still reproducible there also.

wyattallen avatar Apr 12 '17 17:04 wyattallen

Pinging again on this... The issue exists in the Polymer2 component as well.

kaspnilsson avatar Jun 10 '17 00:06 kaspnilsson

@notwaldorf Played around with this a little bit, and narrowed down the issue. When I comment out the following line, command-z works as expected

https://github.com/PolymerElements/iron-autogrow-textarea/blob/master/iron-autogrow-textarea.html#L343

Still not sure why this is. Repro-d with the iron-autogrow-textarea demo.

beckysiegel avatar Jul 18 '17 20:07 beckysiegel

This doesn't appear to be a polymer bug, but somehow there's a difference when the event handler manipulates any innerHTML attribute:

See non-polymer repro http://jsbin.com/wogided/1/edit?html,css,output Maybe a chrome bug?

I even tried to re-write the innerHTML with node creation/removal/replacement. removing/replacing nodes has the same behavior. Merely creating/appending does not. http://jsbin.com/roqaxeh/edit?html,output

beckysiegel avatar Jul 19 '17 04:07 beckysiegel

Filed https://bugs.chromium.org/p/chromium/issues/detail?id=746483

beckysiegel avatar Jul 19 '17 17:07 beckysiegel

Omg @beckysiegel, this was AMAZING sherlocking! Thanks so much!!!

notwaldorf avatar Jul 19 '17 17:07 notwaldorf

👍

beckysiegel avatar Jul 19 '17 23:07 beckysiegel