Reland "Switching Previews triggering from the IO thread to the UI thread"

This is a reland of 310c6fa1909da00f001303a6498878e987487b8a

This was caused by a CL that landed on Friday morning that was missing a
RunUntilIdle (that was added for the rest of the tests in the file).

https://chromium-review.googlesource.com/c/chromium/src/+/1289086 added
the failing test. The delta for the reland is adding a RunUntilIdle.

Original change's description:
> Switching Previews triggering from the IO thread to the UI thread
>
> This CL moves previews triggering from the IO thread
> (ChromeResourceDispatcherHostDelegate) to the UI thread
> (ChromeContentBrowserClient). The new call sites occur in
> NavigationRequest and update the previews_state in
> CommonNavigationParams held by the NavigationRequest directly. This
> means PreviewsDeciderImpl is being moved to the UI thread.
>
> Significant changes:
> - PreviewsDeciderImpl is now owned by the PreviewsUIService instead of
> profile IO data.
> - PreviewsUserData is now entirely a UI thread notion. For now, we use
> PreviewsUITabHelper to manage its lifetime, but it could move to
> NavigationHandle (if NavigationHandle already supported UserData,
> that solution would be ideal).
> - ChromeNavigationData is update to remove PreviewsUserData and
> PreviewsState (the latter has moved into PreviewsUserData and there is a
> notion of Allowed PreviewsState and committed PreviewsState)
> - Offline Previews committed checks use the OfflinePreviewsTabHelper
> instead of PreviewsUserData now that we are on the same thread.
> - Cleanup on ResourceRequestInfo to remove PreviewsState setter as well
> as cleanup to remove PreviewsState from being passed back out of the
> loader code into NavigationRequest.
> - There is a TODO to re-evaluate PreviewsState during redirects, which
> will *not* be plumbed into the network service, so DataReductionProxy
> Previews will not be updated.
>
> Bug: 842233
> Change-Id: I80a3044a4c84734b877f8ebcbe5a4bb2c2900dbb
> Reviewed-on: https://chromium-review.googlesource.com/c/1266196
> Commit-Queue: Ryan Sturm <ryansturm@chromium.org>
> Reviewed-by: Jochen Eisinger <jochen@chromium.org>
> Reviewed-by: Camille Lamy <clamy@chromium.org>
> Reviewed-by: Tarun Bansal <tbansal@chromium.org>
> Reviewed-by: Matt Menke <mmenke@chromium.org>
> Reviewed-by: Jian Li <jianli@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#601298}

Bug: 842233,897385
Change-Id: I4ff029a45edf3a1ac84f409fb3326d6767f03fd8

TBR=jochen@chromium.org,clamy@chromium.org,tbansal@chromium.org,mmenke@chromium.org,jianli@chromium.org

Change-Id: I4ff029a45edf3a1ac84f409fb3326d6767f03fd8
Reviewed-on: https://chromium-review.googlesource.com/c/1292955
Reviewed-by: Ryan Sturm <ryansturm@chromium.org>
Commit-Queue: Ryan Sturm <ryansturm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601426}
65 files changed