Commit 03a86607 authored by Alexey Baskakov's avatar Alexey Baskakov Committed by Commit Bot

WebApp: Extract AppRegistrar::GetAppDownloadedIconSizes method.

This getter will be needed for WebAppMigrationManager to convert
downloaded icon sizes info.

Bug: 1020037
Change-Id: I6d3fcb2e878671f9af455c3555aa4cf99053ea85
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2037302Reviewed-by: default avatarAlan Cutter <alancutter@chromium.org>
Commit-Queue: Alexey Baskakov <loyso@chromium.org>
Cr-Commit-Position: refs/heads/master@{#738471}
parent 71a259e5
......@@ -91,6 +91,10 @@ class AppRegistrar {
virtual std::vector<WebApplicationIconInfo> GetAppIconInfos(
const AppId& app_id) const = 0;
// Represents which icon sizes we successfully downloaded from the IconInfos.
virtual std::vector<SquareSizePx> GetAppDownloadedIconSizes(
const AppId& app_id) const = 0;
virtual std::vector<AppId> GetAppIds() const = 0;
// Safe downcast.
......
......@@ -7,6 +7,7 @@
#include "base/logging.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/web_applications/extensions/bookmark_app_registrar.h"
#include "chrome/browser/web_applications/extensions/bookmark_app_util.h"
#include "content/public/browser/browser_thread.h"
#include "extensions/browser/image_loader.h"
#include "extensions/common/extension_icon_set.h"
......@@ -83,21 +84,6 @@ void ReadExtensionIcons(Profile* profile,
base::BindOnce(&OnExtensionIconsLoaded, std::move(callback)));
}
void ReadAllExtensionIcons(Profile* profile,
const web_app::AppId& app_id,
BookmarkAppIconManager::ReadIconsCallback callback) {
const Extension* app = GetBookmarkApp(profile, app_id);
DCHECK(app);
const ExtensionIconSet& icons = IconsInfo::GetIcons(app);
std::vector<SquareSizePx> icon_sizes_in_px;
for (const ExtensionIconSet::IconMap::value_type& icon_info : icons.map())
icon_sizes_in_px.push_back(icon_info.first);
ReadExtensionIcons(profile, app_id, icon_sizes_in_px, std::move(callback));
}
} // anonymous namespace
BookmarkAppIconManager::BookmarkAppIconManager(Profile* profile)
......@@ -149,7 +135,10 @@ void BookmarkAppIconManager::ReadIcons(
void BookmarkAppIconManager::ReadAllIcons(const web_app::AppId& app_id,
ReadIconsCallback callback) const {
ReadAllExtensionIcons(profile_, app_id, std::move(callback));
const Extension* app = GetBookmarkApp(profile_, app_id);
DCHECK(app);
ReadExtensionIcons(profile_, app_id, GetBookmarkAppDownloadedIconSizes(app),
std::move(callback));
}
void BookmarkAppIconManager::ReadSmallestIcon(const web_app::AppId& app_id,
......
......@@ -182,6 +182,13 @@ std::vector<WebApplicationIconInfo> BookmarkAppRegistrar::GetAppIconInfos(
return result;
}
std::vector<SquareSizePx> BookmarkAppRegistrar::GetAppDownloadedIconSizes(
const web_app::AppId& app_id) const {
const Extension* extension = GetBookmarkApp(app_id);
return extension ? GetBookmarkAppDownloadedIconSizes(extension)
: std::vector<SquareSizePx>();
}
std::vector<web_app::AppId> BookmarkAppRegistrar::GetAppIds() const {
std::vector<web_app::AppId> app_ids;
for (scoped_refptr<const Extension> app :
......
......@@ -41,6 +41,8 @@ class BookmarkAppRegistrar : public web_app::AppRegistrar,
const web_app::AppId& app_id) const override;
std::vector<WebApplicationIconInfo> GetAppIconInfos(
const web_app::AppId& app_id) const override;
std::vector<SquareSizePx> GetAppDownloadedIconSizes(
const web_app::AppId& app_id) const override;
std::vector<web_app::AppId> GetAppIds() const override;
web_app::WebAppRegistrar* AsWebAppRegistrar() override;
BookmarkAppRegistrar* AsBookmarkAppRegistrar() override;
......
......@@ -17,6 +17,8 @@
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_icon_set.h"
#include "extensions/common/manifest_handlers/icons_handler.h"
#include "url/gurl.h"
namespace extensions {
......@@ -106,4 +108,17 @@ int CountUserInstalledBookmarkApps(content::BrowserContext* browser_context) {
return num_user_installed;
}
std::vector<SquareSizePx> GetBookmarkAppDownloadedIconSizes(
const Extension* extension) {
const ExtensionIconSet& icons = IconsInfo::GetIcons(extension);
std::vector<SquareSizePx> icon_sizes_in_px;
icon_sizes_in_px.reserve(icons.map().size());
for (const ExtensionIconSet::IconMap::value_type& icon_info : icons.map())
icon_sizes_in_px.push_back(icon_info.first);
return icon_sizes_in_px;
}
} // namespace extensions
......@@ -5,6 +5,10 @@
#ifndef CHROME_BROWSER_WEB_APPLICATIONS_EXTENSIONS_BOOKMARK_APP_UTIL_H_
#define CHROME_BROWSER_WEB_APPLICATIONS_EXTENSIONS_BOOKMARK_APP_UTIL_H_
#include <vector>
#include "chrome/common/web_application_info.h"
namespace content {
class BrowserContext;
}
......@@ -47,6 +51,9 @@ const Extension* GetInstalledShortcutForUrl(Profile* profile, const GURL& url);
// (non default-installed apps).
int CountUserInstalledBookmarkApps(content::BrowserContext* browser_context);
std::vector<SquareSizePx> GetBookmarkAppDownloadedIconSizes(
const Extension* extension);
} // namespace extensions
#endif // CHROME_BROWSER_WEB_APPLICATIONS_EXTENSIONS_BOOKMARK_APP_UTIL_H_
......@@ -5,6 +5,7 @@
#include "chrome/browser/web_applications/test/test_app_registrar.h"
#include "base/callback.h"
#include "base/logging.h"
#include "base/stl_util.h"
#include "url/gurl.h"
......@@ -126,6 +127,12 @@ std::vector<WebApplicationIconInfo> TestAppRegistrar::GetAppIconInfos(
return {};
}
std::vector<SquareSizePx> TestAppRegistrar::GetAppDownloadedIconSizes(
const AppId& app_id) const {
NOTIMPLEMENTED();
return {};
}
std::vector<AppId> TestAppRegistrar::GetAppIds() const {
std::vector<AppId> result;
for (const std::pair<AppId, AppInfo>& it : installed_apps_) {
......
......@@ -54,6 +54,8 @@ class TestAppRegistrar : public AppRegistrar {
DisplayMode GetAppUserDisplayMode(const AppId& app_id) const override;
std::vector<WebApplicationIconInfo> GetAppIconInfos(
const AppId& app_id) const override;
std::vector<SquareSizePx> GetAppDownloadedIconSizes(
const AppId& app_id) const override;
std::vector<AppId> GetAppIds() const override;
WebAppRegistrar* AsWebAppRegistrar() override;
......
......@@ -100,6 +100,13 @@ std::vector<WebApplicationIconInfo> WebAppRegistrar::GetAppIconInfos(
: std::vector<WebApplicationIconInfo>();
}
std::vector<SquareSizePx> WebAppRegistrar::GetAppDownloadedIconSizes(
const AppId& app_id) const {
auto* web_app = GetAppById(app_id);
return web_app ? web_app->downloaded_icon_sizes()
: std::vector<SquareSizePx>();
}
std::vector<AppId> WebAppRegistrar::GetAppIds() const {
std::vector<AppId> app_ids;
app_ids.reserve(registry_.size());
......
......@@ -46,6 +46,8 @@ class WebAppRegistrar : public AppRegistrar {
DisplayMode GetAppUserDisplayMode(const AppId& app_id) const override;
std::vector<WebApplicationIconInfo> GetAppIconInfos(
const AppId& app_id) const override;
std::vector<SquareSizePx> GetAppDownloadedIconSizes(
const AppId& app_id) const override;
std::vector<AppId> GetAppIds() const override;
WebAppRegistrar* AsWebAppRegistrar() override;
......
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