Commit bdadc8c0 authored by Sundoo Kim's avatar Sundoo Kim Committed by Commit Bot

Replace gfx::ImageSkia with ui::ImageModel in BookmarkBarView

There is no change in behavior.
ui::ImageModel should be preferred to gfx::ImageSkia.

Bug: 1100034
Change-Id: I7ccd38bbcc1eb72112d7efdb0a0b84490d037887
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2346087
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: default avatarPeter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#800254}
parent 98c2feb5
......@@ -261,7 +261,7 @@ bool IsValidBookmarkDropLocation(Profile* profile,
#if defined(TOOLKIT_VIEWS)
// TODO(bsep): vectorize the Windows versions: crbug.com/564112
gfx::ImageSkia GetBookmarkFolderIcon(SkColor text_color) {
ui::ImageModel GetBookmarkFolderIcon(SkColor text_color) {
gfx::ImageSkia folder;
#if defined(OS_WIN)
folder = *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
......@@ -278,10 +278,14 @@ gfx::ImageSkia GetBookmarkFolderIcon(SkColor text_color) {
: vector_icons::kFolderIcon,
text_color);
#endif
return gfx::ImageSkia(std::make_unique<RTLFlipSource>(folder), folder.size());
// TODO(crbug.com/1119823): Return the unflipped image here
// (as a vector if possible); callers should have the responsibility to flip
// when painting as necessary.
return ui::ImageModel::FromImageSkia(
gfx::ImageSkia(std::make_unique<RTLFlipSource>(folder), folder.size()));
}
gfx::ImageSkia GetBookmarkManagedFolderIcon(SkColor text_color) {
ui::ImageModel GetBookmarkManagedFolderIcon(SkColor text_color) {
gfx::ImageSkia folder;
#if defined(OS_WIN)
folder = *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
......@@ -299,7 +303,11 @@ gfx::ImageSkia GetBookmarkManagedFolderIcon(SkColor text_color) {
: vector_icons::kFolderManagedIcon,
text_color);
#endif
return gfx::ImageSkia(std::make_unique<RTLFlipSource>(folder), folder.size());
// TODO(crbug.com/1119823): Return the unflipped image here
// (as a vector if possible); callers should have the responsibility to flip
// when painting as necessary.
return ui::ImageModel::FromImageSkia(
gfx::ImageSkia(std::make_unique<RTLFlipSource>(folder), folder.size()));
}
#endif
......
......@@ -9,6 +9,7 @@
#include "base/strings/string16.h"
#include "third_party/skia/include/core/SkColor.h"
#include "ui/base/models/image_model.h"
#include "ui/base/window_open_disposition.h"
#include "ui/gfx/native_widget_types.h"
......@@ -25,10 +26,6 @@ class BrowserContext;
class WebContents;
}
namespace gfx {
class ImageSkia;
}
namespace ui {
class DropTargetEvent;
}
......@@ -95,8 +92,8 @@ bool IsValidBookmarkDropLocation(Profile* profile,
#if defined(TOOLKIT_VIEWS)
// |text_color| is the color of associated text and is used to derive the icon's
// color.
gfx::ImageSkia GetBookmarkFolderIcon(SkColor text_color);
gfx::ImageSkia GetBookmarkManagedFolderIcon(SkColor text_color);
ui::ImageModel GetBookmarkFolderIcon(SkColor text_color);
ui::ImageModel GetBookmarkManagedFolderIcon(SkColor text_color);
#endif
} // namespace chrome
......
......@@ -1262,20 +1262,22 @@ void BookmarkBarView::WriteDragDataForView(View* sender,
base::RecordAction(base::UserMetricsAction("BookmarkBar_DragButton"));
const auto* node = GetNodeForSender(sender);
gfx::ImageSkia icon;
ui::ImageModel icon;
views::Widget* widget = sender->GetWidget();
if (node->is_url()) {
const gfx::Image& image = model_->GetFavicon(node);
icon = image.IsEmpty() ? favicon::GetDefaultFavicon().AsImageSkia()
: image.AsImageSkia();
icon = image.IsEmpty()
? ui::ImageModel::FromImage(favicon::GetDefaultFavicon())
: ui::ImageModel::FromImage(image);
} else {
icon =
chrome::GetBookmarkFolderIcon(widget->GetNativeTheme()->GetSystemColor(
ui::NativeTheme::kColorId_LabelEnabledColor));
}
button_drag_utils::SetDragImage(node->url(), node->GetTitle(), icon,
&press_pt, *widget, data);
button_drag_utils::SetDragImage(node->url(), node->GetTitle(),
*icon.GetImage().ToImageSkia(), &press_pt,
*widget, data);
WriteBookmarkDragData(node, data);
}
......@@ -1556,8 +1558,9 @@ BookmarkBarView::CreateAppsPageShortcutButton() {
button->SetTooltipText(
l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_APPS_SHORTCUT_TOOLTIP));
button->SetID(VIEW_ID_BOOKMARK_BAR_ELEMENT);
button->SetImage(views::Button::STATE_NORMAL,
*GetImageSkiaNamed(IDR_BOOKMARK_BAR_APPS_SHORTCUT));
button->SetImageModel(views::Button::STATE_NORMAL,
ui::ImageModel::FromImageSkia(*GetImageSkiaNamed(
IDR_BOOKMARK_BAR_APPS_SHORTCUT)));
button->set_context_menu_controller(this);
return button;
}
......@@ -1574,8 +1577,8 @@ void BookmarkBarView::ConfigureButton(const BookmarkNode* node,
text_color = tp->GetColor(ThemeProperties::COLOR_BOOKMARK_TEXT);
button->SetEnabledTextColors(text_color);
if (node->is_folder()) {
button->SetImage(views::Button::STATE_NORMAL,
chrome::GetBookmarkFolderIcon(text_color));
button->SetImageModel(views::Button::STATE_NORMAL,
chrome::GetBookmarkFolderIcon(text_color));
}
}
......@@ -1608,7 +1611,8 @@ void BookmarkBarView::ConfigureButton(const BookmarkNode* node,
favicon, tp->GetColor(ThemeProperties::COLOR_TOOLBAR_BUTTON_ICON));
}
button->SetImage(views::Button::STATE_NORMAL, favicon);
button->SetImageModel(views::Button::STATE_NORMAL,
ui::ImageModel::FromImageSkia(favicon));
}
constexpr int kMaxButtonWidth = 150;
button->SetMaxSize(gfx::Size(kMaxButtonWidth, 0));
......@@ -1924,10 +1928,10 @@ void BookmarkBarView::UpdateAppearanceForTheme() {
const SkColor color =
theme_provider->GetColor(ThemeProperties::COLOR_BOOKMARK_TEXT);
other_bookmarks_button_->SetEnabledTextColors(color);
other_bookmarks_button_->SetImage(views::Button::STATE_NORMAL,
chrome::GetBookmarkFolderIcon(color));
other_bookmarks_button_->SetImageModel(views::Button::STATE_NORMAL,
chrome::GetBookmarkFolderIcon(color));
managed_bookmarks_button_->SetEnabledTextColors(color);
managed_bookmarks_button_->SetImage(
managed_bookmarks_button_->SetImageModel(
views::Button::STATE_NORMAL, chrome::GetBookmarkManagedFolderIcon(color));
if (apps_page_shortcut_->GetVisible())
......@@ -1936,9 +1940,9 @@ void BookmarkBarView::UpdateAppearanceForTheme() {
const SkColor overflow_color =
theme_provider->GetColor(ThemeProperties::COLOR_TOOLBAR_BUTTON_ICON);
const bool touch_ui = ui::TouchUiController::Get()->touch_ui();
overflow_button_->SetImage(
overflow_button_->SetImageModel(
views::Button::STATE_NORMAL,
gfx::CreateVectorIcon(
ui::ImageModel::FromVectorIcon(
touch_ui ? kBookmarkbarTouchOverflowIcon : kOverflowChevronIcon,
overflow_color));
......
......@@ -194,7 +194,7 @@ class BookmarkDragHelper : public bookmarks::BaseBookmarkModelObserver {
void Start(const BookmarkNode* drag_node) {
drag_node_id_ = drag_node->id();
gfx::ImageSkia icon;
ui::ImageModel icon;
if (drag_node->is_url()) {
const gfx::Image& image = model_->GetFavicon(drag_node);
// If favicon is not loaded, the above call will initiate loading, and
......@@ -205,7 +205,7 @@ class BookmarkDragHelper : public bookmarks::BaseBookmarkModelObserver {
if (!drag_node->is_favicon_loaded())
return;
icon = image.AsImageSkia();
icon = ui::ImageModel::FromImage(image);
} else {
icon = GetBookmarkFolderIcon(
ui::NativeTheme::GetInstanceForNativeUi()->GetSystemColor(
......@@ -216,14 +216,14 @@ class BookmarkDragHelper : public bookmarks::BaseBookmarkModelObserver {
}
void OnBookmarkIconLoaded(const BookmarkNode* drag_node,
const gfx::ImageSkia& icon) {
const ui::ImageModel& icon) {
gfx::ImageSkia drag_image(
std::make_unique<BookmarkDragImageSource>(
drag_node->GetTitle(),
icon.isNull()
icon.IsEmpty()
? *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
IDR_DEFAULT_FAVICON)
: icon,
: *icon.GetImage().ToImageSkia(),
count_),
BookmarkDragImageSource::kBookmarkDragImageSize);
......@@ -252,10 +252,11 @@ class BookmarkDragHelper : public bookmarks::BaseBookmarkModelObserver {
if (node->id() != drag_node_id_)
return;
const gfx::Image& image = model_->GetFavicon(node);
const ui::ImageModel& image =
ui::ImageModel::FromImage(model_->GetFavicon(node));
DCHECK(node->is_favicon_loaded());
OnBookmarkIconLoaded(node, image.AsImageSkia());
OnBookmarkIconLoaded(node, image);
}
BookmarkModel* model_;
......
......@@ -515,7 +515,7 @@ void BookmarkMenuDelegate::BuildMenusForPermanentNodes(
}
void BookmarkMenuDelegate::BuildMenuForPermanentNode(const BookmarkNode* node,
const gfx::ImageSkia& icon,
const ui::ImageModel& icon,
MenuItemView* menu,
bool* added_separator) {
if (!node->IsVisible() || node->GetTotalNodeCount() == 1)
......@@ -526,9 +526,10 @@ void BookmarkMenuDelegate::BuildMenuForPermanentNode(const BookmarkNode* node,
menu->AppendSeparator();
}
AddMenuToMaps(menu->AppendSubMenu(next_menu_id_++,
MaybeEscapeLabel(node->GetTitle()), icon),
node);
AddMenuToMaps(
menu->AppendSubMenu(next_menu_id_++, MaybeEscapeLabel(node->GetTitle()),
*icon.GetImage().ToImageSkia()),
node);
}
void BookmarkMenuDelegate::BuildMenuForManagedNode(MenuItemView* menu) {
......@@ -546,7 +547,7 @@ void BookmarkMenuDelegate::BuildMenu(const BookmarkNode* parent,
MenuItemView* menu) {
DCHECK_LE(start_child_index, parent->children().size());
ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance();
const gfx::ImageSkia folder_icon =
const ui::ImageModel folder_icon =
chrome::GetBookmarkFolderIcon(TextColorForMenu(menu, parent_));
for (auto i = parent->children().cbegin() + start_child_index;
i != parent->children().cend(); ++i) {
......@@ -565,8 +566,9 @@ void BookmarkMenuDelegate::BuildMenu(const BookmarkNode* parent,
net::UnescapeRule::SPACES, nullptr, nullptr, nullptr));
} else {
DCHECK(node->is_folder());
child_menu_item = menu->AppendSubMenu(
id, MaybeEscapeLabel(node->GetTitle()), folder_icon);
child_menu_item =
menu->AppendSubMenu(id, MaybeEscapeLabel(node->GetTitle()),
*folder_icon.GetImage().ToImageSkia());
child_menu_item->GetViewAccessibility().OverrideDescription("");
}
AddMenuToMaps(child_menu_item, node);
......
......@@ -27,10 +27,6 @@ namespace content {
class PageNavigator;
}
namespace gfx {
class ImageSkia;
}
namespace ui {
class OSExchangeData;
}
......@@ -165,7 +161,7 @@ class BookmarkMenuDelegate : public bookmarks::BaseBookmarkModelObserver,
// separator is added before the new menu items and |added_separator| is set
// to true.
void BuildMenuForPermanentNode(const bookmarks::BookmarkNode* node,
const gfx::ImageSkia& icon,
const ui::ImageModel& icon,
views::MenuItemView* menu,
bool* added_separator);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment