Merge to M87: Fix automation event listeners in Select-to-speak

Fixes a regression caused by http://crrev.com/c/2424854 ("Refactor
chrome.automation.EventType"), it could have manifested as
select-to-speak not updating when the page scrolls.

See http://crrev.com/c/2450663 for more context.

(cherry picked from commit 8f2546436e53c0e123f87e8aae23b59bea4bdde9)

Bug: 1110367, 1135248
Change-Id: I12e62a18093a0fc2837ec0be312d4f7261c5dc42
AX-Relnotes: none because this just fixes a regression
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2454633
Reviewed-by: David Tseng <[email protected]>
Commit-Queue: Dominic Mazzoni <[email protected]>
Cr-Original-Commit-Position: refs/heads/master@{#814738}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2472914
Reviewed-by: Dominic Mazzoni <[email protected]>
Cr-Commit-Position: refs/branch-heads/4280@{#402}
Cr-Branched-From: ea420fb963f9658c9969b6513c56b8f47efa1a2a-refs/heads/master@{#812852}
diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak.js b/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak.js
index 2646b5b..ad65a630 100644
--- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak.js
+++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak.js
@@ -366,12 +366,22 @@
         // If the user wants a certain scroll position we will respect that.
         this.scrollToSpokenNode_ = false;
 
-        // Now remove this event listener, we no longer need it.
+        // Now remove these event listeners, we no longer need them.
         root.removeEventListener(
             EventType.SCROLL_POSITION_CHANGED, listener, false);
+        root.removeEventListener(
+            EventType.SCROLL_HORIZONTAL_POSITION_CHANGED, listener, false);
+        root.removeEventListener(
+            EventType.SCROLL_VERTICAL_POSITION_CHANGED, listener, false);
       }
     };
+    // ARC++ fires the first event, Views/Web fire the horizontal/vertical
+    // scroll position changed events via AXEventGenerator.
     root.addEventListener(EventType.SCROLL_POSITION_CHANGED, listener, false);
+    root.addEventListener(
+        EventType.SCROLL_HORIZONTAL_POSITION_CHANGED, listener, false);
+    root.addEventListener(
+        EventType.SCROLL_VERTICAL_POSITION_CHANGED, listener, false);
   }
 
   /**