Commit 8f871b2a authored by Alexey Baskakov's avatar Alexey Baskakov Committed by Commit Bot

WebApp: Make WebAppIconManager read icon methods const. Change callback.

Add proper constness.

Change ReadIconCallback signature to return `const SkBitmap&`.

These changes are required for the integration with AppService.

This code is disabled by default behind kDesktopPWAsWithoutExtensions
base feature.

Bug: 1029221
Change-Id: I4ec06716014686c607ea86da864efe017b0ad585
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1941458
Auto-Submit: Alexey Baskakov <loyso@chromium.org>
Commit-Queue: Eric Willigers <ericwilligers@chromium.org>
Reviewed-by: default avatarEric Willigers <ericwilligers@chromium.org>
Cr-Commit-Position: refs/heads/master@{#719903}
parent 6671b3f4
...@@ -124,7 +124,7 @@ const AppRegistrar& WebAppBrowserController::registrar() const { ...@@ -124,7 +124,7 @@ const AppRegistrar& WebAppBrowserController::registrar() const {
return provider_.registrar(); return provider_.registrar();
} }
void WebAppBrowserController::OnReadIcon(SkBitmap bitmap) { void WebAppBrowserController::OnReadIcon(const SkBitmap& bitmap) {
if (bitmap.empty()) { if (bitmap.empty()) {
DLOG(ERROR) << "Failed to read icon for web app"; DLOG(ERROR) << "Failed to read icon for web app";
return; return;
......
...@@ -57,7 +57,7 @@ class WebAppBrowserController : public AppBrowserController { ...@@ -57,7 +57,7 @@ class WebAppBrowserController : public AppBrowserController {
private: private:
const AppRegistrar& registrar() const; const AppRegistrar& registrar() const;
void OnReadIcon(SkBitmap bitmap); void OnReadIcon(const SkBitmap& bitmap);
WebAppProvider& provider_; WebAppProvider& provider_;
mutable base::Optional<gfx::ImageSkia> app_icon_; mutable base::Optional<gfx::ImageSkia> app_icon_;
......
...@@ -24,17 +24,17 @@ class AppIconManager { ...@@ -24,17 +24,17 @@ class AppIconManager {
// Reads icon's bitmap for an app. Returns false if no IconInfo for // Reads icon's bitmap for an app. Returns false if no IconInfo for
// |icon_size_in_px|. Returns empty SkBitmap in |callback| if IO error. // |icon_size_in_px|. Returns empty SkBitmap in |callback| if IO error.
using ReadIconCallback = base::OnceCallback<void(SkBitmap)>; using ReadIconCallback = base::OnceCallback<void(const SkBitmap&)>;
virtual bool ReadIcon(const AppId& app_id, virtual bool ReadIcon(const AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadIconCallback callback) = 0; ReadIconCallback callback) const = 0;
// Reads smallest icon with size at least |icon_size_in_px|. // Reads smallest icon with size at least |icon_size_in_px|.
// Returns false if there is no such icon. // Returns false if there is no such icon.
// Returns empty SkBitmap in |callback| if IO error. // Returns empty SkBitmap in |callback| if IO error.
virtual bool ReadSmallestIcon(const AppId& app_id, virtual bool ReadSmallestIcon(const AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadIconCallback callback) = 0; ReadIconCallback callback) const = 0;
// Reads smallest icon, compressed as PNG with size at least // Reads smallest icon, compressed as PNG with size at least
// |icon_size_in_px|. Returns false if there is no such icon. Returns empty // |icon_size_in_px|. Returns false if there is no such icon. Returns empty
...@@ -44,7 +44,7 @@ class AppIconManager { ...@@ -44,7 +44,7 @@ class AppIconManager {
virtual bool ReadSmallestCompressedIcon( virtual bool ReadSmallestCompressedIcon(
const AppId& app_id, const AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadCompressedIconCallback callback) = 0; ReadCompressedIconCallback callback) const = 0;
private: private:
DISALLOW_COPY_AND_ASSIGN(AppIconManager); DISALLOW_COPY_AND_ASSIGN(AppIconManager);
......
...@@ -53,7 +53,7 @@ BookmarkAppIconManager::~BookmarkAppIconManager() = default; ...@@ -53,7 +53,7 @@ BookmarkAppIconManager::~BookmarkAppIconManager() = default;
bool BookmarkAppIconManager::ReadIcon(const web_app::AppId& app_id, bool BookmarkAppIconManager::ReadIcon(const web_app::AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadIconCallback callback) { ReadIconCallback callback) const {
return ReadExtensionIcon(profile_, app_id, icon_size_in_px, return ReadExtensionIcon(profile_, app_id, icon_size_in_px,
ExtensionIconSet::MATCH_EXACTLY, ExtensionIconSet::MATCH_EXACTLY,
std::move(callback)); std::move(callback));
...@@ -61,7 +61,7 @@ bool BookmarkAppIconManager::ReadIcon(const web_app::AppId& app_id, ...@@ -61,7 +61,7 @@ bool BookmarkAppIconManager::ReadIcon(const web_app::AppId& app_id,
bool BookmarkAppIconManager::ReadSmallestIcon(const web_app::AppId& app_id, bool BookmarkAppIconManager::ReadSmallestIcon(const web_app::AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadIconCallback callback) { ReadIconCallback callback) const {
return ReadExtensionIcon(profile_, app_id, icon_size_in_px, return ReadExtensionIcon(profile_, app_id, icon_size_in_px,
ExtensionIconSet::MATCH_BIGGER, std::move(callback)); ExtensionIconSet::MATCH_BIGGER, std::move(callback));
} }
...@@ -69,7 +69,7 @@ bool BookmarkAppIconManager::ReadSmallestIcon(const web_app::AppId& app_id, ...@@ -69,7 +69,7 @@ bool BookmarkAppIconManager::ReadSmallestIcon(const web_app::AppId& app_id,
bool BookmarkAppIconManager::ReadSmallestCompressedIcon( bool BookmarkAppIconManager::ReadSmallestCompressedIcon(
const web_app::AppId& app_id, const web_app::AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadCompressedIconCallback callback) { ReadCompressedIconCallback callback) const {
NOTIMPLEMENTED(); NOTIMPLEMENTED();
return false; return false;
} }
......
...@@ -22,13 +22,14 @@ class BookmarkAppIconManager : public web_app::AppIconManager { ...@@ -22,13 +22,14 @@ class BookmarkAppIconManager : public web_app::AppIconManager {
// AppIconManager: // AppIconManager:
bool ReadIcon(const web_app::AppId& app_id, bool ReadIcon(const web_app::AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadIconCallback callback) override; ReadIconCallback callback) const override;
bool ReadSmallestIcon(const web_app::AppId& app_id, bool ReadSmallestIcon(const web_app::AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadIconCallback callback) override; ReadIconCallback callback) const override;
bool ReadSmallestCompressedIcon(const web_app::AppId& app_id, bool ReadSmallestCompressedIcon(
const web_app::AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadCompressedIconCallback callback) override; ReadCompressedIconCallback callback) const override;
private: private:
Profile* const profile_; Profile* const profile_;
......
...@@ -260,7 +260,7 @@ void WebAppIconManager::DeleteData(AppId app_id, WriteDataCallback callback) { ...@@ -260,7 +260,7 @@ void WebAppIconManager::DeleteData(AppId app_id, WriteDataCallback callback) {
bool WebAppIconManager::ReadIcon(const AppId& app_id, bool WebAppIconManager::ReadIcon(const AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadIconCallback callback) { ReadIconCallback callback) const {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
const WebApp* web_app = registrar_.GetAppById(app_id); const WebApp* web_app = registrar_.GetAppById(app_id);
...@@ -279,7 +279,7 @@ bool WebAppIconManager::ReadIcon(const AppId& app_id, ...@@ -279,7 +279,7 @@ bool WebAppIconManager::ReadIcon(const AppId& app_id,
bool WebAppIconManager::ReadSmallestIcon(const AppId& app_id, bool WebAppIconManager::ReadSmallestIcon(const AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadIconCallback callback) { ReadIconCallback callback) const {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
int best_size_in_px = 0; int best_size_in_px = 0;
...@@ -293,7 +293,7 @@ bool WebAppIconManager::ReadSmallestIcon(const AppId& app_id, ...@@ -293,7 +293,7 @@ bool WebAppIconManager::ReadSmallestIcon(const AppId& app_id,
bool WebAppIconManager::ReadSmallestCompressedIcon( bool WebAppIconManager::ReadSmallestCompressedIcon(
const AppId& app_id, const AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadCompressedIconCallback callback) { ReadCompressedIconCallback callback) const {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
int best_size_in_px = 0; int best_size_in_px = 0;
...@@ -329,7 +329,7 @@ bool WebAppIconManager::FindBestSizeInPx(const AppId& app_id, ...@@ -329,7 +329,7 @@ bool WebAppIconManager::FindBestSizeInPx(const AppId& app_id,
void WebAppIconManager::ReadIconInternal(const AppId& app_id, void WebAppIconManager::ReadIconInternal(const AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadIconCallback callback) { ReadIconCallback callback) const {
base::PostTaskAndReplyWithResult( base::PostTaskAndReplyWithResult(
FROM_HERE, kTaskTraits, FROM_HERE, kTaskTraits,
base::BindOnce(ReadIconBlocking, utils_->Clone(), web_apps_directory_, base::BindOnce(ReadIconBlocking, utils_->Clone(), web_apps_directory_,
......
...@@ -38,13 +38,14 @@ class WebAppIconManager : public AppIconManager { ...@@ -38,13 +38,14 @@ class WebAppIconManager : public AppIconManager {
// AppIconManager: // AppIconManager:
bool ReadIcon(const AppId& app_id, bool ReadIcon(const AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadIconCallback callback) override; ReadIconCallback callback) const override;
bool ReadSmallestIcon(const AppId& app_id, bool ReadSmallestIcon(const AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadIconCallback callback) override; ReadIconCallback callback) const override;
bool ReadSmallestCompressedIcon(const AppId& app_id, bool ReadSmallestCompressedIcon(
const AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadCompressedIconCallback callback) override; ReadCompressedIconCallback callback) const override;
private: private:
bool FindBestSizeInPx(const AppId& app_id, bool FindBestSizeInPx(const AppId& app_id,
...@@ -53,7 +54,7 @@ class WebAppIconManager : public AppIconManager { ...@@ -53,7 +54,7 @@ class WebAppIconManager : public AppIconManager {
void ReadIconInternal(const AppId& app_id, void ReadIconInternal(const AppId& app_id,
int icon_size_in_px, int icon_size_in_px,
ReadIconCallback callback); ReadIconCallback callback) const;
const WebAppRegistrar& registrar_; const WebAppRegistrar& registrar_;
base::FilePath web_apps_directory_; base::FilePath web_apps_directory_;
......
...@@ -150,7 +150,8 @@ TEST_F(WebAppIconManagerTest, WriteAndReadIcon) { ...@@ -150,7 +150,8 @@ TEST_F(WebAppIconManagerTest, WriteAndReadIcon) {
base::RunLoop run_loop; base::RunLoop run_loop;
const bool icon_requested = icon_manager().ReadIcon( const bool icon_requested = icon_manager().ReadIcon(
app_id, sizes_px[0], base::BindLambdaForTesting([&](SkBitmap bitmap) { app_id, sizes_px[0],
base::BindLambdaForTesting([&](const SkBitmap& bitmap) {
EXPECT_FALSE(bitmap.empty()); EXPECT_FALSE(bitmap.empty());
EXPECT_EQ(colors[0], bitmap.getColor(0, 0)); EXPECT_EQ(colors[0], bitmap.getColor(0, 0));
run_loop.Quit(); run_loop.Quit();
...@@ -183,7 +184,8 @@ TEST_F(WebAppIconManagerTest, ReadIconFailed) { ...@@ -183,7 +184,8 @@ TEST_F(WebAppIconManagerTest, ReadIconFailed) {
base::RunLoop run_loop; base::RunLoop run_loop;
const bool icon_requested = icon_manager().ReadIcon( const bool icon_requested = icon_manager().ReadIcon(
app_id, icon_size_px, base::BindLambdaForTesting([&](SkBitmap bitmap) { app_id, icon_size_px,
base::BindLambdaForTesting([&](const SkBitmap& bitmap) {
EXPECT_TRUE(bitmap.empty()); EXPECT_TRUE(bitmap.empty());
run_loop.Quit(); run_loop.Quit();
})); }));
...@@ -207,8 +209,9 @@ TEST_F(WebAppIconManagerTest, FindExact) { ...@@ -207,8 +209,9 @@ TEST_F(WebAppIconManagerTest, FindExact) {
{ {
const bool icon_requested = icon_manager().ReadIcon( const bool icon_requested = icon_manager().ReadIcon(
app_id, 40, app_id, 40, base::BindLambdaForTesting([&](const SkBitmap& bitmap) {
base::BindLambdaForTesting([&](SkBitmap bitmap) { NOTREACHED(); })); NOTREACHED();
}));
EXPECT_FALSE(icon_requested); EXPECT_FALSE(icon_requested);
} }
...@@ -216,7 +219,7 @@ TEST_F(WebAppIconManagerTest, FindExact) { ...@@ -216,7 +219,7 @@ TEST_F(WebAppIconManagerTest, FindExact) {
base::RunLoop run_loop; base::RunLoop run_loop;
const bool icon_requested = icon_manager().ReadIcon( const bool icon_requested = icon_manager().ReadIcon(
app_id, 20, base::BindLambdaForTesting([&](SkBitmap bitmap) { app_id, 20, base::BindLambdaForTesting([&](const SkBitmap& bitmap) {
EXPECT_FALSE(bitmap.empty()); EXPECT_FALSE(bitmap.empty());
EXPECT_EQ(SK_ColorBLUE, bitmap.getColor(0, 0)); EXPECT_EQ(SK_ColorBLUE, bitmap.getColor(0, 0));
run_loop.Quit(); run_loop.Quit();
...@@ -242,8 +245,9 @@ TEST_F(WebAppIconManagerTest, FindSmallest) { ...@@ -242,8 +245,9 @@ TEST_F(WebAppIconManagerTest, FindSmallest) {
{ {
const bool icon_requested = icon_manager().ReadSmallestIcon( const bool icon_requested = icon_manager().ReadSmallestIcon(
app_id, 70, app_id, 70, base::BindLambdaForTesting([&](const SkBitmap& bitmap) {
base::BindLambdaForTesting([&](SkBitmap bitmap) { NOTREACHED(); })); NOTREACHED();
}));
EXPECT_FALSE(icon_requested); EXPECT_FALSE(icon_requested);
} }
...@@ -251,7 +255,7 @@ TEST_F(WebAppIconManagerTest, FindSmallest) { ...@@ -251,7 +255,7 @@ TEST_F(WebAppIconManagerTest, FindSmallest) {
base::RunLoop run_loop; base::RunLoop run_loop;
const bool icon_requested = icon_manager().ReadSmallestIcon( const bool icon_requested = icon_manager().ReadSmallestIcon(
app_id, 40, base::BindLambdaForTesting([&](SkBitmap bitmap) { app_id, 40, base::BindLambdaForTesting([&](const SkBitmap& bitmap) {
EXPECT_FALSE(bitmap.empty()); EXPECT_FALSE(bitmap.empty());
EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(0, 0)); EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(0, 0));
run_loop.Quit(); run_loop.Quit();
...@@ -265,7 +269,7 @@ TEST_F(WebAppIconManagerTest, FindSmallest) { ...@@ -265,7 +269,7 @@ TEST_F(WebAppIconManagerTest, FindSmallest) {
base::RunLoop run_loop; base::RunLoop run_loop;
const bool icon_requested = icon_manager().ReadSmallestIcon( const bool icon_requested = icon_manager().ReadSmallestIcon(
app_id, 20, base::BindLambdaForTesting([&](SkBitmap bitmap) { app_id, 20, base::BindLambdaForTesting([&](const SkBitmap& bitmap) {
EXPECT_FALSE(bitmap.empty()); EXPECT_FALSE(bitmap.empty());
EXPECT_EQ(SK_ColorBLUE, bitmap.getColor(0, 0)); EXPECT_EQ(SK_ColorBLUE, bitmap.getColor(0, 0));
run_loop.Quit(); run_loop.Quit();
......
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