#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "chrome/browser/web_applications/test/web_app_icon_test_utils.h"
#include <utility>
#include "base/containers/contains.h"
#include "base/files/file_enumerator.h"
#include "base/files/file_path.h"
#include "base/ranges/algorithm.h"
#include "base/run_loop.h"
#include "base/strings/stringprintf.h"
#include "base/test/bind.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/web_applications/file_utils_wrapper.h"
#include "chrome/browser/web_applications/web_app_icon_generator.h"
#include "chrome/browser/web_applications/web_app_icon_manager.h"
#include "chrome/browser/web_applications/web_app_utils.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/core/SkColor.h"
#include "ui/gfx/codec/png_codec.h"
#include "ui/gfx/color_utils.h"
#include "ui/gfx/image/image_skia.h"
#include "ui/gfx/image/image_skia_rep.h"
#include "url/gurl.h"
namespace web_app {
namespace {
constexpr int kIconSizes[] = …;
}
SkBitmap CreateSquareIcon(int size_px, SkColor solid_color) { … }
void AddGeneratedIcon(std::map<SquareSizePx, SkBitmap>* icon_bitmaps,
int size_px,
SkColor solid_color) { … }
void AddIconToIconsMap(const GURL& icon_url,
int size_px,
SkColor solid_color,
IconsMap* icons_map) { … }
void AddEmptyIconToIconsMap(const GURL& icon_url, IconsMap* icons_map) { … }
bool AreColorsEqual(SkColor expected_color,
SkColor actual_color,
int threshold) { … }
base::FilePath GetAppIconsAnyDir(Profile* profile,
const webapps::AppId& app_id) { … }
base::FilePath GetAppIconsMaskableDir(Profile* profile,
const webapps::AppId& app_id) { … }
base::FilePath GetOtherIconsDir(Profile* profile,
const webapps::AppId& app_id) { … }
bool ReadBitmap(FileUtilsWrapper* utils,
const base::FilePath& file_path,
SkBitmap* bitmap) { … }
base::span<const int> GetIconSizes() { … }
bool ContainsOneIconOfEachSize(
const std::map<SquareSizePx, SkBitmap>& icon_bitmaps) { … }
void ExpectImageSkiaRep(const gfx::ImageSkia& image_skia,
float scale,
SquareSizePx size_px,
SkColor color) { … }
blink::Manifest::ImageResource CreateSquareImageResource(
const GURL& src,
int size_px,
const std::vector<IconPurpose>& purposes) { … }
std::map<SquareSizePx, SkBitmap> ReadPngsFromDirectory(
FileUtilsWrapper* file_utils,
const base::FilePath& icons_dir) { … }
GeneratedIconsInfo::GeneratedIconsInfo() = default;
GeneratedIconsInfo::GeneratedIconsInfo(const GeneratedIconsInfo&) = default;
GeneratedIconsInfo::GeneratedIconsInfo(IconPurpose purpose,
std::vector<SquareSizePx> sizes_px,
std::vector<SkColor> colors)
: … { … }
GeneratedIconsInfo::~GeneratedIconsInfo() = default;
apps::IconInfo CreateIconInfo(const GURL& icon_base_url,
IconPurpose purpose,
SquareSizePx size_px) { … }
void AddIconsToWebAppInstallInfo(
WebAppInstallInfo* install_info,
const GURL& icons_base_url,
const std::vector<GeneratedIconsInfo>& icons_info) { … }
void IconManagerWriteGeneratedIcons(
WebAppIconManager& icon_manager,
const webapps::AppId& app_id,
const std::vector<GeneratedIconsInfo>& icons_info) { … }
SkColor IconManagerReadAppIconPixel(WebAppIconManager& icon_manager,
const webapps::AppId& app_id,
SquareSizePx size_px,
int x,
int y) { … }
}