[Mac] Moved TextSuggestionsTouchBarController's Range Validity Check

This is a reland of http://crrev/c/1178467.
TextSuggestionsTouchBarControllerTest.InvalidRange was modified so that
it sets the controller's text and range before calling
updateTextSelection:range:offset:.

Previously, -updateTextSelection:range:offset: could receive an invalid
range from WebContentsTextObserver::DidChangeTextSelection(). This
invalid range would then cause a crash in -requestSuggestions.

A check has been added to -updateTextSelection:range:offset: to make
sure that a selection with an invalid range is not passed to
-requestSuggestions. This should prevent future crashes.

TextSuggestionsTouchBarControllerTest.InvalidRange tests that an
invalid range does not crash the controller and is handled
properly.

Bug: 717553
Change-Id: I579cac326c3de86321286d4981c05e15f844021b
Reviewed-on: https://chromium-review.googlesource.com/1180068
Reviewed-by: Sarah Chan <spqchan@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Tessa Nijssen <tnijssen@google.com>
Cr-Commit-Position: refs/heads/master@{#584131}
2 files changed