[Mac] Re-Generate Text Suggestions on WebContents Update
Previously, each tab had its own SuggestedTextTouchBarController. Now, because of http://crrev/c/1151613, there is only one SuggestedTextTouchBarController per window. Because the controller does not maintain the state of each tab, as a user switches tabs, the controller needs to update its state to match the tab. When the controller's WebContents change, new suggestions should be generated for the selected text in the current tab. The methods -webContentsTextSelectionChanged:range: and -webContentsFinishedLoading were combined into a singular method, -updateTextSelection:range:, because they had very similar functionality. The parameters for -requestSuggestionsForText:inRange: were removed because they were always |text_| and |selectionRange_|. A new method was created, -webContentsChanged, to get a tab's current text and selected range and then call -updateTextSelection:range: with the proper parameters. When the controller gets a new pointer to a WebContents, the pointer may be null. To avoid calling WebContents::IsFocusedElementEditable() on a null pointer, a method -isTextfieldFocused was created to check that |webContents_| is not a null pointer and that an editable element is focused. A new SuggestedTextTouchBarControllerBrowserTest was written, SetWebContentsTest, to test that the SuggestedTextTouchBarController properly updates its current text selection based on the new WebContents. Bug: 717553 Change-Id: I356a548bbdf33b51484fd7c55a1aa5ea37be4bae Reviewed-on: https://chromium-review.googlesource.com/1153728Reviewed-by:Avi Drissman <avi@chromium.org> Reviewed-by:
Sarah Chan <spqchan@chromium.org> Commit-Queue: Tessa Nijssen <tnijssen@google.com> Cr-Commit-Position: refs/heads/master@{#579851}
Showing
Please register or sign in to comment