[MacViews] Hook Web Content Textfield Touch Bar Support

Reland of
https://chromium-review.googlesource.com/c/chromium/src/+/1135829

The previous CL got reverted because the touch bar is initialized
in the BrowserWindowTouchBarControllerTest, which causes issues
if the touch bar API is not available. This CL addresses that issue
by only creating the BrowserWindowTouchBarController when
the API is available.

Remove Cocoa dependency from WebTextfieldTouchBar by moving
it from TabContentsController to BrowserWindowTouchBarController.

Hook up BrowserWindowTouchBarController to
AutofillPopupControllerImplMac on MacViews so that the
credit card touch bar can be updated.

Move the the logic that listens to WebContent changes to the
BrowserWindowTouchBarController. When the WebContents has
changed, BrowserWindowTouchBarController will update the
WebContents in BrowserWindowDefaultTouchBar and
WebTextfieldTouchBarController.

Modified SuggestedTextTouchBarController so that when its
WebContents has changed, it'll observe the new WebContents.

Bug: 856391
Change-Id: Ic3dfb002ecec6574502c3f1a4cdd32e9edb713f4
Reviewed-on: https://chromium-review.googlesource.com/1135829
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Sarah Chan <spqchan@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#577940}
Reviewed-on: https://chromium-review.googlesource.com/1151613
Cr-Commit-Position: refs/heads/master@{#578390}
15 files changed