From 618a92e298625cebba9aa1f2d212c62548ddd34d Mon Sep 17 00:00:00 2001 From: Peter Kasting Date: Wed, 22 Sep 2021 16:45:49 +0000 Subject: [PATCH] Port ImageModel and ThemedVectorImage to color pipeline. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: 1249645 Change-Id: I897f36cdf9f3cd95cc1fba56b058c49d3b75315d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3170344 Reviewed-by: David Trainor Reviewed-by: Xiyuan Xia Reviewed-by: Peter Boström Commit-Queue: Peter Kasting Cr-Commit-Position: refs/heads/main@{#923899} --- .../views/search_result_tile_item_view.cc | 2 +- ash/app_list/views/search_result_view.cc | 2 +- .../holding_space/holding_space_tray.cc | 5 +- .../holding_space_view_delegate.cc | 18 ++++--- chrome/browser/apps/app_service/menu_util.cc | 5 +- .../arc_external_protocol_dialog.cc | 5 +- .../request_system_proxy_credentials_view.cc | 4 +- .../profiles/profile_avatar_icon_util.cc | 7 ++- .../recovery/recovery_install_global_error.cc | 6 +-- .../click_to_call_context_menu_observer.cc | 5 +- .../shared_clipboard_context_menu_observer.cc | 5 +- .../browser/ui/app_list/app_context_menu.cc | 5 +- .../ui/app_list/extension_app_utils.cc | 8 +-- .../arc/arc_app_reinstall_app_result.cc | 5 +- .../sharesheet/sharesheet_target_button.cc | 4 +- .../ash/shelf/extension_shelf_context_menu.cc | 3 +- .../ui/ash/shelf/shelf_context_menu.cc | 3 +- chrome/browser/ui/bookmarks/bookmark_utils.cc | 13 ++--- .../sharing_hub/sharing_hub_sub_menu_model.cc | 8 +-- chrome/browser/ui/toolbar/app_menu_model.cc | 9 ++-- .../ui/toolbar/recent_tabs_sub_menu_model.cc | 6 +-- .../autofill_popup_view_native_views.cc | 5 +- ...autofill_error_dialog_view_native_views.cc | 3 +- .../payments/card_unmask_prompt_views.cc | 5 +- .../local_card_migration_dialog_view.cc | 5 +- .../autofill/payments/migratable_card_view.cc | 6 +-- .../autofill/save_address_profile_view.cc | 11 ++-- .../autofill/update_address_profile_view.cc | 8 +-- .../ui/views/bookmarks/bookmark_bar_view.cc | 2 +- .../bookmarks/bookmark_drag_drop_views.cc | 9 ++-- .../views/content_setting_bubble_contents.cc | 3 +- .../ui/views/download/download_item_view.cc | 11 ++-- .../extension_install_friction_dialog_view.cc | 8 +-- .../file_system_access_usage_bubble_view.cc | 3 +- .../views/frame/glass_browser_frame_view.cc | 2 +- .../ui/views/location_bar/star_menu_model.cc | 9 ++-- .../media_router/cast_dialog_sink_button.cc | 8 +-- .../page_info/accuracy_tip_bubble_view.cc | 5 +- .../views/page_info/page_info_view_factory.cc | 50 ++++++++----------- .../move_to_account_store_bubble_view.cc | 4 +- .../ui/views/passwords/password_items_view.cc | 4 +- .../passwords/password_save_update_view.cc | 4 +- .../payments/cvc_unmask_view_controller.cc | 4 +- .../payments/payment_request_views_util.cc | 4 +- .../payments/payment_sheet_view_controller.cc | 4 +- ...file_handling_permission_request_dialog.cc | 4 +- .../permission_prompt_bubble_view.cc | 6 +-- .../policy/enterprise_startup_dialog_view.cc | 4 +- .../ui/views/profiles/incognito_menu_view.cc | 9 ++-- .../ui/views/profiles/profile_menu_view.cc | 5 +- .../views/profiles/profile_menu_view_base.cc | 5 +- .../send_tab_to_self_bubble_device_button.cc | 3 +- .../send_tab_to_self_toolbar_icon_view.cc | 8 +-- .../ui/views/sharing/sharing_dialog_view.cc | 6 +-- .../sharing_hub_bubble_action_button.cc | 4 +- chrome/browser/ui/views/tab_icon_view.cc | 12 ++--- ...b_app_identity_update_confirmation_view.cc | 4 +- ui/base/BUILD.gn | 1 + ui/base/DEPS | 1 + ui/base/models/image_model.cc | 5 +- ui/base/models/image_model.h | 16 +++--- ui/base/models/image_model_unittest.cc | 43 ++++++++++------ ui/base/models/simple_menu_model_unittest.cc | 3 +- ui/native_theme/themed_vector_icon.cc | 31 ++++++------ ui/native_theme/themed_vector_icon.h | 15 +++--- ui/views/background.cc | 2 +- ui/views/bubble/bubble_frame_view.cc | 2 +- ui/views/controls/button/label_button.cc | 2 +- ui/views/controls/combobox/combobox.cc | 4 +- ui/views/controls/image_view.cc | 6 +-- ui/views/controls/menu/menu_item_view.cc | 2 +- ui/views/controls/table/table_view.cc | 2 +- ui/views/image_model_utils.cc | 11 ++-- ui/views/image_model_utils.h | 6 +-- ui/views/image_model_utils_unittest.cc | 6 +-- ui/views/widget/widget.cc | 4 +- 76 files changed, 281 insertions(+), 256 deletions(-) diff --git a/ash/app_list/views/search_result_tile_item_view.cc b/ash/app_list/views/search_result_tile_item_view.cc index 3c17265157826a..9d72632c0d4a55 100644 --- a/ash/app_list/views/search_result_tile_item_view.cc +++ b/ash/app_list/views/search_result_tile_item_view.cc @@ -435,7 +435,7 @@ void SearchResultTileItemView::SetBadgeIcon(const ui::ImageModel& badge_icon, } gfx::ImageSkia badge_icon_skia = - views::GetImageSkiaFromImageModel(badge_icon, GetNativeTheme()); + views::GetImageSkiaFromImageModel(badge_icon, GetColorProvider()); if (use_badge_icon_background) { badge_icon_skia = diff --git a/ash/app_list/views/search_result_view.cc b/ash/app_list/views/search_result_view.cc index d16e09e4d6665f..143af81856e51e 100644 --- a/ash/app_list/views/search_result_view.cc +++ b/ash/app_list/views/search_result_view.cc @@ -562,7 +562,7 @@ void SearchResultView::OnMetadataChanged() { if (result() && !result()->badge_icon().IsEmpty()) { const ui::ImageModel& badge_icon = result()->badge_icon(); gfx::ImageSkia badge_icon_skia = - views::GetImageSkiaFromImageModel(badge_icon, GetNativeTheme()); + views::GetImageSkiaFromImageModel(badge_icon, GetColorProvider()); if (result()->use_badge_icon_background()) badge_icon_skia = diff --git a/ash/system/holding_space/holding_space_tray.cc b/ash/system/holding_space/holding_space_tray.cc index 743b973e4f0808..63d1aac80ea32b 100644 --- a/ash/system/holding_space/holding_space_tray.cc +++ b/ash/system/holding_space/holding_space_tray.cc @@ -39,6 +39,7 @@ #include "ui/base/dragdrop/mojom/drag_drop_types.mojom.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" +#include "ui/color/color_id.h" #include "ui/compositor/layer.h" #include "ui/compositor/scoped_layer_animation_settings.h" #include "ui/gfx/paint_vector_icon.h" @@ -517,14 +518,14 @@ HoldingSpaceTray::CreateContextMenuModel() { static_cast(HoldingSpaceCommandId::kHidePreviews), l10n_util::GetStringUTF16( IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_HIDE_PREVIEWS), - ui::ImageModel::FromVectorIcon(kVisibilityOffIcon, /*color_id=*/-1, + ui::ImageModel::FromVectorIcon(kVisibilityOffIcon, ui::kColorMenuIcon, kHoldingSpaceIconSize)); } else { context_menu_model->AddItemWithIcon( static_cast(HoldingSpaceCommandId::kShowPreviews), l10n_util::GetStringUTF16( IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_SHOW_PREVIEWS), - ui::ImageModel::FromVectorIcon(kVisibilityIcon, /*color_id=*/-1, + ui::ImageModel::FromVectorIcon(kVisibilityIcon, ui::kColorMenuIcon, kHoldingSpaceIconSize)); } diff --git a/ash/system/holding_space/holding_space_view_delegate.cc b/ash/system/holding_space/holding_space_view_delegate.cc index 7468b6c7a13ee1..b5e2cea10229e3 100644 --- a/ash/system/holding_space/holding_space_view_delegate.cc +++ b/ash/system/holding_space/holding_space_view_delegate.cc @@ -28,6 +28,7 @@ #include "ui/base/dragdrop/os_exchange_data_provider.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/simple_menu_model.h" +#include "ui/color/color_id.h" #include "ui/views/controls/menu/menu_runner.h" #include "ui/views/vector_icons.h" #include "ui/views/view.h" @@ -601,7 +602,7 @@ ui::SimpleMenuModel* HoldingSpaceViewDelegate::BuildMenuModel() { context_menu_model_->AddItemWithIcon( static_cast(HoldingSpaceCommandId::kPauseItem), l10n_util::GetStringUTF16(IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_PAUSE), - ui::ImageModel::FromVectorIcon(kPauseIcon, /*color_id=*/-1, + ui::ImageModel::FromVectorIcon(kPauseIcon, ui::kColorMenuIcon, kHoldingSpaceIconSize)); } @@ -609,7 +610,7 @@ ui::SimpleMenuModel* HoldingSpaceViewDelegate::BuildMenuModel() { context_menu_model_->AddItemWithIcon( static_cast(HoldingSpaceCommandId::kResumeItem), l10n_util::GetStringUTF16(IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_RESUME), - ui::ImageModel::FromVectorIcon(kResumeIcon, /*color_id=*/-1, + ui::ImageModel::FromVectorIcon(kResumeIcon, ui::kColorMenuIcon, kHoldingSpaceIconSize)); } @@ -617,7 +618,7 @@ ui::SimpleMenuModel* HoldingSpaceViewDelegate::BuildMenuModel() { context_menu_model_->AddItemWithIcon( static_cast(HoldingSpaceCommandId::kCancelItem), l10n_util::GetStringUTF16(IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_CANCEL), - ui::ImageModel::FromVectorIcon(kCancelIcon, /*color_id=*/-1, + ui::ImageModel::FromVectorIcon(kCancelIcon, ui::kColorMenuIcon, kHoldingSpaceIconSize)); } @@ -632,7 +633,7 @@ ui::SimpleMenuModel* HoldingSpaceViewDelegate::BuildMenuModel() { static_cast(HoldingSpaceCommandId::kShowInFolder), l10n_util::GetStringUTF16( IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_SHOW_IN_FOLDER), - ui::ImageModel::FromVectorIcon(kFolderIcon, /*color_id=*/-1, + ui::ImageModel::FromVectorIcon(kFolderIcon, ui::kColorMenuIcon, kHoldingSpaceIconSize)); std::string mime_type; @@ -648,7 +649,7 @@ ui::SimpleMenuModel* HoldingSpaceViewDelegate::BuildMenuModel() { static_cast(HoldingSpaceCommandId::kCopyImageToClipboard), l10n_util::GetStringUTF16( IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_COPY_IMAGE_TO_CLIPBOARD), - ui::ImageModel::FromVectorIcon(kCopyIcon, /*color_id=*/-1, + ui::ImageModel::FromVectorIcon(kCopyIcon, ui::kColorMenuIcon, kHoldingSpaceIconSize)); } } @@ -658,13 +659,13 @@ ui::SimpleMenuModel* HoldingSpaceViewDelegate::BuildMenuModel() { context_menu_model_->AddItemWithIcon( static_cast(HoldingSpaceCommandId::kPinItem), l10n_util::GetStringUTF16(IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_PIN), - ui::ImageModel::FromVectorIcon(views::kPinIcon, /*color_id=*/-1, + ui::ImageModel::FromVectorIcon(views::kPinIcon, ui::kColorMenuIcon, kHoldingSpaceIconSize)); } else { context_menu_model_->AddItemWithIcon( static_cast(HoldingSpaceCommandId::kUnpinItem), l10n_util::GetStringUTF16(IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_UNPIN), - ui::ImageModel::FromVectorIcon(views::kUnpinIcon, /*color_id=*/-1, + ui::ImageModel::FromVectorIcon(views::kUnpinIcon, ui::kColorMenuIcon, kHoldingSpaceIconSize)); } } @@ -674,7 +675,8 @@ ui::SimpleMenuModel* HoldingSpaceViewDelegate::BuildMenuModel() { static_cast(HoldingSpaceCommandId::kRemoveItem), l10n_util::GetStringUTF16(IDS_ASH_HOLDING_SPACE_CONTEXT_MENU_REMOVE), ui::ImageModel::FromVectorIcon(kCancelCircleOutlineIcon, - /*color_id=*/-1, kHoldingSpaceIconSize)); + ui::kColorMenuIcon, + kHoldingSpaceIconSize)); } return context_menu_model_.get(); diff --git a/chrome/browser/apps/app_service/menu_util.cc b/chrome/browser/apps/app_service/menu_util.cc index f96f2d7cc14b42..ec9907d8aed57c 100644 --- a/chrome/browser/apps/app_service/menu_util.cc +++ b/chrome/browser/apps/app_service/menu_util.cc @@ -19,6 +19,7 @@ #include "content/public/common/content_features.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/gfx/image/image_skia.h" #include "ui/gfx/vector_icon_types.h" @@ -171,7 +172,7 @@ bool PopulateNewItemFromMojoMenuItems( std::move(get_vector_icon).Run(item->command_id, item->string_id); model->AddItemWithStringIdAndIcon( item->command_id, item->string_id, - ui::ImageModel::FromVectorIcon(icon, /*color_id=*/-1, + ui::ImageModel::FromVectorIcon(icon, ui::kColorMenuIcon, ash::kAppContextMenuIconSize)); break; } @@ -182,7 +183,7 @@ bool PopulateNewItemFromMojoMenuItems( std::move(get_vector_icon).Run(item->command_id, item->string_id); model->AddActionableSubmenuWithStringIdAndIcon( item->command_id, item->string_id, submenu, - ui::ImageModel::FromVectorIcon(icon, /*color_id=*/-1, + ui::ImageModel::FromVectorIcon(icon, ui::kColorMenuIcon, ash::kAppContextMenuIconSize)); } break; diff --git a/chrome/browser/ash/arc/intent_helper/arc_external_protocol_dialog.cc b/chrome/browser/ash/arc/intent_helper/arc_external_protocol_dialog.cc index 87bd2bd1574980..11e792b83c6f0b 100644 --- a/chrome/browser/ash/arc/intent_helper/arc_external_protocol_dialog.cc +++ b/chrome/browser/ash/arc/intent_helper/arc_external_protocol_dialog.cc @@ -34,8 +34,8 @@ #include "third_party/skia/include/core/SkColor.h" #include "ui/base/models/image_model.h" #include "ui/base/window_open_disposition.h" +#include "ui/color/color_id.h" #include "ui/gfx/paint_vector_icon.h" -#include "ui/native_theme/native_theme.h" #include "url/gurl.h" using content::WebContents; @@ -68,8 +68,7 @@ ui::ImageModel CreateDeviceIcon( const gfx::VectorIcon& icon = device_type == sync_pb::SyncEnums::TYPE_TABLET ? kTabletIcon : kHardwareSmartphoneIcon; - return ui::ImageModel::FromVectorIcon( - icon, ui::NativeTheme::kColorId_DefaultIconColor, kDeviceIconSize); + return ui::ImageModel::FromVectorIcon(icon, ui::kColorIcon, kDeviceIconSize); } // Adds |devices| to |picker_entries| and returns the new list. The devices are diff --git a/chrome/browser/ash/notifications/request_system_proxy_credentials_view.cc b/chrome/browser/ash/notifications/request_system_proxy_credentials_view.cc index 4b268f50737904..8cca1ac7ef7e08 100644 --- a/chrome/browser/ash/notifications/request_system_proxy_credentials_view.cc +++ b/chrome/browser/ash/notifications/request_system_proxy_credentials_view.cc @@ -21,6 +21,7 @@ #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/events/event.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/paint_vector_icon.h" @@ -187,8 +188,7 @@ void RequestSystemProxyCredentialsView::Init() { auto error_icon = std::make_unique(); const int kIconSize = 18; error_icon->SetImage(ui::ImageModel::FromVectorIcon( - vector_icons::kInfoOutlineIcon, - ui::NativeTheme::kColorId_AlertSeverityHigh, kIconSize)); + vector_icons::kInfoOutlineIcon, ui::kColorAlertHighSeverity, kIconSize)); error_icon->SetImageSize(gfx::Size(kIconSize, kIconSize)); error_icon->SetVisible(show_error_label_); layout->AddView(std::move(error_icon)); diff --git a/chrome/browser/profiles/profile_avatar_icon_util.cc b/chrome/browser/profiles/profile_avatar_icon_util.cc index 969995c82bb5ab..677bbab491e771 100644 --- a/chrome/browser/profiles/profile_avatar_icon_util.cc +++ b/chrome/browser/profiles/profile_avatar_icon_util.cc @@ -37,6 +37,7 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/base/resource/resource_bundle.h" #include "ui/base/webui/web_ui_util.h" +#include "ui/color/color_id.h" #include "ui/gfx/canvas.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/favicon_size.h" @@ -46,7 +47,6 @@ #include "ui/gfx/image/image_skia_operations.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/gfx/skia_util.h" -#include "ui/native_theme/native_theme.h" #include "url/url_canon.h" #if defined(OS_WIN) @@ -367,9 +367,8 @@ constexpr size_t kPlaceholderAvatarIndex = 0; #endif ui::ImageModel GetGuestAvatar(int size) { - return ui::ImageModel::FromVectorIcon( - kUserAccountAvatarIcon, ui::NativeTheme::kColorId_AvatarIconGuest, - size); + return ui::ImageModel::FromVectorIcon(kUserAccountAvatarIcon, + ui::kColorAvatarIconGuest, size); } gfx::Image GetSizedAvatarIcon(const gfx::Image& image, diff --git a/chrome/browser/recovery/recovery_install_global_error.cc b/chrome/browser/recovery/recovery_install_global_error.cc index 2e991df5ff8e86..c06433d9862595 100644 --- a/chrome/browser/recovery/recovery_install_global_error.cc +++ b/chrome/browser/recovery/recovery_install_global_error.cc @@ -20,7 +20,7 @@ #include "components/prefs/pref_service.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/image_model.h" -#include "ui/native_theme/native_theme.h" +#include "ui/color/color_id.h" RecoveryInstallGlobalError::RecoveryInstallGlobalError(Profile* profile) : elevation_needed_(false), @@ -69,8 +69,8 @@ std::u16string RecoveryInstallGlobalError::MenuItemLabel() { } ui::ImageModel RecoveryInstallGlobalError::MenuItemIcon() { - return ui::ImageModel::FromVectorIcon( - kBrowserToolsUpdateIcon, ui::NativeTheme::kColorId_AlertSeverityHigh); + return ui::ImageModel::FromVectorIcon(kBrowserToolsUpdateIcon, + ui::kColorAlertHighSeverity); } void RecoveryInstallGlobalError::ExecuteMenuItem(Browser* browser) { diff --git a/chrome/browser/sharing/click_to_call/click_to_call_context_menu_observer.cc b/chrome/browser/sharing/click_to_call/click_to_call_context_menu_observer.cc index ba13eacc847a52..bb9e005b252fc7 100644 --- a/chrome/browser/sharing/click_to_call/click_to_call_context_menu_observer.cc +++ b/chrome/browser/sharing/click_to_call/click_to_call_context_menu_observer.cc @@ -16,6 +16,7 @@ #include "components/sync_device_info/device_info.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/paint_vector_icon.h" @@ -78,7 +79,7 @@ void ClickToCallContextMenuObserver::BuildMenu( IDS_CONTENT_CONTEXT_SHARING_CLICK_TO_CALL_SINGLE_DEVICE, base::UTF8ToUTF16(devices_[0]->client_name())), ui::ImageModel::FromVectorIcon(controller_->GetVectorIcon(), - /*color_id=*/-1, + ui::kColorMenuIcon, ui::SimpleMenuModel::kDefaultIconSize)); #endif } else { @@ -95,7 +96,7 @@ void ClickToCallContextMenuObserver::BuildMenu( IDS_CONTENT_CONTEXT_SHARING_CLICK_TO_CALL_MULTIPLE_DEVICES, sub_menu_model_.get(), ui::ImageModel::FromVectorIcon(controller_->GetVectorIcon(), - /*color_id=*/-1, + ui::kColorMenuIcon, ui::SimpleMenuModel::kDefaultIconSize)); #endif } diff --git a/chrome/browser/sharing/shared_clipboard/shared_clipboard_context_menu_observer.cc b/chrome/browser/sharing/shared_clipboard/shared_clipboard_context_menu_observer.cc index 9b0df0a4f72e44..e01584f23182eb 100644 --- a/chrome/browser/sharing/shared_clipboard/shared_clipboard_context_menu_observer.cc +++ b/chrome/browser/sharing/shared_clipboard/shared_clipboard_context_menu_observer.cc @@ -16,6 +16,7 @@ #include "components/sync_device_info/device_info.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/paint_vector_icon.h" @@ -75,7 +76,7 @@ void SharedClipboardContextMenuObserver::InitMenu( IDS_CONTENT_CONTEXT_SHARING_SHARED_CLIPBOARD_SINGLE_DEVICE, base::UTF8ToUTF16(devices_[0]->client_name())), ui::ImageModel::FromVectorIcon(controller_->GetVectorIcon(), - /*color_id=*/-1, + ui::kColorMenuIcon, ui::SimpleMenuModel::kDefaultIconSize)); #endif } else { @@ -92,7 +93,7 @@ void SharedClipboardContextMenuObserver::InitMenu( IDS_CONTENT_CONTEXT_SHARING_SHARED_CLIPBOARD_MULTIPLE_DEVICES, sub_menu_model_.get(), ui::ImageModel::FromVectorIcon(controller_->GetVectorIcon(), - /*color_id=*/-1, + ui::kColorMenuIcon, ui::SimpleMenuModel::kDefaultIconSize)); #endif } diff --git a/chrome/browser/ui/app_list/app_context_menu.cc b/chrome/browser/ui/app_list/app_context_menu.cc index 04acacf85eb4ee..652f4f1fc939f7 100644 --- a/chrome/browser/ui/app_list/app_context_menu.cc +++ b/chrome/browser/ui/app_list/app_context_menu.cc @@ -14,6 +14,7 @@ #include "chrome/grit/generated_resources.h" #include "components/vector_icons/vector_icons.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/color/color_id.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/gfx/vector_icon_types.h" #include "ui/views/vector_icons.h" @@ -75,7 +76,7 @@ ui::ImageModel AppContextMenu::GetIconForCommandId(int command_id) const { GetMenuItemVectorIcon(command_id, controller_->IsAppPinned(app_id_) ? IDS_APP_LIST_CONTEXT_MENU_UNPIN : IDS_APP_LIST_CONTEXT_MENU_PIN); - return ui::ImageModel::FromVectorIcon(icon, /*color_id=*/-1, + return ui::ImageModel::FromVectorIcon(icon, ui::kColorMenuIcon, ash::kAppContextMenuIconSize); } @@ -158,7 +159,7 @@ void AppContextMenu::AddContextMenuOption(ui::SimpleMenuModel* menu_model, if (!icon.is_empty()) { menu_model->AddItemWithStringIdAndIcon( command_id, string_id, - ui::ImageModel::FromVectorIcon(icon, /*color_id=*/-1, + ui::ImageModel::FromVectorIcon(icon, ui::kColorMenuIcon, ash::kAppContextMenuIconSize)); return; } diff --git a/chrome/browser/ui/app_list/extension_app_utils.cc b/chrome/browser/ui/app_list/extension_app_utils.cc index f39937868423bc..94311aed445d7e 100644 --- a/chrome/browser/ui/app_list/extension_app_utils.cc +++ b/chrome/browser/ui/app_list/extension_app_utils.cc @@ -15,6 +15,7 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/image_model.h" #include "ui/base/models/simple_menu_model.h" +#include "ui/color/color_id.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/views/controls/menu/menu_config.h" #include "ui/views/vector_icons.h" @@ -38,10 +39,9 @@ void AddMenuItemIconsForSystemApps(const std::string& app_id, const int index = start_index + i; if (menu_model->GetLabelAt(index) == l10n_util::GetStringUTF16(IDS_APP_LIST_CONTEXT_MENU_NEW_WINDOW)) { - menu_model->SetIcon( - index, ui::ImageModel::FromVectorIcon(views::kNewWindowIcon, - /*color_id=*/-1, - ash::kAppContextMenuIconSize)); + menu_model->SetIcon(index, ui::ImageModel::FromVectorIcon( + views::kNewWindowIcon, ui::kColorMenuIcon, + ash::kAppContextMenuIconSize)); } } } diff --git a/chrome/browser/ui/app_list/search/arc/arc_app_reinstall_app_result.cc b/chrome/browser/ui/app_list/search/arc/arc_app_reinstall_app_result.cc index fc42c95bff28b0..86def9088db123 100644 --- a/chrome/browser/ui/app_list/search/arc/arc_app_reinstall_app_result.cc +++ b/chrome/browser/ui/app_list/search/arc/arc_app_reinstall_app_result.cc @@ -18,10 +18,10 @@ #include "chromeos/ui/vector_icons/vector_icons.h" #include "components/vector_icons/vector_icons.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/image/image_skia_operations.h" #include "ui/gfx/paint_vector_icon.h" -#include "ui/native_theme/native_theme.h" namespace app_list { @@ -64,8 +64,7 @@ ArcAppReinstallAppResult::ArcAppReinstallAppResult( SetIcon(IconInfo(masked_app_icon)); SetChipIcon(masked_app_icon); SetBadgeIcon(ui::ImageModel::FromVectorIcon( - vector_icons::kCloudDownloadIcon, - ui::NativeTheme::kColorId_DefaultIconColor, + vector_icons::kCloudDownloadIcon, ui::kColorIcon, ash::SharedAppListConfig::instance().search_tile_badge_icon_dimension())); SetUseBadgeIconBackground(true); SetNotifyVisibilityChange(true); diff --git a/chrome/browser/ui/ash/sharesheet/sharesheet_target_button.cc b/chrome/browser/ui/ash/sharesheet/sharesheet_target_button.cc index 15cfdea85f12ae..e925ffd4a0d5dd 100644 --- a/chrome/browser/ui/ash/sharesheet/sharesheet_target_button.cc +++ b/chrome/browser/ui/ash/sharesheet/sharesheet_target_button.cc @@ -12,6 +12,7 @@ #include "chrome/browser/ui/ash/sharesheet/sharesheet_constants.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/gfx/font_list.h" #include "ui/views/controls/image_view.h" #include "ui/views/layout/box_layout.h" @@ -38,8 +39,7 @@ std::unique_ptr CreateImageView( return image; } else if (vector_icon != nullptr) { return std::make_unique(ui::ImageModel::FromVectorIcon( - *vector_icon, ui::NativeTheme::kColorId_DefaultIconColor, - sharesheet::kIconSize)); + *vector_icon, ui::kColorIcon, sharesheet::kIconSize)); } NOTREACHED(); return nullptr; diff --git a/chrome/browser/ui/ash/shelf/extension_shelf_context_menu.cc b/chrome/browser/ui/ash/shelf/extension_shelf_context_menu.cc index 532bb56f68adb5..3b6905b82a38e4 100644 --- a/chrome/browser/ui/ash/shelf/extension_shelf_context_menu.cc +++ b/chrome/browser/ui/ash/shelf/extension_shelf_context_menu.cc @@ -25,6 +25,7 @@ #include "content/public/browser/context_menu_params.h" #include "extensions/browser/extension_prefs.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/display/scoped_display_for_new_windows.h" #include "ui/display/screen.h" #include "ui/gfx/paint_vector_icon.h" @@ -209,7 +210,7 @@ void ExtensionShelfContextMenu::CreateOpenNewSubmenu( open_new_submenu_model_.get(), ui::ImageModel::FromVectorIcon( GetCommandIdVectorIcon(ash::MENU_OPEN_NEW, GetLaunchTypeStringId()), - /*color_id=*/-1, ash::kAppContextMenuIconSize)); + ui::kColorMenuIcon, ash::kAppContextMenuIconSize)); } extensions::LaunchType ExtensionShelfContextMenu::GetLaunchType() const { diff --git a/chrome/browser/ui/ash/shelf/shelf_context_menu.cc b/chrome/browser/ui/ash/shelf/shelf_context_menu.cc index ecd87295cab02b..3224e22cb3f824 100644 --- a/chrome/browser/ui/ash/shelf/shelf_context_menu.cc +++ b/chrome/browser/ui/ash/shelf/shelf_context_menu.cc @@ -30,6 +30,7 @@ #include "components/services/app_service/public/mojom/types.mojom.h" #include "components/vector_icons/vector_icons.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/display/types/display_constants.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/views/vector_icons.h" @@ -287,7 +288,7 @@ void ShelfContextMenu::AddContextMenuOption(ui::SimpleMenuModel* menu_model, if (!icon.is_empty()) { menu_model->AddItemWithStringIdAndIcon( type, string_id, - ui::ImageModel::FromVectorIcon(icon, /*color_id=*/-1, + ui::ImageModel::FromVectorIcon(icon, ui::kColorMenuIcon, ash::kAppContextMenuIconSize)); return; } diff --git a/chrome/browser/ui/bookmarks/bookmark_utils.cc b/chrome/browser/ui/bookmarks/bookmark_utils.cc index 99fc56b9a92996..72317752325d4b 100644 --- a/chrome/browser/ui/bookmarks/bookmark_utils.cc +++ b/chrome/browser/ui/bookmarks/bookmark_utils.cc @@ -38,6 +38,8 @@ #if defined(TOOLKIT_VIEWS) #include "chrome/grit/theme_resources.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" +#include "ui/color/color_provider.h" #include "ui/gfx/canvas.h" #include "ui/gfx/color_utils.h" #include "ui/gfx/image/image_skia_source.h" @@ -273,7 +275,7 @@ ui::ImageModel GetBookmarkFolderIcon(BookmarkFolderIconType icon_type, #endif const auto generator = [](int default_id, BookmarkFolderIconType icon_type, absl::variant color, - const ui::NativeTheme* native_theme) { + const ui::ColorProvider* color_provider) { gfx::ImageSkia folder; #if defined(OS_WIN) // TODO(bsep): vectorize the Windows versions: crbug.com/564112 @@ -284,9 +286,8 @@ ui::ImageModel GetBookmarkFolderIcon(BookmarkFolderIconType icon_type, if (absl::holds_alternative(color)) { sk_color = absl::get(color); } else { - DCHECK(native_theme); - sk_color = native_theme->GetSystemColor( - static_cast(absl::get(color))); + DCHECK(color_provider); + sk_color = color_provider->GetColor(absl::get(color)); } const int white_id = (icon_type == BookmarkFolderIconType::kNormal) ? IDR_FOLDER_CLOSED_WHITE @@ -310,8 +311,8 @@ ui::ImageModel GetBookmarkFolderIcon(BookmarkFolderIconType icon_type, const ui::ThemedVectorIcon icon = absl::holds_alternative(color) ? ui::ThemedVectorIcon(id, absl::get(color)) - : ui::ThemedVectorIcon(id, absl::get(color)); - folder = icon.GetImageSkia(native_theme); + : ui::ThemedVectorIcon(id, absl::get(color)); + folder = icon.GetImageSkia(color_provider); #endif return gfx::ImageSkia(std::make_unique(folder), folder.size()); diff --git a/chrome/browser/ui/sharing_hub/sharing_hub_sub_menu_model.cc b/chrome/browser/ui/sharing_hub/sharing_hub_sub_menu_model.cc index 438a4aac186b54..0c627c87f41770 100644 --- a/chrome/browser/ui/sharing_hub/sharing_hub_sub_menu_model.cc +++ b/chrome/browser/ui/sharing_hub/sharing_hub_sub_menu_model.cc @@ -19,6 +19,7 @@ #include "chrome/grit/generated_resources.h" #include "content/public/browser/web_contents.h" #include "ui/base/models/simple_menu_model.h" +#include "ui/color/color_id.h" namespace sharing_hub { @@ -79,9 +80,10 @@ void SharingHubSubMenuModel::Build(content::WebContents* web_contents) { AddSeparator(ui::NORMAL_SEPARATOR); for (auto action : third_party_actions) { if (action.third_party_icon.isNull()) { - AddItemWithIcon(action.command_id, action.title, - ui::ImageModel::FromVectorIcon(*action.icon, /*color*/ -1, - /*icon_size*/ 16)); + AddItemWithIcon( + action.command_id, action.title, + ui::ImageModel::FromVectorIcon(*action.icon, ui::kColorMenuIcon, + /*icon_size*/ 16)); } else { AddItemWithIcon(action.command_id, action.title, ui::ImageModel::FromImageSkia(action.third_party_icon)); diff --git a/chrome/browser/ui/toolbar/app_menu_model.cc b/chrome/browser/ui/toolbar/app_menu_model.cc index f9b53d6c694f84..a6b1af8029c5cb 100644 --- a/chrome/browser/ui/toolbar/app_menu_model.cc +++ b/chrome/browser/ui/toolbar/app_menu_model.cc @@ -84,12 +84,12 @@ #include "ui/base/models/image_model.h" #include "ui/base/models/simple_menu_model.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/image/image.h" #include "ui/gfx/image/image_skia.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/gfx/text_elider.h" -#include "ui/native_theme/native_theme.h" #if BUILDFLAG(GOOGLE_CHROME_BRANDING) || BUILDFLAG(IS_CHROMEOS_ASH) #include "base/feature_list.h" @@ -947,10 +947,9 @@ void AppMenuModel::Build() { AddHighlightedItemWithIcon( IDC_SHOW_MANAGEMENT_PAGE, chrome::GetManagedUiMenuItemLabel(browser_->profile()), - ui::ImageModel::FromVectorIcon( - vector_icons::kBusinessIcon, - ui::NativeTheme::kColorId_HighlightedMenuItemForegroundColor, - kIconSize)); + ui::ImageModel::FromVectorIcon(vector_icons::kBusinessIcon, + ui::kColorMenuItemForegroundHighlighted, + kIconSize)); } #endif // !BUILDFLAG(IS_CHROMEOS_ASH) diff --git a/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc b/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc index 06e5983a1ce900..0e9d3f03a51424 100644 --- a/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc +++ b/chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.cc @@ -49,10 +49,10 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/image_model.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/favicon_size.h" #include "ui/gfx/paint_vector_icon.h" -#include "ui/native_theme/native_theme.h" #include "ui/resources/grit/ui_resources.h" namespace { @@ -69,8 +69,8 @@ bool SortSessionsByRecency(const sync_sessions::SyncedSession* s1, } ui::ImageModel CreateFavicon(const gfx::VectorIcon& icon) { - return ui::ImageModel::FromVectorIcon( - icon, ui::NativeTheme::kColorId_MenuIconColor, gfx::kFaviconSize); + return ui::ImageModel::FromVectorIcon(icon, ui::kColorMenuIcon, + gfx::kFaviconSize); } } // namespace diff --git a/chrome/browser/ui/views/autofill/autofill_popup_view_native_views.cc b/chrome/browser/ui/views/autofill/autofill_popup_view_native_views.cc index e3c9b0adb734ac..12179ff66d6f7c 100644 --- a/chrome/browser/ui/views/autofill/autofill_popup_view_native_views.cc +++ b/chrome/browser/ui/views/autofill/autofill_popup_view_native_views.cc @@ -36,13 +36,13 @@ #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/favicon_size.h" #include "ui/gfx/font.h" #include "ui/gfx/geometry/rect_conversions.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/gfx/shadow_value.h" -#include "ui/native_theme/native_theme.h" #include "ui/views/accessibility/view_accessibility.h" #include "ui/views/background.h" #include "ui/views/border.h" @@ -133,8 +133,7 @@ std::unique_ptr ImageViewFromImageSkia( std::unique_ptr ImageViewFromVectorIcon( const gfx::VectorIcon& vector_icon) { return std::make_unique(ui::ImageModel::FromVectorIcon( - vector_icon, ui::NativeTheme::kColorId_DefaultIconColor, - gfx::kFaviconSize)); + vector_icon, ui::kColorIcon, gfx::kFaviconSize)); } std::unique_ptr GetIconImageViewByName( diff --git a/chrome/browser/ui/views/autofill/payments/autofill_error_dialog_view_native_views.cc b/chrome/browser/ui/views/autofill/payments/autofill_error_dialog_view_native_views.cc index b662e291c2ebe3..f876f342226cfa 100644 --- a/chrome/browser/ui/views/autofill/payments/autofill_error_dialog_view_native_views.cc +++ b/chrome/browser/ui/views/autofill/payments/autofill_error_dialog_view_native_views.cc @@ -11,6 +11,7 @@ #include "components/constrained_window/constrained_window_views.h" #include "components/vector_icons/vector_icons.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/gfx/vector_icon_utils.h" #include "ui/views/bubble/bubble_frame_view.h" #include "ui/views/controls/image_view.h" @@ -69,7 +70,7 @@ views::View* AutofillErrorDialogViewNativeViews::GetContentsView() { AddChildView( std::make_unique(ui::ImageModel::FromVectorIcon( - vector_icons::kErrorIcon, ui::NativeTheme::kColorId_AlertSeverityHigh, + vector_icons::kErrorIcon, ui::kColorAlertHighSeverity, gfx::GetDefaultSizeOfVectorIcon(vector_icons::kErrorIcon)))); auto* label = AddChildView(std::make_unique( diff --git a/chrome/browser/ui/views/autofill/payments/card_unmask_prompt_views.cc b/chrome/browser/ui/views/autofill/payments/card_unmask_prompt_views.cc index 405e0887ff3f03..0881de9fdef3c7 100644 --- a/chrome/browser/ui/views/autofill/payments/card_unmask_prompt_views.cc +++ b/chrome/browser/ui/views/autofill/payments/card_unmask_prompt_views.cc @@ -154,8 +154,7 @@ void CardUnmaskPromptViews::GotVerificationResult( // error we do not intend to return to a previous state. auto error_icon = std::make_unique(ui::ImageModel::FromVectorIcon( - kBrowserToolsErrorIcon, - ui::NativeTheme::kColorId_AlertSeverityHigh)); + kBrowserToolsErrorIcon, ui::kColorAlertHighSeverity)); layout->StartRow(1.0, 0); layout->AddView(std::move(error_icon)); @@ -390,7 +389,7 @@ void CardUnmaskPromptViews::InitIfNecessary() { temporary_error->SetVisible(false); temporary_error->AddChildView( std::make_unique(ui::ImageModel::FromVectorIcon( - vector_icons::kErrorIcon, ui::NativeTheme::kColorId_AlertSeverityHigh, + vector_icons::kErrorIcon, ui::kColorAlertHighSeverity, gfx::GetDefaultSizeOfVectorIcon(vector_icons::kErrorIcon)))); auto error_label = std::make_unique( diff --git a/chrome/browser/ui/views/autofill/payments/local_card_migration_dialog_view.cc b/chrome/browser/ui/views/autofill/payments/local_card_migration_dialog_view.cc index b08d2d50883b69..aec5e5dc72ce23 100644 --- a/chrome/browser/ui/views/autofill/payments/local_card_migration_dialog_view.cc +++ b/chrome/browser/ui/views/autofill/payments/local_card_migration_dialog_view.cc @@ -36,6 +36,7 @@ #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/geometry/insets.h" #include "ui/gfx/paint_vector_icon.h" @@ -102,8 +103,8 @@ class TipTextContainer : public views::View { constexpr int kTipImageSize = 16; auto* lightbulb_outline_image = AddChildView( std::make_unique(ui::ImageModel::FromVectorIcon( - vector_icons::kLightbulbOutlineIcon, - ui::NativeTheme::kColorId_AlertSeverityMedium, kTipImageSize))); + vector_icons::kLightbulbOutlineIcon, ui::kColorAlertMediumSeverity, + kTipImageSize))); lightbulb_outline_image->SetVerticalAlignment( views::ImageView::Alignment::kLeading); diff --git a/chrome/browser/ui/views/autofill/payments/migratable_card_view.cc b/chrome/browser/ui/views/autofill/payments/migratable_card_view.cc index ff600edf71142b..32bc6ecd6d4e57 100644 --- a/chrome/browser/ui/views/autofill/payments/migratable_card_view.cc +++ b/chrome/browser/ui/views/autofill/payments/migratable_card_view.cc @@ -17,6 +17,7 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/native_theme/native_theme.h" #include "ui/views/animation/ink_drop.h" @@ -133,8 +134,7 @@ MigratableCardView::GetMigratableCardDescriptionView( migratable_card_description_view->AddChildView( std::make_unique()); migration_succeeded_image->SetImage(ui::ImageModel::FromVectorIcon( - vector_icons::kCheckCircleIcon, - ui::NativeTheme::kColorId_AlertSeverityLow, + vector_icons::kCheckCircleIcon, ui::kColorAlertLowSeverity, kMigrationResultImageSize)); break; } @@ -143,7 +143,7 @@ MigratableCardView::GetMigratableCardDescriptionView( migratable_card_description_view->AddChildView( std::make_unique()); migration_failed_image->SetImage(ui::ImageModel::FromVectorIcon( - vector_icons::kErrorIcon, ui::NativeTheme::kColorId_AlertSeverityHigh, + vector_icons::kErrorIcon, ui::kColorAlertHighSeverity, kMigrationResultImageSize)); break; } diff --git a/chrome/browser/ui/views/autofill/save_address_profile_view.cc b/chrome/browser/ui/views/autofill/save_address_profile_view.cc index 15467209fc4704..5452bbeadbc87b 100644 --- a/chrome/browser/ui/views/autofill/save_address_profile_view.cc +++ b/chrome/browser/ui/views/autofill/save_address_profile_view.cc @@ -21,6 +21,7 @@ #include "components/vector_icons/vector_icons.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/simple_combobox_model.h" +#include "ui/color/color_id.h" #include "ui/gfx/color_utils.h" #include "ui/views/controls/button/image_button.h" #include "ui/views/controls/button/image_button_factory.h" @@ -55,8 +56,8 @@ int ComboboxIconSize() { std::unique_ptr CreateAddressSectionIcon( const gfx::VectorIcon& icon) { auto icon_view = std::make_unique(); - icon_view->SetImage(ui::ImageModel::FromVectorIcon( - icon, ui::NativeTheme::kColorId_SecondaryIconColor, kIconSize)); + icon_view->SetImage( + ui::ImageModel::FromVectorIcon(icon, ui::kColorIconSecondary, kIconSize)); return icon_view; } @@ -171,8 +172,7 @@ std::unique_ptr CreateNicknameEditableCombobox() { /*text=*/u"Home", /*dropdown_secondary_text=*/std::u16string(), /*icon=*/ - ui::ImageModel::FromVectorIcon(kNavigateHomeIcon, - ui::NativeTheme::kColorId_DefaultIconColor, + ui::ImageModel::FromVectorIcon(kNavigateHomeIcon, ui::kColorIcon, ComboboxIconSize())); ui::SimpleComboboxModel::Item work( @@ -180,8 +180,7 @@ std::unique_ptr CreateNicknameEditableCombobox() { /*dropdown_secondary_text=*/std::u16string(), /*icon=*/ ui::ImageModel::FromVectorIcon(vector_icons::kBusinessIcon, - ui::NativeTheme::kColorId_DefaultIconColor, - ComboboxIconSize())); + ui::kColorIcon, ComboboxIconSize())); std::vector nicknames{std::move(home), std::move(work)}; diff --git a/chrome/browser/ui/views/autofill/update_address_profile_view.cc b/chrome/browser/ui/views/autofill/update_address_profile_view.cc index 68efada7ab3c49..c8fdc6fbdeb99b 100644 --- a/chrome/browser/ui/views/autofill/update_address_profile_view.cc +++ b/chrome/browser/ui/views/autofill/update_address_profile_view.cc @@ -16,6 +16,7 @@ #include "components/strings/grit/components_strings.h" #include "components/vector_icons/vector_icons.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/color/color_id.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/views/controls/button/image_button.h" #include "ui/views/controls/button/image_button_factory.h" @@ -53,7 +54,7 @@ const gfx::VectorIcon& GetVectorIconForType(ServerFieldType type) { std::unique_ptr CreateValuesView( const std::vector& diff, bool are_new_values, - ui::NativeTheme::ColorId icon_color) { + ui::ColorId icon_color) { auto view = std::make_unique(); view->SetLayoutManager(std::make_unique()) ->SetOrientation(views::LayoutOrientation::kVertical) @@ -123,9 +124,8 @@ void AddValuesRow(views::GridLayout* layout, /*h_align=*/views::GridLayout::LEADING, /*v_align=*/views::GridLayout::LEADING); } - ui::NativeTheme::ColorId icon_color = - are_new_values ? ui::NativeTheme::kColorId_ProminentButtonColor - : ui::NativeTheme::kColorId_SecondaryIconColor; + ui::ColorId icon_color = are_new_values ? ui::kColorButtonBackgroundProminent + : ui::kColorIconSecondary; layout->AddView(CreateValuesView(diff, are_new_values, icon_color), /*col_span=*/1, /*row_span=*/1, diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc index 719ed42e5060f2..5fd75746c2e4b3 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc @@ -1442,7 +1442,7 @@ void BookmarkBarView::WriteDragDataForView(View* sender, button_drag_utils::SetDragImage( node->url(), node->GetTitle(), - views::GetImageSkiaFromImageModel(icon, GetNativeTheme()), &press_pt, + views::GetImageSkiaFromImageModel(icon, GetColorProvider()), &press_pt, *widget, data); WriteBookmarkDragData(node, data); } diff --git a/chrome/browser/ui/views/bookmarks/bookmark_drag_drop_views.cc b/chrome/browser/ui/views/bookmarks/bookmark_drag_drop_views.cc index 336ad17f57f6c4..716df4b5f5c8c1 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_drag_drop_views.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_drag_drop_views.cc @@ -223,17 +223,18 @@ class BookmarkDragHelper : public bookmarks::BaseBookmarkModelObserver { const ui::ImageModel& icon) { auto* widget = views::Widget::GetWidgetForNativeView(web_contents_->GetNativeView()); - ui::NativeTheme* native_theme = widget ? widget->GetNativeTheme() : nullptr; + ui::ColorProvider* color_provider = + widget ? widget->GetColorProvider() : nullptr; gfx::ImageSkia drag_image( std::make_unique( drag_node->GetTitle(), - // It's not clear if the "generator without native theme" case can + // It's not clear if the "generator without color provider" case can // occur, but if it can, better to wrongly show the default favicon // than to crash. - (icon.IsEmpty() || (icon.IsImageGenerator() && !native_theme)) + (icon.IsEmpty() || (icon.IsImageGenerator() && !color_provider)) ? *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( IDR_DEFAULT_FAVICON) - : views::GetImageSkiaFromImageModel(icon, native_theme), + : views::GetImageSkiaFromImageModel(icon, color_provider), count_), BookmarkDragImageSource::kBookmarkDragImageSize); diff --git a/chrome/browser/ui/views/content_setting_bubble_contents.cc b/chrome/browser/ui/views/content_setting_bubble_contents.cc index 648500d36f35b6..d4ce399d905e06 100644 --- a/chrome/browser/ui/views/content_setting_bubble_contents.cc +++ b/chrome/browser/ui/views/content_setting_bubble_contents.cc @@ -30,6 +30,7 @@ #include "ui/base/models/combobox_model.h" #include "ui/base/models/image_model.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/gfx/color_utils.h" #include "ui/gfx/geometry/insets.h" #include "ui/gfx/geometry/size.h" @@ -246,7 +247,7 @@ void ContentSettingBubbleContents::ListItemContainer::AddItem( item_icon->SetBorder( views::CreateEmptyBorder(kTitleDescriptionListItemInset)); item_icon->SetImage(ui::ImageModel::FromVectorIcon( - *item.image, ui::NativeTheme::kColorId_LabelEnabledColor, + *item.image, ui::kColorLabelForeground, GetLayoutConstant(LOCATION_BAR_ICON_SIZE), item.has_blocked_badge ? &vector_icons::kBlockedBadgeIcon : &gfx::kNoneIcon)); diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/browser/ui/views/download/download_item_view.cc index 568b998641bb56..b3ef64422b7009 100644 --- a/chrome/browser/ui/views/download/download_item_view.cc +++ b/chrome/browser/ui/views/download/download_item_view.cc @@ -67,6 +67,7 @@ #include "ui/base/text/bytes_formatting.h" #include "ui/base/theme_provider.h" #include "ui/base/ui_base_types.h" +#include "ui/color/color_id.h" #include "ui/compositor/layer.h" #include "ui/display/screen.h" #include "ui/events/event.h" @@ -83,8 +84,6 @@ #include "ui/gfx/skia_util.h" #include "ui/gfx/text_constants.h" #include "ui/gfx/text_elider.h" -#include "ui/native_theme/native_theme.h" -#include "ui/native_theme/native_theme_color_id.h" #include "ui/native_theme/themed_vector_icon.h" #include "ui/views/accessibility/view_accessibility.h" #include "ui/views/animation/ink_drop.h" @@ -682,7 +681,7 @@ void DownloadItemView::OnPaint(gfx::Canvas* canvas) { if (mode_ != download::DownloadItemMode::kNormal) { VLOG(2) << "Overlaying warning icon in mode " << static_cast(mode_); const gfx::ImageSkia icon = ui::ThemedVectorIcon(GetIcon().GetVectorIcon()) - .GetImageSkia(GetNativeTheme()); + .GetImageSkia(GetColorProvider()); gfx::RectF bounds = GetIconBounds(); canvas->DrawImageInt(icon, bounds.x(), bounds.y()); } @@ -1094,10 +1093,10 @@ ui::ImageModel DownloadItemView::GetIcon() const { // new UX is fully launched. const int non_error_icon_size = UseNewWarnings() ? 20 : 27; const auto kWarning = ui::ImageModel::FromVectorIcon( - vector_icons::kWarningIcon, ui::NativeTheme::kColorId_AlertSeverityMedium, + vector_icons::kWarningIcon, ui::kColorAlertMediumSeverity, non_error_icon_size); const auto kError = ui::ImageModel::FromVectorIcon( - vector_icons::kErrorIcon, ui::NativeTheme::kColorId_AlertSeverityHigh, + vector_icons::kErrorIcon, ui::kColorAlertHighSeverity, UseNewWarnings() ? 20 : 24); const auto danger_type = model_->GetDangerType(); @@ -1127,7 +1126,7 @@ ui::ImageModel DownloadItemView::GetIcon() const { (danger_type == download::DOWNLOAD_DANGER_TYPE_ASYNC_SCANNING) ? views::kInfoIcon : vector_icons::kHelpIcon, - ui::NativeTheme::kColorId_DefaultIconColor, non_error_icon_size); + ui::kColorIcon, non_error_icon_size); case download::DOWNLOAD_DANGER_TYPE_BLOCKED_UNSUPPORTED_FILETYPE: case download::DOWNLOAD_DANGER_TYPE_DEEP_SCANNED_SAFE: case download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS: diff --git a/chrome/browser/ui/views/extensions/extension_install_friction_dialog_view.cc b/chrome/browser/ui/views/extensions/extension_install_friction_dialog_view.cc index c2ac18724478dc..5b707c24a7e85f 100644 --- a/chrome/browser/ui/views/extensions/extension_install_friction_dialog_view.cc +++ b/chrome/browser/ui/views/extensions/extension_install_friction_dialog_view.cc @@ -26,8 +26,8 @@ #include "extensions/common/constants.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" +#include "ui/color/color_id.h" #include "ui/gfx/paint_vector_icon.h" -#include "ui/native_theme/native_theme_color_id.h" #include "ui/views/controls/button/label_button.h" #include "ui/views/controls/scroll_view.h" #include "ui/views/controls/styled_label.h" @@ -212,9 +212,9 @@ ExtensionInstallFrictionDialogView::~ExtensionInstallFrictionDialogView() { // override ui::ImageModel ExtensionInstallFrictionDialogView::GetWindowIcon() { - return ui::ImageModel::FromVectorIcon( - vector_icons::kGppMaybeIcon, - ui::NativeTheme::kColorId_AlertSeverityMedium, kWarningIconSize); + return ui::ImageModel::FromVectorIcon(vector_icons::kGppMaybeIcon, + ui::kColorAlertMediumSeverity, + kWarningIconSize); } void ExtensionInstallFrictionDialogView::OnLearnMoreLinkClicked() { diff --git a/chrome/browser/ui/views/file_system_access/file_system_access_usage_bubble_view.cc b/chrome/browser/ui/views/file_system_access/file_system_access_usage_bubble_view.cc index 715b980b3cbce4..094e3a25d387a2 100644 --- a/chrome/browser/ui/views/file_system_access/file_system_access_usage_bubble_view.cc +++ b/chrome/browser/ui/views/file_system_access/file_system_access_usage_bubble_view.cc @@ -33,6 +33,7 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_header_macros.h" #include "ui/base/metadata/metadata_impl_macros.h" +#include "ui/color/color_id.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/views/controls/button/image_button.h" #include "ui/views/controls/button/image_button_factory.h" @@ -266,7 +267,7 @@ ui::ImageModel FileSystemAccessUsageBubbleView::FilePathListModel::GetIcon( static_cast(row) < files_.size() ? vector_icons::kInsertDriveFileOutlineIcon : vector_icons::kFolderOpenIcon, - ui::NativeTheme::kColorId_DefaultIconColor, kIconSize); + ui::kColorIcon, kIconSize); } std::u16string FileSystemAccessUsageBubbleView::FilePathListModel::GetTooltip( diff --git a/chrome/browser/ui/views/frame/glass_browser_frame_view.cc b/chrome/browser/ui/views/frame/glass_browser_frame_view.cc index 70c4dace7cedbc..7bb3a3471c3cfe 100644 --- a/chrome/browser/ui/views/frame/glass_browser_frame_view.cc +++ b/chrome/browser/ui/views/frame/glass_browser_frame_view.cc @@ -808,7 +808,7 @@ void GlassBrowserFrameView::StopThrobber() { HICON big_icon = nullptr; gfx::ImageSkia icon = views::GetImageSkiaFromImageModel( - browser_view()->GetWindowIcon(), GetNativeTheme()); + browser_view()->GetWindowIcon(), GetColorProvider()); if (!icon.isNull()) { // Keep previous icons alive as long as they are referenced by the HWND. diff --git a/chrome/browser/ui/views/location_bar/star_menu_model.cc b/chrome/browser/ui/views/location_bar/star_menu_model.cc index c54e26c4d11362..8a450da2c98d2e 100644 --- a/chrome/browser/ui/views/location_bar/star_menu_model.cc +++ b/chrome/browser/ui/views/location_bar/star_menu_model.cc @@ -8,7 +8,7 @@ #include "chrome/grit/generated_resources.h" #include "components/omnibox/browser/vector_icons.h" #include "ui/base/models/image_model.h" -#include "ui/native_theme/native_theme.h" +#include "ui/color/color_id.h" StarMenuModel::StarMenuModel(ui::SimpleMenuModel::Delegate* delegate, bool bookmarked, @@ -27,8 +27,7 @@ void StarMenuModel::Build(bool bookmarked, CommandBookmark, bookmarked ? IDS_STAR_VIEW_MENU_EDIT_BOOKMARK : IDS_STAR_VIEW_MENU_ADD_BOOKMARK, - ui::ImageModel::FromVectorIcon( - omnibox::kStarIcon, ui::NativeTheme::kColorId_DefaultIconColor)); + ui::ImageModel::FromVectorIcon(omnibox::kStarIcon, ui::kColorIcon)); AddItemWithStringIdAndIcon( exists_as_unread_in_read_later ? CommandMarkAsRead : CommandMoveToReadLater, @@ -36,9 +35,7 @@ void StarMenuModel::Build(bool bookmarked, : IDS_STAR_VIEW_MENU_MOVE_TO_READ_LATER, ui::ImageModel::FromVectorIcon( exists_as_unread_in_read_later ? kReadLaterIcon : kReadLaterAddIcon, - can_move_to_read_later - ? ui::NativeTheme::kColorId_DefaultIconColor - : ui::NativeTheme::kColorId_DisabledIconColor)); + can_move_to_read_later ? ui::kColorIcon : ui::kColorIconDisabled)); int index = GetIndexOfCommandId(CommandMoveToReadLater); if (index != -1) { SetEnabledAt(index, can_move_to_read_later); diff --git a/chrome/browser/ui/views/media_router/cast_dialog_sink_button.cc b/chrome/browser/ui/views/media_router/cast_dialog_sink_button.cc index 0191351f4462ad..db5617ffdde91c 100644 --- a/chrome/browser/ui/views/media_router/cast_dialog_sink_button.cc +++ b/chrome/browser/ui/views/media_router/cast_dialog_sink_button.cc @@ -33,6 +33,7 @@ #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" #include "ui/base/ui_base_types.h" +#include "ui/color/color_id.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/native_theme/native_theme.h" @@ -76,10 +77,9 @@ std::unique_ptr CreatePrimaryIconForSink(const UIMediaSink& sink) { return CreatePrimaryIconView(gfx::CreateVectorIcon( kGenericStopIcon, kPrimaryIconSize, gfx::kGoogleBlue500)); } else if (sink.issue) { - auto icon = - std::make_unique(ui::ImageModel::FromVectorIcon( - ::vector_icons::kInfoOutlineIcon, - ui::NativeTheme::kColorId_DefaultIconColor, kPrimaryIconSize)); + auto icon = std::make_unique( + ui::ImageModel::FromVectorIcon(::vector_icons::kInfoOutlineIcon, + ui::kColorIcon, kPrimaryIconSize)); icon->SetBorder(views::CreateEmptyBorder(kPrimaryIconBorder)); return icon; } else if (sink.state == UIMediaSinkState::CONNECTING || diff --git a/chrome/browser/ui/views/page_info/accuracy_tip_bubble_view.cc b/chrome/browser/ui/views/page_info/accuracy_tip_bubble_view.cc index 464bc6d9ad4e4d..abf2fb67b6847b 100644 --- a/chrome/browser/ui/views/page_info/accuracy_tip_bubble_view.cc +++ b/chrome/browser/ui/views/page_info/accuracy_tip_bubble_view.cc @@ -28,6 +28,7 @@ #include "content/public/browser/navigation_handle.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/gfx/geometry/insets.h" #include "ui/views/bubble/bubble_frame_view.h" #include "ui/views/controls/button/md_text_button.h" @@ -60,8 +61,8 @@ std::unique_ptr CreateRow(const std::u16string& text, provider->GetDistanceMetric(views::DISTANCE_RELATED_LABEL_HORIZONTAL); auto icon_view = std::make_unique(); - icon_view->SetImage(ui::ImageModel::FromVectorIcon( - icon, ui::NativeTheme::kColorId_DefaultIconColor, kVectorIconSize)); + icon_view->SetImage( + ui::ImageModel::FromVectorIcon(icon, ui::kColorIcon, kVectorIconSize)); icon_view->SetProperty(views::kMarginsKey, gfx::Insets(0, 0, 0, icon_margin)); icon_view->SetProperty(views::kCrossAxisAlignmentKey, views::LayoutAlignment::kStart); diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrome/browser/ui/views/page_info/page_info_view_factory.cc index a5f2f8d22d1f7c..7012c43a623b68 100644 --- a/chrome/browser/ui/views/page_info/page_info_view_factory.cc +++ b/chrome/browser/ui/views/page_info/page_info_view_factory.cc @@ -20,6 +20,7 @@ #include "components/strings/grit/components_strings.h" #include "components/vector_icons/vector_icons.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/color/color_id.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/views/bubble/bubble_frame_view.h" #include "ui/views/controls/button/image_button.h" @@ -295,7 +296,7 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( ? setting == CONTENT_SETTING_BLOCK || setting == CONTENT_SETTING_ASK : setting == CONTENT_SETTING_BLOCK; return ui::ImageModel::FromVectorIcon( - *icon, ui::NativeTheme::kColorId_DefaultIconColor, GetIconSize(), + *icon, ui::kColorIcon, GetIconSize(), show_blocked_badge ? &vector_icons::kBlockedBadgeIcon : nullptr); } @@ -329,63 +330,57 @@ const ui::ImageModel PageInfoViewFactory::GetChosenObjectIcon( } return ui::ImageModel::FromVectorIcon( - *icon, ui::NativeTheme::kColorId_DefaultIconColor, GetIconSize(), + *icon, ui::kColorIcon, GetIconSize(), deleted ? &vector_icons::kBlockedBadgeIcon : nullptr); } // static const ui::ImageModel PageInfoViewFactory::GetValidCertificateIcon() { - return ui::ImageModel::FromVectorIcon( - vector_icons::kCertificateIcon, - ui::NativeTheme::kColorId_DefaultIconColor, GetIconSize()); + return ui::ImageModel::FromVectorIcon(vector_icons::kCertificateIcon, + ui::kColorIcon, GetIconSize()); } // static const ui::ImageModel PageInfoViewFactory::GetInvalidCertificateIcon() { - return ui::ImageModel::FromVectorIcon( - vector_icons::kCertificateIcon, - ui::NativeTheme::kColorId_DefaultIconColor, GetIconSize(), - &vector_icons::kBlockedBadgeIcon); + return ui::ImageModel::FromVectorIcon(vector_icons::kCertificateIcon, + ui::kColorIcon, GetIconSize(), + &vector_icons::kBlockedBadgeIcon); } // static const ui::ImageModel PageInfoViewFactory::GetSiteSettingsIcon() { - return ui::ImageModel::FromVectorIcon( - vector_icons::kSettingsIcon, ui::NativeTheme::kColorId_DefaultIconColor); + return ui::ImageModel::FromVectorIcon(vector_icons::kSettingsIcon, + ui::kColorIcon); } // static const ui::ImageModel PageInfoViewFactory::GetVrSettingsIcon() { - return ui::ImageModel::FromVectorIcon( - vector_icons::kVrHeadsetIcon, ui::NativeTheme::kColorId_DefaultIconColor); + return ui::ImageModel::FromVectorIcon(vector_icons::kVrHeadsetIcon, + ui::kColorIcon); } // static const ui::ImageModel PageInfoViewFactory::GetLaunchIcon() { - return ui::ImageModel::FromVectorIcon( - vector_icons::kLaunchIcon, ui::NativeTheme::kColorId_SecondaryIconColor, - GetIconSize()); + return ui::ImageModel::FromVectorIcon(vector_icons::kLaunchIcon, + ui::kColorIconSecondary, GetIconSize()); } // static const ui::ImageModel PageInfoViewFactory::GetConnectionNotSecureIcon() { - return ui::ImageModel::FromVectorIcon( - vector_icons::kNotSecureWarningIcon, - ui::NativeTheme::kColorId_AlertSeverityHigh); + return ui::ImageModel::FromVectorIcon(vector_icons::kNotSecureWarningIcon, + ui::kColorAlertHighSeverity); } // static const ui::ImageModel PageInfoViewFactory::GetConnectionSecureIcon() { - return ui::ImageModel::FromVectorIcon( - vector_icons::kHttpsValidIcon, - ui::NativeTheme::kColorId_DefaultIconColor); + return ui::ImageModel::FromVectorIcon(vector_icons::kHttpsValidIcon, + ui::kColorIcon); } // static const ui::ImageModel PageInfoViewFactory::GetOpenSubpageIcon() { - return ui::ImageModel::FromVectorIcon( - vector_icons::kSubmenuArrowIcon, - ui::NativeTheme::kColorId_DefaultIconColor); + return ui::ImageModel::FromVectorIcon(vector_icons::kSubmenuArrowIcon, + ui::kColorIcon); } // static @@ -395,7 +390,6 @@ const ui::ImageModel PageInfoViewFactory::GetManagedPermissionIcon( info.source == content_settings::SETTING_SOURCE_EXTENSION ? vector_icons::kExtensionIcon : vector_icons::kBusinessIcon; - return ui::ImageModel::FromVectorIcon( - managed_vector_icon, ui::NativeTheme::kColorId_DefaultIconColor, - GetIconSize()); + return ui::ImageModel::FromVectorIcon(managed_vector_icon, ui::kColorIcon, + GetIconSize()); } diff --git a/chrome/browser/ui/views/passwords/move_to_account_store_bubble_view.cc b/chrome/browser/ui/views/passwords/move_to_account_store_bubble_view.cc index 6598fa6dc2e3eb..4ae3386ecd5ac4 100644 --- a/chrome/browser/ui/views/passwords/move_to_account_store_bubble_view.cc +++ b/chrome/browser/ui/views/passwords/move_to_account_store_bubble_view.cc @@ -21,6 +21,7 @@ #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/gfx/canvas.h" #include "ui/gfx/color_utils.h" #include "ui/gfx/favicon_size.h" @@ -233,8 +234,7 @@ MoveToAccountStoreBubbleView::MovingBannerView::MovingBannerView( auto arrow_view = std::make_unique(ui::ImageModel::FromVectorIcon( - kChevronRightIcon, ui::NativeTheme::kColorId_DefaultIconColor, - gfx::kFaviconSize)); + kChevronRightIcon, ui::kColorIcon, gfx::kFaviconSize)); arrow_view->SetFlipCanvasOnPaintForRTLUI(true); AddChildView(std::move(arrow_view)); diff --git a/chrome/browser/ui/views/passwords/password_items_view.cc b/chrome/browser/ui/views/passwords/password_items_view.cc index 6b51bbf492242f..19640c5162a628 100644 --- a/chrome/browser/ui/views/passwords/password_items_view.cc +++ b/chrome/browser/ui/views/passwords/password_items_view.cc @@ -26,6 +26,7 @@ #include "ui/base/models/image_model.h" #include "ui/base/models/simple_combobox_model.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/gfx/favicon_size.h" #include "ui/gfx/image/image_skia.h" #include "ui/gfx/paint_vector_icon.h" @@ -197,8 +198,7 @@ void PasswordItemsView::PasswordRow::AddPasswordRow( // Use a globe fallback until the actual favicon is loaded. layout->AddView( std::make_unique(ui::ImageModel::FromVectorIcon( - kGlobeIcon, ui::NativeTheme::kColorId_DefaultIconColor, - gfx::kFaviconSize))); + kGlobeIcon, ui::kColorIcon, gfx::kFaviconSize))); } else { layout->AddView(std::make_unique()) ->SetImage(parent_->favicon_.AsImageSkia()); diff --git a/chrome/browser/ui/views/passwords/password_save_update_view.cc b/chrome/browser/ui/views/passwords/password_save_update_view.cc index 7815940d373283..6de6f16b7d30c3 100644 --- a/chrome/browser/ui/views/passwords/password_save_update_view.cc +++ b/chrome/browser/ui/views/passwords/password_save_update_view.cc @@ -39,6 +39,7 @@ #include "ui/base/models/image_model.h" #include "ui/base/models/simple_combobox_model.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/color_utils.h" #include "ui/gfx/vector_icon_utils.h" @@ -241,8 +242,7 @@ std::unique_ptr CreateDestinationCombobox( ui::ImageModel primary_account_avatar, bool is_using_account_store) { ui::ImageModel computer_image = ui::ImageModel::FromVectorIcon( - kComputerWithCircleBackgroundIcon, - ui::NativeTheme::kColorId_DefaultIconColor, ComboboxIconSize()); + kComputerWithCircleBackgroundIcon, ui::kColorIcon, ComboboxIconSize()); ui::SimpleComboboxModel::Item account_destination( /*text=*/l10n_util::GetStringUTF16( diff --git a/chrome/browser/ui/views/payments/cvc_unmask_view_controller.cc b/chrome/browser/ui/views/payments/cvc_unmask_view_controller.cc index e54927c260271c..6e67d2b14bc5ba 100644 --- a/chrome/browser/ui/views/payments/cvc_unmask_view_controller.cc +++ b/chrome/browser/ui/views/payments/cvc_unmask_view_controller.cc @@ -35,6 +35,7 @@ #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/views/border.h" #include "ui/views/controls/button/md_text_button.h" @@ -279,8 +280,7 @@ void CvcUnmaskViewController::FillContentView(views::View* content_view) { auto error_icon = std::make_unique(); error_icon->SetID(static_cast(DialogViewID::CVC_ERROR_ICON)); error_icon->SetImage(ui::ImageModel::FromVectorIcon( - vector_icons::kWarningIcon, ui::NativeTheme::kColorId_AlertSeverityHigh, - 16)); + vector_icons::kWarningIcon, ui::kColorAlertHighSeverity, 16)); error_icon->SetVisible(false); layout->AddView(std::move(error_icon)); diff --git a/chrome/browser/ui/views/payments/payment_request_views_util.cc b/chrome/browser/ui/views/payments/payment_request_views_util.cc index 731236f8712f70..5886874d431fb6 100644 --- a/chrome/browser/ui/views/payments/payment_request_views_util.cc +++ b/chrome/browser/ui/views/payments/payment_request_views_util.cc @@ -33,6 +33,7 @@ #include "ui/base/metadata/metadata_header_macros.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/compositor/layer.h" #include "ui/gfx/canvas.h" #include "ui/gfx/color_utils.h" @@ -491,8 +492,7 @@ std::unique_ptr CreateWarningView(const std::u16string& message, auto warning_icon = std::make_unique(); warning_icon->SetCanProcessEventsWithinSubtree(false); warning_icon->SetImage(ui::ImageModel::FromVectorIcon( - vector_icons::kWarningIcon, ui::NativeTheme::kColorId_AlertSeverityHigh, - 16)); + vector_icons::kWarningIcon, ui::kColorAlertHighSeverity, 16)); header_view->AddChildView(std::move(warning_icon)); label->set_enabled_color_id(ui::NativeTheme::kColorId_AlertSeverityHigh); } diff --git a/chrome/browser/ui/views/payments/payment_sheet_view_controller.cc b/chrome/browser/ui/views/payments/payment_sheet_view_controller.cc index 516198b2b844f0..e02ee22931bbf2 100644 --- a/chrome/browser/ui/views/payments/payment_sheet_view_controller.cc +++ b/chrome/browser/ui/views/payments/payment_sheet_view_controller.cc @@ -43,6 +43,7 @@ #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/color_utils.h" #include "ui/gfx/font.h" @@ -281,8 +282,7 @@ class PaymentSheetRowBuilder { std::unique_ptr extra_content_view) { auto chevron = std::make_unique(ui::ImageModel::FromVectorIcon( - vector_icons::kSubmenuArrowIcon, - ui::NativeTheme::kColorId_DefaultIconColor, + vector_icons::kSubmenuArrowIcon, ui::kColorIcon, gfx::GetDefaultSizeOfVectorIcon(vector_icons::kSubmenuArrowIcon))); chevron->SetCanProcessEventsWithinSubtree(false); std::unique_ptr section = CreatePaymentSheetRow( diff --git a/chrome/browser/ui/views/permission_bubble/file_handling_permission_request_dialog.cc b/chrome/browser/ui/views/permission_bubble/file_handling_permission_request_dialog.cc index a8018ffb06b96d..c715e3e6d0508d 100644 --- a/chrome/browser/ui/views/permission_bubble/file_handling_permission_request_dialog.cc +++ b/chrome/browser/ui/views/permission_bubble/file_handling_permission_request_dialog.cc @@ -22,6 +22,7 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/gfx/text_elider.h" #include "ui/views/controls/button/checkbox.h" #include "ui/views/controls/label.h" @@ -78,8 +79,7 @@ FileHandlingPermissionRequestDialog::FileHandlingPermissionRequestDialog( constexpr int kIconSize = 16; auto* icon = files_view->AddChildView( std::make_unique(ui::ImageModel::FromVectorIcon( - vector_icons::kDescriptionIcon, - ui::NativeTheme::kColorId_DefaultIconColor, kIconSize))); + vector_icons::kDescriptionIcon, ui::kColorIcon, kIconSize))); const int icon_margin = views::LayoutProvider::Get()->GetDistanceMetric( views::DISTANCE_RELATED_LABEL_HORIZONTAL); icon->SetProperty(views::kMarginsKey, gfx::Insets(0, 0, 0, icon_margin)); diff --git a/chrome/browser/ui/views/permission_bubble/permission_prompt_bubble_view.cc b/chrome/browser/ui/views/permission_bubble/permission_prompt_bubble_view.cc index bdf3cccaff2f80..c7aeb84058c544 100644 --- a/chrome/browser/ui/views/permission_bubble/permission_prompt_bubble_view.cc +++ b/chrome/browser/ui/views/permission_bubble/permission_prompt_bubble_view.cc @@ -31,10 +31,10 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/gfx/geometry/insets.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/gfx/text_constants.h" -#include "ui/native_theme/native_theme.h" #include "ui/views/bubble/bubble_frame_view.h" #include "ui/views/controls/button/image_button.h" #include "ui/views/controls/button/image_button_factory.h" @@ -210,8 +210,8 @@ void PermissionPromptBubbleView::AddRequestLine( constexpr int kPermissionIconSize = 18; auto* icon = line_container->AddChildView( std::make_unique(ui::ImageModel::FromVectorIcon( - permissions::GetIconId(request->request_type()), - ui::NativeTheme::kColorId_DefaultIconColor, kPermissionIconSize))); + permissions::GetIconId(request->request_type()), ui::kColorIcon, + kPermissionIconSize))); icon->SetVerticalAlignment(views::ImageView::Alignment::kLeading); auto* label = line_container->AddChildView( diff --git a/chrome/browser/ui/views/policy/enterprise_startup_dialog_view.cc b/chrome/browser/ui/views/policy/enterprise_startup_dialog_view.cc index d0587edcbe136f..a190dc35d179d9 100644 --- a/chrome/browser/ui/views/policy/enterprise_startup_dialog_view.cc +++ b/chrome/browser/ui/views/policy/enterprise_startup_dialog_view.cc @@ -22,6 +22,7 @@ #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/native_theme/native_theme.h" @@ -146,8 +147,7 @@ void EnterpriseStartupDialogView::DisplayErrorMessage( std::unique_ptr text = CreateText(error_message); auto error_icon = std::make_unique(ui::ImageModel::FromVectorIcon( - kBrowserToolsErrorIcon, ui::NativeTheme::kColorId_AlertSeverityHigh, - kIconSize)); + kBrowserToolsErrorIcon, ui::kColorAlertHighSeverity, kIconSize)); if (accept_button) { // TODO(ellyjones): This should use SetButtonLabel() diff --git a/chrome/browser/ui/views/profiles/incognito_menu_view.cc b/chrome/browser/ui/views/profiles/incognito_menu_view.cc index 8a93e597977b03..38970b9869c055 100644 --- a/chrome/browser/ui/views/profiles/incognito_menu_view.cc +++ b/chrome/browser/ui/views/profiles/incognito_menu_view.cc @@ -24,6 +24,7 @@ #include "components/vector_icons/vector_icons.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/views/accessibility/view_accessibility.h" #include "ui/views/controls/image_view.h" #include "ui/views/style/typography.h" @@ -53,14 +54,14 @@ void IncognitoMenuView::BuildMenu() { BrowserList::GetOffTheRecordBrowsersActiveForProfile( browser()->profile()); - ui::ThemedVectorIcon header_art_icon( - &kIncognitoMenuArtIcon, ui::NativeTheme::kColorId_AvatarHeaderArt); + ui::ThemedVectorIcon header_art_icon(&kIncognitoMenuArtIcon, + ui::kColorAvatarHeaderArt); SetProfileIdentityInfo( /*profile_name=*/std::u16string(), /*background_color=*/SK_ColorTRANSPARENT, /*edit_button=*/absl::nullopt, - ui::ImageModel::FromVectorIcon( - kIncognitoProfileIcon, ui::NativeTheme::kColorId_AvatarIconIncognito), + ui::ImageModel::FromVectorIcon(kIncognitoProfileIcon, + ui::kColorAvatarIconIncognito), l10n_util::GetStringUTF16(IDS_INCOGNITO_PROFILE_MENU_TITLE), incognito_window_count > 1 ? l10n_util::GetPluralStringFUTF16(IDS_INCOGNITO_WINDOW_COUNT_MESSAGE, diff --git a/chrome/browser/ui/views/profiles/profile_menu_view.cc b/chrome/browser/ui/views/profiles/profile_menu_view.cc index 258d95ca1dda8f..a2da5902ab0e58 100644 --- a/chrome/browser/ui/views/profiles/profile_menu_view.cc +++ b/chrome/browser/ui/views/profiles/profile_menu_view.cc @@ -62,6 +62,7 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/gfx/image/canvas_image_source.h" #include "ui/gfx/image/image_skia_operations.h" #include "ui/native_theme/native_theme.h" @@ -471,8 +472,8 @@ void ProfileMenuView::BuildGuestIdentity() { IDS_GUEST_WINDOW_COUNT_MESSAGE, guest_window_count); } - ui::ThemedVectorIcon header_art_icon( - &kGuestMenuArtIcon, ui::NativeTheme::kColorId_AvatarHeaderArt); + ui::ThemedVectorIcon header_art_icon(&kGuestMenuArtIcon, + ui::kColorAvatarHeaderArt); SetProfileIdentityInfo( /*profile_name=*/std::u16string(), /*background_color=*/SK_ColorTRANSPARENT, diff --git a/chrome/browser/ui/views/profiles/profile_menu_view_base.cc b/chrome/browser/ui/views/profiles/profile_menu_view_base.cc index ac2127ba64f71e..272923cc995f4a 100644 --- a/chrome/browser/ui/views/profiles/profile_menu_view_base.cc +++ b/chrome/browser/ui/views/profiles/profile_menu_view_base.cc @@ -35,6 +35,7 @@ #include "ui/base/metadata/metadata_header_macros.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/display/display.h" #include "ui/display/screen.h" #include "ui/gfx/canvas.h" @@ -290,7 +291,7 @@ class AvatarImageView : public views::ImageView { // This can happen if the account image hasn't been fetched yet, if there // is no image, or in tests. avatar_image_ = ui::ImageModel::FromVectorIcon( - kUserAccountAvatarIcon, ui::NativeTheme::kColorId_MenuIconColor, + kUserAccountAvatarIcon, ui::kColorMenuIcon, ProfileMenuViewBase::kIdentityImageSize); } } @@ -302,7 +303,7 @@ class AvatarImageView : public views::ImageView { DCHECK(!avatar_image_.IsEmpty()); gfx::ImageSkia sized_avatar_image = views::GetImageSkiaFromImageModel( SizeImageModel(avatar_image_, ProfileMenuViewBase::kIdentityImageSize), - GetNativeTheme()); + GetColorProvider()); sized_avatar_image = AddCircularBackground( sized_avatar_image, GetBackgroundColor(), kIdentityImageSizeInclBorder); gfx::ImageSkia sized_badge = AddCircularBackground( diff --git a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_device_button.cc b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_device_button.cc index 3a5c17baf50865..a61f8ebd1ad0a9 100644 --- a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_device_button.cc +++ b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_device_button.cc @@ -16,6 +16,7 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/views/border.h" #include "ui/views/controls/button/button.h" #include "ui/views/controls/image_view.h" @@ -30,7 +31,7 @@ std::unique_ptr CreateIcon( auto icon = std::make_unique(ui::ImageModel::FromVectorIcon( device_type == sync_pb::SyncEnums::TYPE_PHONE ? kHardwareSmartphoneIcon : kHardwareComputerIcon, - ui::NativeTheme::kColorId_DefaultIconColor, kPrimaryIconSize)); + ui::kColorIcon, kPrimaryIconSize)); constexpr auto kPrimaryIconBorder = gfx::Insets(6); icon->SetBorder(views::CreateEmptyBorder(kPrimaryIconBorder)); return icon; diff --git a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.cc b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.cc index 5cd76d9840f7ad..2a468acc098595 100644 --- a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.cc +++ b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.cc @@ -17,6 +17,7 @@ #include "components/vector_icons/vector_icons.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/gfx/favicon_size.h" #include "ui/views/controls/button/button_controller.h" @@ -24,10 +25,9 @@ namespace send_tab_to_self { SendTabToSelfToolbarIconView::SendTabToSelfToolbarIconView( BrowserView* browser_view) - : ImageView(ui::ImageModel::FromVectorIcon( - kSendTabToSelfIcon, - ui::NativeTheme::kColorId_DefaultIconColor, - gfx::kFaviconSize)), + : ImageView(ui::ImageModel::FromVectorIcon(kSendTabToSelfIcon, + ui::kColorIcon, + gfx::kFaviconSize)), browser_(browser_view->browser()) { SetAccessibleName(l10n_util::GetStringUTF16( IDS_TOOLBAR_BUTTON_SEND_TAB_TO_SELF_BUTTON_A11Y_NAME)); diff --git a/chrome/browser/ui/views/sharing/sharing_dialog_view.cc b/chrome/browser/ui/views/sharing/sharing_dialog_view.cc index 08b0b8033e2613..2ccd33e44083ec 100644 --- a/chrome/browser/ui/views/sharing/sharing_dialog_view.cc +++ b/chrome/browser/ui/views/sharing/sharing_dialog_view.cc @@ -25,6 +25,7 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/image_model.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/gfx/color_utils.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/strings/grit/ui_strings.h" @@ -249,7 +250,7 @@ void SharingDialogView::InitListView() { device->device_type() == sync_pb::SyncEnums::TYPE_TABLET ? kTabletIcon : kHardwareSmartphoneIcon, - ui::NativeTheme::kColorId_DefaultIconColor, kPrimaryIconSize)); + ui::kColorIcon, kPrimaryIconSize)); auto* dialog_button = button_list->AddChildView(std::make_unique( @@ -268,8 +269,7 @@ void SharingDialogView::InitListView() { std::unique_ptr icon; if (app.vector_icon) { icon = std::make_unique(ui::ImageModel::FromVectorIcon( - *app.vector_icon, ui::NativeTheme::kColorId_DefaultIconColor, - kPrimaryIconSize)); + *app.vector_icon, ui::kColorIcon, kPrimaryIconSize)); } else { icon = std::make_unique(); icon->SetImage(app.image.AsImageSkia()); diff --git a/chrome/browser/ui/views/sharing_hub/sharing_hub_bubble_action_button.cc b/chrome/browser/ui/views/sharing_hub/sharing_hub_bubble_action_button.cc index 75eec17f35b8fa..5f17a8c8ebb879 100644 --- a/chrome/browser/ui/views/sharing_hub/sharing_hub_bubble_action_button.cc +++ b/chrome/browser/ui/views/sharing_hub/sharing_hub_bubble_action_button.cc @@ -13,6 +13,7 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/views/animation/ink_drop.h" #include "ui/views/border.h" #include "ui/views/controls/image_view.h" @@ -28,8 +29,7 @@ constexpr auto kPrimaryIconBorder = gfx::Insets(6); std::unique_ptr CreateIconFromVector( const gfx::VectorIcon& vector_icon) { auto icon = std::make_unique(ui::ImageModel::FromVectorIcon( - vector_icon, ui::NativeTheme::kColorId_DefaultIconColor, - kPrimaryIconSize)); + vector_icon, ui::kColorIcon, kPrimaryIconSize)); icon->SetBorder(views::CreateEmptyBorder(kPrimaryIconBorder)); return icon; } diff --git a/chrome/browser/ui/views/tab_icon_view.cc b/chrome/browser/ui/views/tab_icon_view.cc index a6aae9086c6a2a..2a95bcb7570b69 100644 --- a/chrome/browser/ui/views/tab_icon_view.cc +++ b/chrome/browser/ui/views/tab_icon_view.cc @@ -6,11 +6,6 @@ #include -#if defined(OS_WIN) -#include -#include -#endif - #include "base/logging.h" #include "base/no_destructor.h" #include "build/build_config.h" @@ -27,6 +22,11 @@ #include "ui/views/image_model_utils.h" #if defined(OS_WIN) +#include + +// windows.h needs to come first. The gap above prevents reordering. +#include + #include "chrome/browser/win/app_icon.h" #include "ui/gfx/icon_util.h" #endif @@ -141,7 +141,7 @@ void TabIconView::PaintButtonContents(gfx::Canvas* canvas) { } gfx::ImageSkia favicon = views::GetImageSkiaFromImageModel( - model_->GetFaviconForTabIconView(), GetNativeTheme()); + model_->GetFaviconForTabIconView(), GetColorProvider()); if (!favicon.isNull()) { PaintFavicon(canvas, favicon); return; diff --git a/chrome/browser/ui/views/web_apps/web_app_identity_update_confirmation_view.cc b/chrome/browser/ui/views/web_apps/web_app_identity_update_confirmation_view.cc index f67bf424ae0569..e1ca1d7e9ddbb0 100644 --- a/chrome/browser/ui/views/web_apps/web_app_identity_update_confirmation_view.cc +++ b/chrome/browser/ui/views/web_apps/web_app_identity_update_confirmation_view.cc @@ -17,6 +17,7 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_id.h" #include "ui/gfx/image/image_skia.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/views/controls/image_view.h" @@ -156,8 +157,7 @@ WebAppIdentityUpdateConfirmationView::WebAppIdentityUpdateConfirmationView( auto arrow = std::make_unique(ui::ImageModel::FromVectorIcon( - vector_icons::kForwardArrowIcon, - ui::NativeTheme::kColorId_DefaultIconColor, kArrowIconSizeDp)); + vector_icons::kForwardArrowIcon, ui::kColorIcon, kArrowIconSizeDp)); layout->AddView(std::move(arrow)); auto new_icon_image_view = std::make_unique(); diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn index ae61e09deae530..e4328f069ebe89 100644 --- a/ui/base/BUILD.gn +++ b/ui/base/BUILD.gn @@ -438,6 +438,7 @@ component("base") { "//base", "//skia", "//third_party/abseil-cpp:absl", + "//ui/color:color_headers", "//ui/gfx", "//ui/gfx/geometry", ] diff --git a/ui/base/DEPS b/ui/base/DEPS index 32d921670d7290..753260a65a24d2 100644 --- a/ui/base/DEPS +++ b/ui/base/DEPS @@ -7,6 +7,7 @@ include_rules = [ "+third_party/skia", "+third_party/zlib", "+ui/base/ui_base_jni_headers", + "+ui/color", "+ui/display", "+ui/events", "+ui/gfx", diff --git a/ui/base/models/image_model.cc b/ui/base/models/image_model.cc index 392c305e2fbe4e..8d7c2b17b85aef 100644 --- a/ui/base/models/image_model.cc +++ b/ui/base/models/image_model.cc @@ -7,6 +7,7 @@ #include "base/callback.h" #include "ui/base/models/image_model.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/color/color_id.h" #include "ui/gfx/vector_icon_utils.h" namespace ui { @@ -14,7 +15,7 @@ namespace ui { VectorIconModel::VectorIconModel() = default; VectorIconModel::VectorIconModel(const gfx::VectorIcon& vector_icon, - int color_id, + ColorId color_id, int icon_size, const gfx::VectorIcon* badge_icon) : vector_icon_(&vector_icon), @@ -65,7 +66,7 @@ ImageModel& ImageModel::operator=(ImageModel&&) = default; // static ImageModel ImageModel::FromVectorIcon(const gfx::VectorIcon& vector_icon, - int color_id, + ColorId color_id, int icon_size, const gfx::VectorIcon* badge_icon) { if (!icon_size) diff --git a/ui/base/models/image_model.h b/ui/base/models/image_model.h index 9df2f9246a7aff..da56d5f72c34a1 100644 --- a/ui/base/models/image_model.h +++ b/ui/base/models/image_model.h @@ -9,6 +9,7 @@ #include "base/component_export.h" #include "third_party/abseil-cpp/absl/types/variant.h" #include "third_party/skia/include/core/SkColor.h" +#include "ui/color/color_id.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/image/image.h" #include "ui/gfx/image/image_skia.h" @@ -19,7 +20,7 @@ struct VectorIcon; namespace ui { -class NativeTheme; +class ColorProvider; // The following classes encapsulate the various ways that a model may provide // or otherwise specify an icon or image. Most notably, these are used by the @@ -47,7 +48,7 @@ class COMPONENT_EXPORT(UI_BASE) VectorIconModel { const gfx::VectorIcon* vector_icon() const { return vector_icon_; } int icon_size() const { return icon_size_; } - int color_id() const { return absl::get(color_); } + ColorId color_id() const { return absl::get(color_); } SkColor color() const { return absl::get(color_); } bool has_color() const { return absl::holds_alternative(color_); } const gfx::VectorIcon* badge_icon() const { return badge_icon_; } @@ -56,7 +57,7 @@ class COMPONENT_EXPORT(UI_BASE) VectorIconModel { friend class ImageModel; VectorIconModel(const gfx::VectorIcon& vector_icon, - int color_id, + ColorId color_id, int icon_size, const gfx::VectorIcon* badge_icon); // TODO (kylixrd): This should be eventually removed once all instances of @@ -68,7 +69,7 @@ class COMPONENT_EXPORT(UI_BASE) VectorIconModel { const gfx::VectorIcon* vector_icon_ = nullptr; int icon_size_ = 0; - absl::variant color_ = gfx::kPlaceholderColor; + absl::variant color_ = gfx::kPlaceholderColor; const gfx::VectorIcon* badge_icon_ = nullptr; }; @@ -79,7 +80,7 @@ class COMPONENT_EXPORT(UI_BASE) VectorIconModel { class COMPONENT_EXPORT(UI_BASE) ImageModel { public: using ImageGenerator = - base::RepeatingCallback; + base::RepeatingCallback; ImageModel(); ImageModel(const ImageModel&); @@ -88,8 +89,9 @@ class COMPONENT_EXPORT(UI_BASE) ImageModel { ImageModel& operator=(ImageModel&&); ~ImageModel(); + // TODO(pkasting): Remove the default `color_id` or replace with kColorIcon. static ImageModel FromVectorIcon(const gfx::VectorIcon& vector_icon, - int color_id = -1, + ColorId color_id = kColorMenuIcon, int icon_size = 0, const gfx::VectorIcon* badge_icon = nullptr); static ImageModel FromVectorIcon(const gfx::VectorIcon& vector_icon, @@ -101,7 +103,7 @@ class COMPONENT_EXPORT(UI_BASE) ImageModel { static ImageModel FromResourceId(int resource_id); // `size` must be the size of the image the `generator` returns. // NOTE: If this proves onerous, we could allow autodetection, at the cost of - // requiring `generator` to be runnable with a null NativeTheme*. + // requiring `generator` to be runnable with a null ColorProvider*. static ImageModel FromImageGenerator(ImageGenerator generator, gfx::Size size); diff --git a/ui/base/models/image_model_unittest.cc b/ui/base/models/image_model_unittest.cc index 7b5da6d15b1f18..41410f7a7e209d 100644 --- a/ui/base/models/image_model_unittest.cc +++ b/ui/base/models/image_model_unittest.cc @@ -8,6 +8,7 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "testing/gtest/include/gtest/gtest.h" +#include "ui/color/color_id.h" #include "ui/gfx/image/image_unittest_util.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/gfx/vector_icon_types.h" @@ -51,7 +52,7 @@ TEST(ImageModelTest, DefaultVectorIconEmpty) { TEST(ImageModelTest, CheckForVectorIcon) { ImageModel image_model = - ImageModel::FromVectorIcon(GetCircleVectorIcon(), -1, 16); + ImageModel::FromVectorIcon(GetCircleVectorIcon(), ui::kColorMenuIcon, 16); EXPECT_FALSE(image_model.IsEmpty()); EXPECT_TRUE(image_model.IsVectorIcon()); @@ -67,7 +68,7 @@ TEST(ImageModelTest, CheckForImage) { TEST(ImageModelTest, CheckForImageGenerator) { ImageModel image_model = ImageModel::FromImageGenerator( - base::BindRepeating([](const ui::NativeTheme*) { + base::BindRepeating([](const ui::ColorProvider*) { return gfx::test::CreateImage(16, 16).AsImageSkia(); }), gfx::Size(16, 16)); @@ -78,13 +79,15 @@ TEST(ImageModelTest, CheckForImageGenerator) { TEST(ImageModelTest, Size) { EXPECT_EQ(gfx::Size(), ImageModel().Size()); - EXPECT_EQ(gfx::Size(16, 16), - ImageModel::FromVectorIcon(GetCircleVectorIcon(), -1, 16).Size()); + EXPECT_EQ( + gfx::Size(16, 16), + ImageModel::FromVectorIcon(GetCircleVectorIcon(), ui::kColorMenuIcon, 16) + .Size()); EXPECT_EQ(gfx::Size(16, 16), ImageModel::FromImage(gfx::test::CreateImage(16, 16)).Size()); EXPECT_EQ(gfx::Size(16, 16), ImageModel::FromImageGenerator( - base::BindRepeating([](const ui::NativeTheme*) { + base::BindRepeating([](const ui::ColorProvider*) { return gfx::test::CreateImage(16, 16).AsImageSkia(); }), gfx::Size(16, 16)) @@ -94,7 +97,8 @@ TEST(ImageModelTest, Size) { TEST(ImageModelTest, CheckAssignVectorIcon) { VectorIconModel vector_icon_model_dest; VectorIconModel vector_icon_model_src = - ImageModel::FromVectorIcon(GetCircleVectorIcon(), -1, 16).GetVectorIcon(); + ImageModel::FromVectorIcon(GetCircleVectorIcon(), ui::kColorMenuIcon, 16) + .GetVectorIcon(); EXPECT_TRUE(vector_icon_model_dest.is_empty()); EXPECT_FALSE(vector_icon_model_src.is_empty()); @@ -117,7 +121,8 @@ TEST(ImageModelTest, CheckAssignImage) { EXPECT_FALSE(image_model_dest.IsEmpty()); EXPECT_TRUE(image_model_dest.IsImage()); - image_model_src = ImageModel::FromVectorIcon(GetCircleVectorIcon(), -1, 16); + image_model_src = + ImageModel::FromVectorIcon(GetCircleVectorIcon(), ui::kColorMenuIcon, 16); EXPECT_TRUE(image_model_src.IsVectorIcon()); @@ -126,7 +131,7 @@ TEST(ImageModelTest, CheckAssignImage) { EXPECT_TRUE(image_model_dest.IsVectorIcon()); image_model_src = ImageModel::FromImageGenerator( - base::BindRepeating([](const ui::NativeTheme*) { + base::BindRepeating([](const ui::ColorProvider*) { return gfx::test::CreateImage(16, 16).AsImageSkia(); }), gfx::Size(16, 16)); @@ -153,22 +158,28 @@ TEST(ImageModelTest, CheckEqual) { image_model_src = image_model_dest; EXPECT_EQ(image_model_src, image_model_dest); - image_model_dest = ImageModel::FromVectorIcon(GetRectVectorIcon(), -1, 16); + image_model_dest = + ImageModel::FromVectorIcon(GetRectVectorIcon(), ui::kColorMenuIcon, 16); EXPECT_NE(image_model_src, image_model_dest); - image_model_src = ImageModel::FromVectorIcon(GetRectVectorIcon(), -1, 16); + image_model_src = + ImageModel::FromVectorIcon(GetRectVectorIcon(), ui::kColorMenuIcon, 16); EXPECT_EQ(image_model_src, image_model_dest); - image_model_dest = ImageModel::FromVectorIcon(GetCircleVectorIcon(), -1, 16); + image_model_dest = + ImageModel::FromVectorIcon(GetCircleVectorIcon(), ui::kColorMenuIcon, 16); EXPECT_NE(image_model_src, image_model_dest); image_model_src = image_model_dest; EXPECT_EQ(image_model_src, image_model_dest); - image_model_src = ImageModel::FromVectorIcon(GetCircleVectorIcon(), 1, 16); + image_model_src = + ImageModel::FromVectorIcon(GetCircleVectorIcon(), ui::kColorMenuIcon, 16); image_model_dest = ImageModel::FromVectorIcon(GetCircleVectorIcon(), SK_ColorMAGENTA, 16); EXPECT_NE(image_model_src, image_model_dest); - image_model_src = ImageModel::FromVectorIcon(GetCircleVectorIcon(), 1, 16); - image_model_dest = ImageModel::FromVectorIcon(GetCircleVectorIcon(), 2, 16); + image_model_src = + ImageModel::FromVectorIcon(GetCircleVectorIcon(), ui::kColorMenuIcon, 16); + image_model_dest = ImageModel::FromVectorIcon( + GetCircleVectorIcon(), ui::kColorMenuItemForeground, 16); EXPECT_NE(image_model_src, image_model_dest); image_model_src = @@ -183,7 +194,7 @@ TEST(ImageModelTest, CheckEqual) { ImageModel::FromVectorIcon(GetCircleVectorIcon(), SK_ColorMAGENTA, 2); EXPECT_NE(image_model_src, image_model_dest); - auto generator = base::BindRepeating([](const ui::NativeTheme*) { + auto generator = base::BindRepeating([](const ui::ColorProvider*) { return gfx::test::CreateImage(16, 16).AsImageSkia(); }); image_model_src = @@ -195,7 +206,7 @@ TEST(ImageModelTest, CheckEqual) { image_model_dest = ImageModel::FromImageGenerator(generator, gfx::Size(8, 8)); EXPECT_NE(image_model_src, image_model_dest); image_model_dest = ImageModel::FromImageGenerator( - base::BindRepeating([](const ui::NativeTheme*) { + base::BindRepeating([](const ui::ColorProvider*) { return gfx::test::CreateImage(8, 8).AsImageSkia(); }), gfx::Size(16, 16)); diff --git a/ui/base/models/simple_menu_model_unittest.cc b/ui/base/models/simple_menu_model_unittest.cc index 7f0829be3a737f..242563af57330f 100644 --- a/ui/base/models/simple_menu_model_unittest.cc +++ b/ui/base/models/simple_menu_model_unittest.cc @@ -8,6 +8,7 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "testing/gtest/include/gtest/gtest.h" +#include "ui/color/color_id.h" #include "ui/gfx/image/image_unittest_util.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/gfx/vector_icon_types.h" @@ -219,7 +220,7 @@ TEST(SimpleMenuModelTest, HasIconsViaVectorIcon) { simple_menu_model.AddItemWithIcon( /*command_id*/ 11, u"menu item", - ui::ImageModel::FromVectorIcon(circle_icon, -1, 16)); + ui::ImageModel::FromVectorIcon(circle_icon, ui::kColorMenuIcon, 16)); EXPECT_TRUE(simple_menu_model.HasIcons()); } diff --git a/ui/native_theme/themed_vector_icon.cc b/ui/native_theme/themed_vector_icon.cc index 437a8648a387da..c80538f0063854 100644 --- a/ui/native_theme/themed_vector_icon.cc +++ b/ui/native_theme/themed_vector_icon.cc @@ -4,6 +4,7 @@ #include "ui/native_theme/themed_vector_icon.h" +#include "ui/color/color_provider.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/gfx/vector_icon_types.h" #include "ui/gfx/vector_icon_utils.h" @@ -13,7 +14,7 @@ namespace ui { ThemedVectorIcon::ThemedVectorIcon() = default; ThemedVectorIcon::ThemedVectorIcon(const gfx::VectorIcon* icon, - int color_id, + ColorId color_id, int icon_size, const gfx::VectorIcon* badge) : icon_(icon), icon_size_(icon_size), color_(color_id), badge_(badge) {} @@ -24,11 +25,8 @@ ThemedVectorIcon::ThemedVectorIcon(const VectorIconModel& vector_icon_model) badge_(vector_icon_model.badge_icon()) { if (vector_icon_model.has_color()) { color_ = vector_icon_model.color(); - } else if (vector_icon_model.color_id() >= 0) { - color_ = - static_cast(vector_icon_model.color_id()); } else { - color_ = ui::NativeTheme::kColorId_MenuIconColor; + color_ = vector_icon_model.color_id(); } } @@ -47,17 +45,19 @@ ThemedVectorIcon::ThemedVectorIcon(ThemedVectorIcon&&) = default; ThemedVectorIcon& ThemedVectorIcon::operator=(ThemedVectorIcon&&) = default; -gfx::ImageSkia ThemedVectorIcon::GetImageSkia(const NativeTheme* theme) const { +gfx::ImageSkia ThemedVectorIcon::GetImageSkia( + const ColorProvider* color_provider) const { DCHECK(!empty()); - return GetImageSkia(theme, (icon_size_ > 0) - ? icon_size_ - : GetDefaultSizeOfVectorIcon(*icon_)); + return GetImageSkia(color_provider, (icon_size_ > 0) + ? icon_size_ + : GetDefaultSizeOfVectorIcon(*icon_)); } -gfx::ImageSkia ThemedVectorIcon::GetImageSkia(const NativeTheme* theme, - int icon_size) const { +gfx::ImageSkia ThemedVectorIcon::GetImageSkia( + const ColorProvider* color_provider, + int icon_size) const { DCHECK(!empty()); - return GetImageSkia(GetColor(theme), icon_size); + return GetImageSkia(GetColor(color_provider), icon_size); } gfx::ImageSkia ThemedVectorIcon::GetImageSkia(SkColor color) const { @@ -67,10 +67,9 @@ gfx::ImageSkia ThemedVectorIcon::GetImageSkia(SkColor color) const { : GetDefaultSizeOfVectorIcon(*icon_)); } -SkColor ThemedVectorIcon::GetColor(const NativeTheme* theme) const { - return absl::holds_alternative(color_) - ? theme->GetSystemColor(static_cast( - absl::get(color_))) +SkColor ThemedVectorIcon::GetColor(const ColorProvider* color_provider) const { + return absl::holds_alternative(color_) + ? color_provider->GetColor(absl::get(color_)) : absl::get(color_); } diff --git a/ui/native_theme/themed_vector_icon.h b/ui/native_theme/themed_vector_icon.h index 1e17e059fd2022..69747c2d901dd7 100644 --- a/ui/native_theme/themed_vector_icon.h +++ b/ui/native_theme/themed_vector_icon.h @@ -8,7 +8,7 @@ #include "third_party/abseil-cpp/absl/types/variant.h" #include "third_party/skia/include/core/SkColor.h" #include "ui/base/models/image_model.h" -#include "ui/native_theme/native_theme.h" +#include "ui/color/color_id.h" #include "ui/native_theme/native_theme_export.h" namespace gfx { @@ -18,11 +18,13 @@ struct VectorIcon; namespace ui { +class ColorProvider; + class NATIVE_THEME_EXPORT ThemedVectorIcon { public: ThemedVectorIcon(); explicit ThemedVectorIcon(const gfx::VectorIcon* icon, - int color_id = NativeTheme::kColorId_MenuIconColor, + ColorId color_id = kColorMenuIcon, int icon_size = 0, const gfx::VectorIcon* badge = nullptr); explicit ThemedVectorIcon(const VectorIconModel& vector_icon_model); @@ -41,17 +43,18 @@ class NATIVE_THEME_EXPORT ThemedVectorIcon { void clear() { icon_ = nullptr; } bool empty() const { return !icon_; } - gfx::ImageSkia GetImageSkia(const NativeTheme* theme) const; - gfx::ImageSkia GetImageSkia(const NativeTheme* theme, int icon_size) const; + gfx::ImageSkia GetImageSkia(const ColorProvider* color_provider) const; + gfx::ImageSkia GetImageSkia(const ColorProvider* color_provider, + int icon_size) const; gfx::ImageSkia GetImageSkia(SkColor color) const; private: - SkColor GetColor(const NativeTheme* theme) const; + SkColor GetColor(const ColorProvider* color_provider) const; gfx::ImageSkia GetImageSkia(SkColor color, int icon_size) const; const gfx::VectorIcon* icon_ = nullptr; int icon_size_ = 0; - absl::variant color_ = gfx::kPlaceholderColor; + absl::variant color_ = gfx::kPlaceholderColor; const gfx::VectorIcon* badge_ = nullptr; }; diff --git a/ui/views/background.cc b/ui/views/background.cc index 364253ae40b503..f9a8fad52f800e 100644 --- a/ui/views/background.cc +++ b/ui/views/background.cc @@ -83,7 +83,7 @@ class ThemedVectorIconBackground : public Background, public ViewObserver { } void Paint(gfx::Canvas* canvas, View* view) const override { - canvas->DrawImageInt(icon_.GetImageSkia(view->GetNativeTheme()), 0, 0); + canvas->DrawImageInt(icon_.GetImageSkia(view->GetColorProvider()), 0, 0); } private: diff --git a/ui/views/bubble/bubble_frame_view.cc b/ui/views/bubble/bubble_frame_view.cc index dea1afa7ee1d82..08b703fac417ad 100644 --- a/ui/views/bubble/bubble_frame_view.cc +++ b/ui/views/bubble/bubble_frame_view.cc @@ -295,7 +295,7 @@ void BubbleFrameView::UpdateWindowIcon() { gfx::ImageSkia image; if (GetWidget()->widget_delegate()->ShouldShowWindowIcon()) { image = GetImageSkiaFromImageModel( - GetWidget()->widget_delegate()->GetWindowIcon(), GetNativeTheme()); + GetWidget()->widget_delegate()->GetWindowIcon(), GetColorProvider()); } title_icon_->SetImage(&image); } diff --git a/ui/views/controls/button/label_button.cc b/ui/views/controls/button/label_button.cc index fdc47d8412ae01..673ccbf3f49ad5 100644 --- a/ui/views/controls/button/label_button.cc +++ b/ui/views/controls/button/label_button.cc @@ -68,7 +68,7 @@ LabelButton::~LabelButton() { gfx::ImageSkia LabelButton::GetImage(ButtonState for_state) const { for_state = ImageStateForState(for_state); return GetImageSkiaFromImageModel(button_state_image_models_[for_state], - GetNativeTheme()); + GetColorProvider()); } void LabelButton::SetImage(ButtonState for_state, const gfx::ImageSkia& image) { diff --git a/ui/views/controls/combobox/combobox.cc b/ui/views/controls/combobox/combobox.cc index bf5eace20dfb7e..565319e293a71e 100644 --- a/ui/views/controls/combobox/combobox.cc +++ b/ui/views/controls/combobox/combobox.cc @@ -605,7 +605,7 @@ void Combobox::PaintIconAndText(gfx::Canvas* canvas) { ui::ImageModel icon = GetModel()->GetIconAt(selected_index_); if (!icon.IsEmpty()) { gfx::ImageSkia icon_skia = - GetImageSkiaFromImageModel(icon, GetNativeTheme()); + GetImageSkiaFromImageModel(icon, GetColorProvider()); int icon_y = y + (contents_height - icon_skia.height()) / 2; gfx::Rect icon_bounds(x, icon_y, icon_skia.width(), icon_skia.height()); AdjustBoundsForRTLUI(&icon_bounds); @@ -715,7 +715,7 @@ gfx::Size Combobox::GetContentSize() const { if (!icon.IsEmpty()) { gfx::ImageSkia icon_skia; if (GetWidget()) - icon_skia = GetImageSkiaFromImageModel(icon, GetNativeTheme()); + icon_skia = GetImageSkiaFromImageModel(icon, GetColorProvider()); item_width += icon_skia.width() + LayoutProvider::Get()->GetDistanceMetric( DISTANCE_RELATED_LABEL_HORIZONTAL); diff --git a/ui/views/controls/image_view.cc b/ui/views/controls/image_view.cc index 1aa81fcd6a3ca0..bbf9ccc5545cfe 100644 --- a/ui/views/controls/image_view.cc +++ b/ui/views/controls/image_view.cc @@ -66,7 +66,7 @@ gfx::Rect ImageView::GetImageBounds() const { } gfx::ImageSkia ImageView::GetImage() const { - return views::GetImageSkiaFromImageModel(image_model_, GetNativeTheme()); + return views::GetImageSkiaFromImageModel(image_model_, GetColorProvider()); } ui::ImageModel ImageView::GetImageModel() const { @@ -278,7 +278,7 @@ gfx::ImageSkia ImageView::GetPaintImage(float scale) { if (image_model_.IsImage() || image_model_.IsImageGenerator()) { const gfx::ImageSkia image = - views::GetImageSkiaFromImageModel(image_model_, GetNativeTheme()); + views::GetImageSkiaFromImageModel(image_model_, GetColorProvider()); if (image.isNull()) return image; @@ -301,7 +301,7 @@ gfx::ImageSkia ImageView::GetPaintImage(float scale) { scale)); } else if (scaled_image_.isNull()) { scaled_image_ = - views::GetImageSkiaFromImageModel(image_model_, GetNativeTheme()); + views::GetImageSkiaFromImageModel(image_model_, GetColorProvider()); } return scaled_image_; } diff --git a/ui/views/controls/menu/menu_item_view.cc b/ui/views/controls/menu/menu_item_view.cc index 9b73a8a39d71ed..85550a15d51af6 100644 --- a/ui/views/controls/menu/menu_item_view.cc +++ b/ui/views/controls/menu/menu_item_view.cc @@ -1139,7 +1139,7 @@ void MenuItemView::PaintMinorIconAndText(gfx::Canvas* canvas, SkColor color) { if (!minor_icon.IsEmpty()) { const gfx::ImageSkia image = - GetImageSkiaFromImageModel(minor_icon, GetNativeTheme()); + GetImageSkiaFromImageModel(minor_icon, GetColorProvider()); int image_x = GetMirroredRect(minor_text_bounds).right() - render_text->GetContentWidth() - diff --git a/ui/views/controls/table/table_view.cc b/ui/views/controls/table/table_view.cc index 266d4c6d8bc473..6eb54fa350c0f8 100644 --- a/ui/views/controls/table/table_view.cc +++ b/ui/views/controls/table/table_view.cc @@ -941,7 +941,7 @@ void TableView::OnPaintImpl(gfx::Canvas* canvas) { // Always paint the icon in the first visible column. if (j == 0 && table_type_ == ICON_AND_TEXT) { gfx::ImageSkia image = views::GetImageSkiaFromImageModel( - model_->GetIcon(model_index), GetNativeTheme()); + model_->GetIcon(model_index), GetColorProvider()); if (!image.isNull()) { int image_x = GetMirroredXWithWidthInView(text_x, ui::TableModel::kIconSize); diff --git a/ui/views/image_model_utils.cc b/ui/views/image_model_utils.cc index b07643f3015039..c4264bcac62a7e 100644 --- a/ui/views/image_model_utils.cc +++ b/ui/views/image_model_utils.cc @@ -8,19 +8,20 @@ namespace views { -gfx::ImageSkia GetImageSkiaFromImageModel(const ui::ImageModel& model, - const ui::NativeTheme* native_theme) { +gfx::ImageSkia GetImageSkiaFromImageModel( + const ui::ImageModel& model, + const ui::ColorProvider* color_provider) { if (model.IsImage()) return model.GetImage().AsImageSkia(); if (model.IsVectorIcon()) { - DCHECK(native_theme); + DCHECK(color_provider); return ui::ThemedVectorIcon(model.GetVectorIcon()) - .GetImageSkia(native_theme); + .GetImageSkia(color_provider); } if (model.IsImageGenerator()) - return model.GetImageGenerator().Run(native_theme); + return model.GetImageGenerator().Run(color_provider); return gfx::ImageSkia(); } diff --git a/ui/views/image_model_utils.h b/ui/views/image_model_utils.h index 62969bc61f951c..243ebed3a6d24a 100644 --- a/ui/views/image_model_utils.h +++ b/ui/views/image_model_utils.h @@ -9,18 +9,18 @@ #include "ui/views/views_export.h" namespace ui { +class ColorProvider; class ImageModel; -class NativeTheme; } // namespace ui namespace views { // Returns an ImageSkia representation from an ImageModel representation. -// `native_theme` must be non-null if `model` represents a vector icon. If +// `color_provider` must be non-null if `model` represents a vector icon. If // `model` is empty, it returns an empty ImageSkia. VIEWS_EXPORT gfx::ImageSkia GetImageSkiaFromImageModel( const ui::ImageModel& model, - const ui::NativeTheme* native_theme = nullptr); + const ui::ColorProvider* color_provider = nullptr); } // namespace views #endif // UI_VIEWS_IMAGE_MODEL_UTILS_H_ diff --git a/ui/views/image_model_utils_unittest.cc b/ui/views/image_model_utils_unittest.cc index f08ade72ce5cbe..7a7cb6dfdc6b14 100644 --- a/ui/views/image_model_utils_unittest.cc +++ b/ui/views/image_model_utils_unittest.cc @@ -7,8 +7,8 @@ #include "components/vector_icons/vector_icons.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/base/models/image_model.h" +#include "ui/color/color_provider.h" #include "ui/gfx/image/image_unittest_util.h" -#include "ui/native_theme/test_native_theme.h" namespace views { @@ -18,9 +18,9 @@ TEST(GetImageSkiaFromImageModel, ShouldConvertEmptyModel) { } TEST(GetImageSkiaFromImageModel, ShouldConvertVectorIcon) { - ui::TestNativeTheme test_theme; + ui::ColorProvider color_provider; gfx::ImageSkia image_skia = GetImageSkiaFromImageModel( - ui::ImageModel::FromVectorIcon(vector_icons::kSyncIcon), &test_theme); + ui::ImageModel::FromVectorIcon(vector_icons::kSyncIcon), &color_provider); EXPECT_FALSE(image_skia.isNull()); } diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc index aeef5e3599fc99..5d228ecd13f0a5 100644 --- a/ui/views/widget/widget.cc +++ b/ui/views/widget/widget.cc @@ -989,7 +989,7 @@ void Widget::UpdateWindowIcon() { non_client_view_->UpdateWindowIcon(); gfx::ImageSkia window_icon = GetImageSkiaFromImageModel( - widget_delegate_->GetWindowIcon(), GetNativeTheme()); + widget_delegate_->GetWindowIcon(), GetColorProvider()); // In general, icon information is read from a |widget_delegate_| and then // passed to |native_widget_|. On ChromeOS, for lacros-chrome to support the @@ -1005,7 +1005,7 @@ void Widget::UpdateWindowIcon() { } gfx::ImageSkia app_icon = GetImageSkiaFromImageModel( - widget_delegate_->GetWindowAppIcon(), GetNativeTheme()); + widget_delegate_->GetWindowAppIcon(), GetColorProvider()); if (app_icon.isNull()) { const gfx::ImageSkia* icon = native_widget_->GetWindowAppIcon(); if (icon && !icon->isNull())