iron-autogrow-textarea
iron-autogrow-textarea copied to clipboard
Inconsistent Ctrl-Z Behavior in Chrome
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
- Focus on the first textarea of the page (the one that is a single line initially).
- Type a few words (but not enough to wrap to a new line).
- Type
Ctrl-Z
to undo. - Note that the content is undone in batches or entirely.
- Type several more words (enough to cause the textarea to grow to 2 or more lines).
- Type
Ctrl-Z
to undo repeatedly. - 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
@notwaldorf @cdata
Ping 🔔
I haven't looked at this -- if anyone has any ideas why this is happening, I'd love to hear them :)
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.
Pinging again on this... The issue exists in the Polymer2 component as well.
@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.
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
Filed https://bugs.chromium.org/p/chromium/issues/detail?id=746483
Omg @beckysiegel, this was AMAZING sherlocking! Thanks so much!!!
👍