commit | 3d248fc52fbaae7e7b37ed5f5b4dc545f31462a5 | [log] [tgz] |
---|---|---|
author | Tessa Nijssen <tnijssen@google.com> | Wed Aug 01 17:38:08 2018 |
committer | Commit Bot <commit-bot@chromium.org> | Wed Aug 01 17:38:08 2018 |
tree | 7ba98ee5fa2bf10e624124b8404588e8af44061d | |
parent | 6c3c55e4139b914f554edfba8b83ecbcdc48754f [diff] |
[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/1153728 Reviewed-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}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .