diff --git a/chromium_src/chrome/browser/icon_loader.h b/chromium_src/chrome/browser/icon_loader.h index 50d9ef4541..837be96735 100644 --- a/chromium_src/chrome/browser/icon_loader.h +++ b/chromium_src/chrome/browser/icon_loader.h @@ -82,8 +82,6 @@ class IconLoader { IconSize icon_size_; - std::unique_ptr image_; - IconLoadedCallback callback_; DISALLOW_COPY_AND_ASSIGN(IconLoader); diff --git a/chromium_src/chrome/browser/icon_loader_auralinux.cc b/chromium_src/chrome/browser/icon_loader_auralinux.cc index 449d05771d..9f91875886 100644 --- a/chromium_src/chrome/browser/icon_loader_auralinux.cc +++ b/chromium_src/chrome/browser/icon_loader_auralinux.cc @@ -5,6 +5,7 @@ #include "chrome/browser/icon_loader.h" #include "base/bind.h" +#include "base/memory/ptr_util.h" #include "base/message_loop/message_loop.h" #include "base/nix/mime_util_xdg.h" #include "ui/views/linux_ui/linux_ui.h" @@ -38,14 +39,17 @@ void IconLoader::ReadIcon() { NOTREACHED(); } + std::unique_ptr image; + views::LinuxUI* ui = views::LinuxUI::instance(); if (ui) { - gfx::Image image = ui->GetIconForContentType(group_, size_pixels); - if (!image.IsEmpty()) - image_.reset(new gfx::Image(image)); + image = base::MakeUnique( + ui->GetIconForContentType(group_, size_pixels)); + if (image->IsEmpty()) + image = nullptr; } target_task_runner_->PostTask( - FROM_HERE, base::Bind(callback_, base::Passed(&image_), group_)); + FROM_HERE, base::Bind(callback_, base::Passed(&image), group_)); delete this; } diff --git a/chromium_src/chrome/browser/icon_loader_mac.mm b/chromium_src/chrome/browser/icon_loader_mac.mm index dd94e9fe7e..392f2b22b2 100644 --- a/chromium_src/chrome/browser/icon_loader_mac.mm +++ b/chromium_src/chrome/browser/icon_loader_mac.mm @@ -8,6 +8,7 @@ #include "base/bind.h" #include "base/files/file_path.h" +#include "base/memory/ptr_util.h" #include "base/message_loop/message_loop.h" #include "base/strings/sys_string_conversions.h" #include "base/threading/thread.h" @@ -30,9 +31,11 @@ void IconLoader::ReadIcon() { NSWorkspace* workspace = [NSWorkspace sharedWorkspace]; NSImage* icon = [workspace iconForFileType:group]; + std::unique_ptr image; + if (icon_size_ == ALL) { // The NSImage already has all sizes. - image_.reset(new gfx::Image([icon retain])); + image = base::MakeUnique([icon retain]); } else { NSSize size = NSZeroSize; switch (icon_size_) { @@ -48,11 +51,11 @@ void IconLoader::ReadIcon() { gfx::ImageSkia image_skia(gfx::ImageSkiaFromResizedNSImage(icon, size)); if (!image_skia.isNull()) { image_skia.MakeThreadSafe(); - image_.reset(new gfx::Image(image_skia)); + image = base::MakeUnique(image_skia); } } target_task_runner_->PostTask( - FROM_HERE, base::Bind(callback_, base::Passed(&image_), group_)); + FROM_HERE, base::Bind(callback_, base::Passed(&image), group_)); delete this; } diff --git a/chromium_src/chrome/browser/icon_loader_win.cc b/chromium_src/chrome/browser/icon_loader_win.cc index 279c819cc4..035c759e42 100644 --- a/chromium_src/chrome/browser/icon_loader_win.cc +++ b/chromium_src/chrome/browser/icon_loader_win.cc @@ -8,6 +8,7 @@ #include #include "base/bind.h" +#include "base/memory/ptr_util.h" #include "base/message_loop/message_loop.h" #include "base/threading/thread.h" #include "third_party/skia/include/core/SkBitmap.h" @@ -49,7 +50,7 @@ void IconLoader::ReadIcon() { NOTREACHED(); } - image_.reset(); + std::unique_ptr image; SHFILEINFO file_info = { 0 }; if (SHGetFileInfo(group_.c_str(), FILE_ATTRIBUTE_NORMAL, &file_info, @@ -61,12 +62,12 @@ void IconLoader::ReadIcon() { gfx::ImageSkia image_skia(gfx::ImageSkiaRep(*bitmap, display::win::GetDPIScale())); image_skia.MakeThreadSafe(); - image_.reset(new gfx::Image(image_skia)); + image = base::MakeUnique(image_skia); DestroyIcon(file_info.hIcon); } } target_task_runner_->PostTask( - FROM_HERE, base::Bind(callback_, base::Passed(&image_), group_)); + FROM_HERE, base::Bind(callback_, base::Passed(&image), group_)); delete this; }