Reland set of Touch Bar text suggestions perf improvements and bug fixes.

This change is similar to the original (below) with the following additions:

- Skip requesting suggestions (and clear the candidate list) if the selection
  range is invalid. This caused crashes in the field:
- Skip requesting suggestions if the candidate list is collapsed.
- Request suggestions immediately when the candidate list is shown.

This relands commit d7c191591846d2138feeaa27d29db322a4cd0fe.

Original change's description:
> Fix bugs and improve perf in Touch Bar text suggestions.
> - The old implementation recreated the Touch Bar on each keystroke (including
>   when hidden, I believe), which burns a significant amount of power while
>   typing. This new implementation updates the existing candidate list, if it
>   exists and isn't collapsed.
> - Removes a bunch of support code for a behavior that was disabled in r590669.
>   It moves the remaining code into RWHV itself instead of a dedicated
>   controller class, which I have mixed feelings about, but ultimately picked
>   because after the support code was removed, most of what was left was
>   plumbing between RWHV and TextSuggestionsTouchBarController.
> - [Bigish change] Moves text suggestions out of the window and into the RWHV,
>   so that hiding and showing as focus and web contents change is left to AppKit
>   and the responder chain.
> - Fixes small lifecyle-ish bugs around when use this kind of Touch Bar — now
>   it's tied to the RWHV's input type instead of using a special
>   WebContentsTextObserver.
> Bug: 717553, 881545
> Change-Id: I8e1eff6da7918f92cfdb47465196d5841a88a7e4
> Reviewed-on:
> Commit-Queue: Sidney San Martín <>
> Reviewed-by: Avi Drissman <>
> Cr-Commit-Position: refs/heads/master@{#597371}

Bug: 717553, 881545, 893222, 893038
Change-Id: I2f8405f9784514462c2bfe8a754d3ca174f47d27
Commit-Queue: Sidney San Martín <>
Reviewed-by: Avi Drissman <>
Cr-Commit-Position: refs/heads/master@{#603741}
28 files changed