Chromium Code Reviews| Index: chrome/browser/resources/chromeos/chromevox/cvox2/background/editing.js |
| diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/editing.js b/chrome/browser/resources/chromeos/chromevox/cvox2/background/editing.js |
| index 60580fdf46907cc59796295313c5f1c2032817e3..8d548279306ee53973a12ef4ac05cf69b443ba4c 100644 |
| --- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/editing.js |
| +++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/editing.js |
| @@ -114,12 +114,8 @@ function AutomationEditableText(node) { |
| cvox.ChromeVoxEditableTextBase.call( |
| this, node.value || '', Math.min(start, end), Math.max(start, end), |
| node.state[StateType.PROTECTED] /**password*/, cvox.ChromeVox.tts); |
| - /** @override */ |
| - this.multiline = node.state[StateType.MULTILINE] || false; |
| /** @type {!AutomationNode} @private */ |
| this.node_ = node; |
| - /** @type {Array<number>} @private */ |
| - this.lineBreaks_ = []; |
| } |
| AutomationEditableText.prototype = { |
| @@ -131,9 +127,6 @@ AutomationEditableText.prototype = { |
| onUpdate: function() { |
| var newValue = this.node_.value || ''; |
| - if (this.value != newValue) |
| - this.lineBreaks_ = []; |
| - |
| var textChangeEvent = new cvox.TextChangeEvent( |
| newValue, this.node_.textSelStart || 0, this.node_.textSelEnd || 0, |
| true /* triggered by user */); |
| @@ -143,9 +136,9 @@ AutomationEditableText.prototype = { |
| /** @override */ |
| getLineIndex: function(charIndex) { |
| - if (!this.multiline) |
| - return 0; |
| var breaks = this.node_.lineBreaks || []; |
| + if (!breaks.length) |
| + return 0; |
| var index = 0; |
| while (index < breaks.length && breaks[index] <= charIndex) |
| ++index; |
| @@ -154,9 +147,11 @@ AutomationEditableText.prototype = { |
| /** @override */ |
| getLineStart: function(lineIndex) { |
| - if (!this.multiline || lineIndex == 0) |
| + if (lineIndex == 0) |
| return 0; |
| var breaks = this.getLineBreaks_(); |
| + if (breaks.length < 1) |
| + return 0; |
| return breaks[lineIndex - 1] || this.node_.value.length; |
| }, |
| @@ -184,7 +179,7 @@ AutomationEditableText.prototype = { |
| var isFirstLine = false; // First line in a multiline field. |
| var output = new Output(); |
| var range; |
| - if (this.multiline) { |
| + if (this.getLineBreaks_().length) { |
|
David Tseng
2017/06/27 18:41:14
This isn't equivalent. Whether something is not mu
|
| var lineIndex = this.getLineIndex(this.start); |
| if (lineIndex == 0) { |
| isFirstLine = true; |