From bdd6df858e29ff64b61bae479a190987d1bd9737 Mon Sep 17 00:00:00 2001 From: Thomas Lukaszewicz Date: Thu, 21 Apr 2022 17:38:15 +0000 Subject: [PATCH] [side search] Eliminate grey flash when opening Side Search This CL eliminates the grey flash that can be seen when side search is first opened. This is done by setting the default background color of the WebContents to be transparent and setting the hosting WebView's background color to the toolbar background color. Before: https://screencast.googleplex.com/cast/NTQxMzQ3MzE1NzY0NDI4OHw1ZTRhOTEwMS1kOQ After: https://screencast.googleplex.com/cast/NjQ4MjY1MDQ3OTk4NDY0MHwwNDZhMmY5MS0wYg Bug: 1315412 Change-Id: I86a8879ddae422a3c1355924af012bd41d2adf3b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3598181 Reviewed-by: Yuheng Huang Commit-Queue: Thomas Lukaszewicz Cr-Commit-Position: refs/heads/main@{#994790} --- .../ui/side_search/side_search_tab_contents_helper.cc | 7 +++++++ .../ui/views/side_search/side_search_browser_controller.cc | 2 ++ 2 files changed, 9 insertions(+) diff --git a/chrome/browser/ui/side_search/side_search_tab_contents_helper.cc b/chrome/browser/ui/side_search/side_search_tab_contents_helper.cc index 7a7ecebbbbf251..4e22d34fd6dafe 100644 --- a/chrome/browser/ui/side_search/side_search_tab_contents_helper.cc +++ b/chrome/browser/ui/side_search/side_search_tab_contents_helper.cc @@ -23,6 +23,7 @@ #include "services/network/public/cpp/simple_url_loader.h" #include "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom.h" #include "ui/base/page_transition_types.h" +#include "ui/views/controls/webview/web_contents_set_background_color.h" #if BUILDFLAG(ENABLE_EXTENSIONS) #include "chrome/browser/extensions/tab_helper.h" @@ -175,6 +176,12 @@ void SideSearchTabContentsHelper::CreateSidePanelContents() { side_panel_contents_ = content::WebContents::Create(content::WebContents::CreateParams( web_contents()->GetBrowserContext(), nullptr)); + + // Apply a transparent background color so that we fallback to the hosting + // side panel view's background color. + views::WebContentsSetBackgroundColor::CreateForWebContentsWithColor( + side_panel_contents_.get(), SK_ColorTRANSPARENT); + task_manager::WebContentsTags::CreateForTabContents( side_panel_contents_.get()); diff --git a/chrome/browser/ui/views/side_search/side_search_browser_controller.cc b/chrome/browser/ui/views/side_search/side_search_browser_controller.cc index 5411e8b210db5a..db46987839b0aa 100644 --- a/chrome/browser/ui/views/side_search/side_search_browser_controller.cc +++ b/chrome/browser/ui/views/side_search/side_search_browser_controller.cc @@ -11,6 +11,7 @@ #include "chrome/browser/feature_engagement/tracker_factory.h" #include "chrome/browser/ui/browser_element_identifiers.h" #include "chrome/browser/ui/chrome_pages.h" +#include "chrome/browser/ui/color/chrome_color_id.h" #include "chrome/browser/ui/layout_constants.h" #include "chrome/browser/ui/page_action/page_action_icon_type.h" #include "chrome/browser/ui/side_search/side_search_utils.h" @@ -284,6 +285,7 @@ views::WebView* ConfigureSidePanel(views::View* side_panel, views::kFlexBehaviorKey, views::FlexSpecification(views::MinimumFlexSizeRule::kScaleToZero, views::MaximumFlexSizeRule::kUnbounded)); + web_view->SetBackground(views::CreateThemedSolidBackground(kColorToolbar)); side_panel->AddChildView(std::move(container));