1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_WEB_APPLICATIONS_TEST_WEB_APP_ICON_TEST_UTILS_H_
#define CHROME_BROWSER_WEB_APPLICATIONS_TEST_WEB_APP_ICON_TEST_UTILS_H_
#include <map>
#include <vector>
#include "base/containers/span.h"
#include "base/files/file_path.h"
#include "chrome/browser/web_applications/web_app_install_info.h"
#include "chrome/browser/web_applications/web_app_install_utils.h"
#include "components/webapps/common/web_app_id.h"
#include "third_party/blink/public/common/manifest/manifest.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/skia/include/core/SkColor.h"
class GURL;
class Profile;
namespace gfx {
class ImageSkia;
}
namespace web_app {
class FileUtilsWrapper;
class WebAppIconManager;
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);
// Performs blocking IO and decompression.
SkBitmap ReadBitmap(FileUtilsWrapper* utils, const base::FilePath& file_path);
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);
// Performs blocking IO and decompression.
std::map<SquareSizePx, SkBitmap> ReadPngsFromDirectory(
FileUtilsWrapper* file_utils,
const base::FilePath& icons_dir);
struct GeneratedIconsInfo {
GeneratedIconsInfo();
GeneratedIconsInfo(const GeneratedIconsInfo&);
GeneratedIconsInfo(IconPurpose purpose,
std::vector<SquareSizePx> sizes_px,
std::vector<SkColor> colors);
~GeneratedIconsInfo();
IconPurpose purpose;
std::vector<SquareSizePx> sizes_px;
std::vector<SkColor> colors;
};
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);
// Synchronous read of an app icon pixel.
SkColor IconManagerReadAppIconPixel(WebAppIconManager& icon_manager,
const webapps::AppId& app_id,
SquareSizePx size_px,
int x = 0,
int y = 0);
} // namespace web_app
#endif // CHROME_BROWSER_WEB_APPLICATIONS_TEST_WEB_APP_ICON_TEST_UTILS_H_
|