Commit 7e512a53 authored by Lei Zhang's avatar Lei Zhang Committed by Commit Bot

Make LauncherSearchIconImageLoader ref counted.

Get rid of deprecated linked_ptr usage. Use RefCounted because the
object has shared ownership.

BUG=556939

Change-Id: Iab75d2a4cf834227764d4ac1888e3efa690b2ce2
Reviewed-on: https://chromium-review.googlesource.com/1053992
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: default avatarYuki Awano <yawano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559422}
parent b7f4df2e
...@@ -8,8 +8,11 @@ ...@@ -8,8 +8,11 @@
#include <stdint.h> #include <stdint.h>
#include <memory> #include <memory>
#include <set>
#include <string>
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "chrome/browser/chromeos/launcher_search_provider/error_reporter.h" #include "chrome/browser/chromeos/launcher_search_provider/error_reporter.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "extensions/common/extension.h" #include "extensions/common/extension.h"
...@@ -20,7 +23,8 @@ ...@@ -20,7 +23,8 @@
namespace app_list { namespace app_list {
// Loads icons of launcher search results. // Loads icons of launcher search results.
class LauncherSearchIconImageLoader { class LauncherSearchIconImageLoader
: public base::RefCounted<LauncherSearchIconImageLoader> {
public: public:
class Observer { class Observer {
public: public:
...@@ -43,7 +47,6 @@ class LauncherSearchIconImageLoader { ...@@ -43,7 +47,6 @@ class LauncherSearchIconImageLoader {
const int icon_dimension, const int icon_dimension,
std::unique_ptr<chromeos::launcher_search_provider::ErrorReporter> std::unique_ptr<chromeos::launcher_search_provider::ErrorReporter>
error_reporter); error_reporter);
virtual ~LauncherSearchIconImageLoader();
// Load resources caller must call this function to generate icon image. // Load resources caller must call this function to generate icon image.
void LoadResources(); void LoadResources();
...@@ -62,6 +65,9 @@ class LauncherSearchIconImageLoader { ...@@ -62,6 +65,9 @@ class LauncherSearchIconImageLoader {
const gfx::ImageSkia& GetBadgeIconImage() const; const gfx::ImageSkia& GetBadgeIconImage() const;
protected: protected:
// Ref counted class.
virtual ~LauncherSearchIconImageLoader();
// Loads |extension| icon and returns it as sync if possible. When it loads // Loads |extension| icon and returns it as sync if possible. When it loads
// icon as async, it calls OnExtensionIconImageChanged. // icon as async, it calls OnExtensionIconImageChanged.
virtual const gfx::ImageSkia& LoadExtensionIcon() = 0; virtual const gfx::ImageSkia& LoadExtensionIcon() = 0;
...@@ -83,6 +89,8 @@ class LauncherSearchIconImageLoader { ...@@ -83,6 +89,8 @@ class LauncherSearchIconImageLoader {
const gfx::Size icon_size_; const gfx::Size icon_size_;
private: private:
friend class base::RefCounted<LauncherSearchIconImageLoader>;
// Notifies to observers. // Notifies to observers.
void NotifyObserversIconImageChange(); void NotifyObserversIconImageChange();
void NotifyObserversBadgeIconImageChange(); void NotifyObserversBadgeIconImageChange();
......
...@@ -5,7 +5,9 @@ ...@@ -5,7 +5,9 @@
#include "chrome/browser/ui/app_list/search/launcher_search/launcher_search_icon_image_loader_impl.h" #include "chrome/browser/ui/app_list/search/launcher_search/launcher_search_icon_image_loader_impl.h"
#include <utility> #include <utility>
#include <vector>
#include "base/memory/ptr_util.h"
#include "chrome/browser/extensions/extension_util.h" #include "chrome/browser/extensions/extension_util.h"
#include "extensions/browser/image_loader.h" #include "extensions/browser/image_loader.h"
#include "extensions/common/file_util.h" #include "extensions/common/file_util.h"
...@@ -24,14 +26,13 @@ LauncherSearchIconImageLoaderImpl::LauncherSearchIconImageLoaderImpl( ...@@ -24,14 +26,13 @@ LauncherSearchIconImageLoaderImpl::LauncherSearchIconImageLoaderImpl(
profile, profile,
extension, extension,
icon_dimension, icon_dimension,
std::move(error_reporter)), std::move(error_reporter)) {}
weak_ptr_factory_(this) {}
LauncherSearchIconImageLoaderImpl::~LauncherSearchIconImageLoaderImpl() = LauncherSearchIconImageLoaderImpl::~LauncherSearchIconImageLoaderImpl() =
default; default;
const gfx::ImageSkia& LauncherSearchIconImageLoaderImpl::LoadExtensionIcon() { const gfx::ImageSkia& LauncherSearchIconImageLoaderImpl::LoadExtensionIcon() {
extension_icon_image_.reset(new extensions::IconImage( extension_icon_image_ = base::WrapUnique(new extensions::IconImage(
profile_, extension_, extensions::IconsInfo::GetIcons(extension_), profile_, extension_, extensions::IconsInfo::GetIcons(extension_),
icon_size_.width(), extensions::util::GetDefaultExtensionIcon(), this)); icon_size_.width(), extensions::util::GetDefaultExtensionIcon(), this));
...@@ -53,7 +54,7 @@ void LauncherSearchIconImageLoaderImpl::LoadIconResourceFromExtension() { ...@@ -53,7 +54,7 @@ void LauncherSearchIconImageLoaderImpl::LoadIconResourceFromExtension() {
extensions::ImageLoader::Get(profile_)->LoadImagesAsync( extensions::ImageLoader::Get(profile_)->LoadImagesAsync(
extension_, info_list, extension_, info_list,
base::Bind(&LauncherSearchIconImageLoaderImpl::OnCustomIconImageLoaded, base::Bind(&LauncherSearchIconImageLoaderImpl::OnCustomIconImageLoaded,
weak_ptr_factory_.GetWeakPtr())); this));
} }
void LauncherSearchIconImageLoaderImpl::OnExtensionIconImageChanged( void LauncherSearchIconImageLoaderImpl::OnExtensionIconImageChanged(
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
#include <memory> #include <memory>
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "chrome/browser/ui/app_list/search/launcher_search/launcher_search_icon_image_loader.h" #include "chrome/browser/ui/app_list/search/launcher_search/launcher_search_icon_image_loader.h"
#include "extensions/browser/extension_icon_image.h" #include "extensions/browser/extension_icon_image.h"
...@@ -26,7 +25,7 @@ class LauncherSearchIconImageLoaderImpl : public LauncherSearchIconImageLoader, ...@@ -26,7 +25,7 @@ class LauncherSearchIconImageLoaderImpl : public LauncherSearchIconImageLoader,
const int icon_dimension, const int icon_dimension,
std::unique_ptr<chromeos::launcher_search_provider::ErrorReporter> std::unique_ptr<chromeos::launcher_search_provider::ErrorReporter>
error_reporter); error_reporter);
~LauncherSearchIconImageLoaderImpl() override;
const gfx::ImageSkia& LoadExtensionIcon() override; const gfx::ImageSkia& LoadExtensionIcon() override;
void LoadIconResourceFromExtension() override; void LoadIconResourceFromExtension() override;
...@@ -37,9 +36,10 @@ class LauncherSearchIconImageLoaderImpl : public LauncherSearchIconImageLoader, ...@@ -37,9 +36,10 @@ class LauncherSearchIconImageLoaderImpl : public LauncherSearchIconImageLoader,
void OnCustomIconImageLoaded(const gfx::Image& image); void OnCustomIconImageLoaded(const gfx::Image& image);
private: private:
std::unique_ptr<extensions::IconImage> extension_icon_image_; // Ref counted class.
~LauncherSearchIconImageLoaderImpl() override;
base::WeakPtrFactory<LauncherSearchIconImageLoaderImpl> weak_ptr_factory_; std::unique_ptr<extensions::IconImage> extension_icon_image_;
DISALLOW_COPY_AND_ASSIGN(LauncherSearchIconImageLoaderImpl); DISALLOW_COPY_AND_ASSIGN(LauncherSearchIconImageLoaderImpl);
}; };
......
...@@ -4,8 +4,10 @@ ...@@ -4,8 +4,10 @@
#include "chrome/browser/ui/app_list/search/launcher_search/launcher_search_icon_image_loader.h" #include "chrome/browser/ui/app_list/search/launcher_search/launcher_search_icon_image_loader.h"
#include <utility>
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/linked_ptr.h" #include "base/memory/scoped_refptr.h"
#include "chrome/browser/chromeos/launcher_search_provider/error_reporter.h" #include "chrome/browser/chromeos/launcher_search_provider/error_reporter.h"
#include "extensions/common/manifest_constants.h" #include "extensions/common/manifest_constants.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
...@@ -78,6 +80,9 @@ class LauncherSearchIconImageLoaderTestImpl ...@@ -78,6 +80,9 @@ class LauncherSearchIconImageLoaderTestImpl
} }
private: private:
// Ref counted class.
~LauncherSearchIconImageLoaderTestImpl() override = default;
gfx::ImageSkia extension_icon_; gfx::ImageSkia extension_icon_;
bool is_load_extension_icon_resource_called_ = false; bool is_load_extension_icon_resource_called_ = false;
}; };
...@@ -85,25 +90,15 @@ class LauncherSearchIconImageLoaderTestImpl ...@@ -85,25 +90,15 @@ class LauncherSearchIconImageLoaderTestImpl
// A fake error reporter to test error message. // A fake error reporter to test error message.
class FakeErrorReporter : public ErrorReporter { class FakeErrorReporter : public ErrorReporter {
public: public:
FakeErrorReporter() : ErrorReporter(nullptr) { FakeErrorReporter() : ErrorReporter(nullptr) {}
last_message_.reset(new std::string());
}
explicit FakeErrorReporter(const linked_ptr<std::string>& last_message)
: ErrorReporter(nullptr), last_message_(last_message) {}
~FakeErrorReporter() override {} ~FakeErrorReporter() override {}
void Warn(const std::string& message) override {
last_message_->clear();
last_message_->append(message);
}
const std::string& GetLastWarningMessage() { return *last_message_.get(); } void Warn(const std::string& message) override { last_message_ = message; }
std::unique_ptr<ErrorReporter> Duplicate() override { const std::string& GetLastWarningMessage() const { return last_message_; }
return std::make_unique<FakeErrorReporter>(last_message_);
}
private: private:
linked_ptr<std::string> last_message_; std::string last_message_;
DISALLOW_COPY_AND_ASSIGN(FakeErrorReporter); DISALLOW_COPY_AND_ASSIGN(FakeErrorReporter);
}; };
...@@ -145,9 +140,9 @@ class LauncherSearchIconImageLoaderTest : public testing::Test { ...@@ -145,9 +140,9 @@ class LauncherSearchIconImageLoaderTest : public testing::Test {
TEST_F(LauncherSearchIconImageLoaderTest, WithoutCustomIconSuccessCase) { TEST_F(LauncherSearchIconImageLoaderTest, WithoutCustomIconSuccessCase) {
GURL icon_url; // No custom icon. GURL icon_url; // No custom icon.
LauncherSearchIconImageLoaderTestImpl impl(icon_url, nullptr, nullptr, 32, auto impl = base::MakeRefCounted<LauncherSearchIconImageLoaderTestImpl>(
GetFakeErrorReporter()); icon_url, nullptr, nullptr, 32, GetFakeErrorReporter());
impl.LoadResources(); impl->LoadResources();
// Assert that extension icon image is set to icon image and badge icon image // Assert that extension icon image is set to icon image and badge icon image
// is null. // is null.
...@@ -155,62 +150,62 @@ TEST_F(LauncherSearchIconImageLoaderTest, WithoutCustomIconSuccessCase) { ...@@ -155,62 +150,62 @@ TEST_F(LauncherSearchIconImageLoaderTest, WithoutCustomIconSuccessCase) {
gfx::ImageSkia expected_image( gfx::ImageSkia expected_image(
std::make_unique<FillColorImageSource>(icon_size, SK_ColorBLACK), std::make_unique<FillColorImageSource>(icon_size, SK_ColorBLACK),
icon_size); icon_size);
ASSERT_TRUE(IsEqual(expected_image, impl.GetIconImage())); ASSERT_TRUE(IsEqual(expected_image, impl->GetIconImage()));
ASSERT_TRUE(impl.GetBadgeIconImage().isNull()); ASSERT_TRUE(impl->GetBadgeIconImage().isNull());
} }
TEST_F(LauncherSearchIconImageLoaderTest, ExtensionIconAsyncLoadSuccessCase) { TEST_F(LauncherSearchIconImageLoaderTest, ExtensionIconAsyncLoadSuccessCase) {
GURL icon_url; // No custom icon. GURL icon_url; // No custom icon.
LauncherSearchIconImageLoaderTestImpl impl(icon_url, nullptr, nullptr, 32, auto impl = base::MakeRefCounted<LauncherSearchIconImageLoaderTestImpl>(
GetFakeErrorReporter()); icon_url, nullptr, nullptr, 32, GetFakeErrorReporter());
impl.LoadResources(); impl->LoadResources();
// Extension icon is loaded as async. // Extension icon is loaded as async.
gfx::Size icon_size(32, 32); gfx::Size icon_size(32, 32);
gfx::ImageSkia extension_icon( gfx::ImageSkia extension_icon(
std::make_unique<FillColorImageSource>(icon_size, SK_ColorGREEN), std::make_unique<FillColorImageSource>(icon_size, SK_ColorGREEN),
icon_size); icon_size);
impl.LoadExtensionIconAsync(extension_icon); impl->LoadExtensionIconAsync(extension_icon);
// Assert that the asynchronously loaded image is set to icon image and badge // Assert that the asynchronously loaded image is set to icon image and badge
// icon image is null. // icon image is null.
gfx::ImageSkia expected_image( gfx::ImageSkia expected_image(
std::make_unique<FillColorImageSource>(icon_size, SK_ColorGREEN), std::make_unique<FillColorImageSource>(icon_size, SK_ColorGREEN),
icon_size); icon_size);
ASSERT_TRUE(IsEqual(expected_image, impl.GetIconImage())); ASSERT_TRUE(IsEqual(expected_image, impl->GetIconImage()));
ASSERT_TRUE(impl.GetBadgeIconImage().isNull()); ASSERT_TRUE(impl->GetBadgeIconImage().isNull());
} }
TEST_F(LauncherSearchIconImageLoaderTest, WithCustomIconSuccessCase) { TEST_F(LauncherSearchIconImageLoaderTest, WithCustomIconSuccessCase) {
GURL icon_url(kTestCustomIconURL); GURL icon_url(kTestCustomIconURL);
LauncherSearchIconImageLoaderTestImpl impl( auto impl = base::MakeRefCounted<LauncherSearchIconImageLoaderTestImpl>(
icon_url, nullptr, extension_.get(), 32, GetFakeErrorReporter()); icon_url, nullptr, extension_.get(), 32, GetFakeErrorReporter());
ASSERT_FALSE(impl.IsLoadExtensionIconResourceCalled()); ASSERT_FALSE(impl->IsLoadExtensionIconResourceCalled());
impl.LoadResources(); impl->LoadResources();
// Assert that LoadExtensionIconResource is called. // Assert that LoadExtensionIconResource is called.
ASSERT_TRUE(impl.IsLoadExtensionIconResourceCalled()); ASSERT_TRUE(impl->IsLoadExtensionIconResourceCalled());
// Load custom icon as async. // Load custom icon as async.
gfx::Size icon_size(32, 32); gfx::Size icon_size(32, 32);
gfx::ImageSkia custom_icon( gfx::ImageSkia custom_icon(
std::make_unique<FillColorImageSource>(icon_size, SK_ColorGREEN), std::make_unique<FillColorImageSource>(icon_size, SK_ColorGREEN),
icon_size); icon_size);
impl.CallOnCustomIconLoaded(custom_icon); impl->CallOnCustomIconLoaded(custom_icon);
// Assert that custom icon image is set to icon image and extension icon image // Assert that custom icon image is set to icon image and extension icon image
// is set to badge icon image. // is set to badge icon image.
gfx::ImageSkia expected_image( gfx::ImageSkia expected_image(
std::make_unique<FillColorImageSource>(icon_size, SK_ColorGREEN), std::make_unique<FillColorImageSource>(icon_size, SK_ColorGREEN),
icon_size); icon_size);
ASSERT_TRUE(IsEqual(expected_image, impl.GetIconImage())); ASSERT_TRUE(IsEqual(expected_image, impl->GetIconImage()));
gfx::ImageSkia expected_badge_icon_image( gfx::ImageSkia expected_badge_icon_image(
std::make_unique<FillColorImageSource>(icon_size, SK_ColorBLACK), std::make_unique<FillColorImageSource>(icon_size, SK_ColorBLACK),
icon_size); icon_size);
ASSERT_TRUE(IsEqual(expected_badge_icon_image, impl.GetBadgeIconImage())); ASSERT_TRUE(IsEqual(expected_badge_icon_image, impl->GetBadgeIconImage()));
} }
TEST_F(LauncherSearchIconImageLoaderTest, InvalidCustomIconUrl) { TEST_F(LauncherSearchIconImageLoaderTest, InvalidCustomIconUrl) {
...@@ -224,11 +219,11 @@ TEST_F(LauncherSearchIconImageLoaderTest, InvalidCustomIconUrl) { ...@@ -224,11 +219,11 @@ TEST_F(LauncherSearchIconImageLoaderTest, InvalidCustomIconUrl) {
std::unique_ptr<FakeErrorReporter> fake_error_reporter = std::unique_ptr<FakeErrorReporter> fake_error_reporter =
GetFakeErrorReporter(); GetFakeErrorReporter();
FakeErrorReporter* fake_error_reporter_ptr = fake_error_reporter.get();
GURL icon_url(invalid_url); GURL icon_url(invalid_url);
LauncherSearchIconImageLoaderTestImpl impl(icon_url, nullptr, auto impl = base::MakeRefCounted<LauncherSearchIconImageLoaderTestImpl>(
extension_.get(), 32, icon_url, nullptr, extension_.get(), 32, std::move(fake_error_reporter));
fake_error_reporter->Duplicate()); impl->LoadResources();
impl.LoadResources();
// Warning message should be provided. // Warning message should be provided.
ASSERT_EQ( ASSERT_EQ(
...@@ -236,31 +231,31 @@ TEST_F(LauncherSearchIconImageLoaderTest, InvalidCustomIconUrl) { ...@@ -236,31 +231,31 @@ TEST_F(LauncherSearchIconImageLoaderTest, InvalidCustomIconUrl) {
"chrome-extension://foo2/bar/" "chrome-extension://foo2/bar/"
"901234567890123456789012345678901234567890123456789012345678901234567..." "901234567890123456789012345678901234567890123456789012345678901234567..."
". Must have a valid URL within chrome-extension://foo.", ". Must have a valid URL within chrome-extension://foo.",
fake_error_reporter->GetLastWarningMessage()); fake_error_reporter_ptr->GetLastWarningMessage());
// LoadExtensionIconResource should not be called. // LoadExtensionIconResource should not be called.
ASSERT_FALSE(impl.IsLoadExtensionIconResourceCalled()); ASSERT_FALSE(impl->IsLoadExtensionIconResourceCalled());
} }
TEST_F(LauncherSearchIconImageLoaderTest, FailedToLoadCustomIcon) { TEST_F(LauncherSearchIconImageLoaderTest, FailedToLoadCustomIcon) {
std::unique_ptr<FakeErrorReporter> fake_error_reporter = std::unique_ptr<FakeErrorReporter> fake_error_reporter =
GetFakeErrorReporter(); GetFakeErrorReporter();
FakeErrorReporter* fake_error_reporter_ptr = fake_error_reporter.get();
GURL icon_url(kTestCustomIconURL); GURL icon_url(kTestCustomIconURL);
LauncherSearchIconImageLoaderTestImpl impl(icon_url, nullptr, auto impl = base::MakeRefCounted<LauncherSearchIconImageLoaderTestImpl>(
extension_.get(), 32, icon_url, nullptr, extension_.get(), 32, std::move(fake_error_reporter));
fake_error_reporter->Duplicate()); impl->LoadResources();
impl.LoadResources(); ASSERT_TRUE(impl->IsLoadExtensionIconResourceCalled());
ASSERT_TRUE(impl.IsLoadExtensionIconResourceCalled());
// Fails to load custom icon by passing an empty image. // Fails to load custom icon by passing an empty image.
gfx::ImageSkia custom_icon; gfx::ImageSkia custom_icon;
impl.CallOnCustomIconLoaded(custom_icon); impl->CallOnCustomIconLoaded(custom_icon);
// Warning message should be shown. // Warning message should be shown.
ASSERT_EQ( ASSERT_EQ(
"[chrome.launcherSearchProvider.setSearchResults] Failed to load icon " "[chrome.launcherSearchProvider.setSearchResults] Failed to load icon "
"URL: chrome-extension://foo/bar", "URL: chrome-extension://foo/bar",
fake_error_reporter->GetLastWarningMessage()); fake_error_reporter_ptr->GetLastWarningMessage());
// Assert that extension icon image is set to icon image and badge icon image // Assert that extension icon image is set to icon image and badge icon image
// is null. // is null.
...@@ -268,9 +263,9 @@ TEST_F(LauncherSearchIconImageLoaderTest, FailedToLoadCustomIcon) { ...@@ -268,9 +263,9 @@ TEST_F(LauncherSearchIconImageLoaderTest, FailedToLoadCustomIcon) {
gfx::ImageSkia expected_image( gfx::ImageSkia expected_image(
std::make_unique<FillColorImageSource>(icon_size, SK_ColorBLACK), std::make_unique<FillColorImageSource>(icon_size, SK_ColorBLACK),
icon_size); icon_size);
ASSERT_TRUE(IsEqual(expected_image, impl.GetIconImage())); ASSERT_TRUE(IsEqual(expected_image, impl->GetIconImage()));
ASSERT_TRUE(impl.GetBadgeIconImage().isNull()); ASSERT_TRUE(impl->GetBadgeIconImage().isNull());
} }
} // namespace app_list } // namespace app_list
...@@ -39,16 +39,15 @@ LauncherSearchResult::LauncherSearchResult( ...@@ -39,16 +39,15 @@ LauncherSearchResult::LauncherSearchResult(
DCHECK_LE(discrete_value_relevance, DCHECK_LE(discrete_value_relevance,
chromeos::launcher_search_provider::kMaxSearchResultScore); chromeos::launcher_search_provider::kMaxSearchResultScore);
icon_image_loader_.reset(new LauncherSearchIconImageLoaderImpl( icon_image_loader_ = base::MakeRefCounted<LauncherSearchIconImageLoaderImpl>(
icon_url, profile, extension, GetPreferredIconDimension(display_type()), icon_url, profile, extension, GetPreferredIconDimension(display_type()),
std::move(error_reporter))); std::move(error_reporter));
icon_image_loader_->LoadResources(); icon_image_loader_->LoadResources();
Initialize(); Initialize();
} }
LauncherSearchResult::~LauncherSearchResult() { LauncherSearchResult::~LauncherSearchResult() {
if (icon_image_loader_ != nullptr)
icon_image_loader_->RemoveObserver(this); icon_image_loader_->RemoveObserver(this);
} }
...@@ -85,13 +84,13 @@ LauncherSearchResult::LauncherSearchResult( ...@@ -85,13 +84,13 @@ LauncherSearchResult::LauncherSearchResult(
const int discrete_value_relevance, const int discrete_value_relevance,
Profile* profile, Profile* profile,
const extensions::Extension* extension, const extensions::Extension* extension,
const linked_ptr<LauncherSearchIconImageLoader>& icon_image_loader) const scoped_refptr<LauncherSearchIconImageLoader>& icon_image_loader)
: item_id_(item_id), : item_id_(item_id),
discrete_value_relevance_(discrete_value_relevance), discrete_value_relevance_(discrete_value_relevance),
profile_(profile), profile_(profile),
extension_(extension), extension_(extension),
icon_image_loader_(icon_image_loader) { icon_image_loader_(icon_image_loader) {
DCHECK(icon_image_loader_ != nullptr); DCHECK(icon_image_loader_);
Initialize(); Initialize();
} }
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#include <string> #include <string>
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/linked_ptr.h" #include "base/memory/scoped_refptr.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/app_list/search/chrome_search_result.h" #include "chrome/browser/ui/app_list/search/chrome_search_result.h"
#include "chrome/browser/ui/app_list/search/launcher_search/launcher_search_icon_image_loader.h" #include "chrome/browser/ui/app_list/search/launcher_search/launcher_search_icon_image_loader.h"
...@@ -44,7 +44,7 @@ class LauncherSearchResult : public ChromeSearchResult, ...@@ -44,7 +44,7 @@ class LauncherSearchResult : public ChromeSearchResult,
const int discrete_value_relevance, const int discrete_value_relevance,
Profile* profile, Profile* profile,
const extensions::Extension* extension, const extensions::Extension* extension,
const linked_ptr<LauncherSearchIconImageLoader>& icon_image_loader); const scoped_refptr<LauncherSearchIconImageLoader>& icon_image_loader);
void Initialize(); void Initialize();
// Returns search result ID. The search result ID is comprised of the // Returns search result ID. The search result ID is comprised of the
...@@ -57,7 +57,7 @@ class LauncherSearchResult : public ChromeSearchResult, ...@@ -57,7 +57,7 @@ class LauncherSearchResult : public ChromeSearchResult,
const int discrete_value_relevance_; const int discrete_value_relevance_;
Profile* profile_; Profile* profile_;
const extensions::Extension* extension_; const extensions::Extension* extension_;
linked_ptr<LauncherSearchIconImageLoader> icon_image_loader_; scoped_refptr<LauncherSearchIconImageLoader> icon_image_loader_;
DISALLOW_COPY_AND_ASSIGN(LauncherSearchResult); DISALLOW_COPY_AND_ASSIGN(LauncherSearchResult);
}; };
......
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