PWARegistry looks at the Web App Manifest icons, fetches them, and classifies the reachable images. You do not inspect every raw manifest icon yourself.
Each full record has:
| Field | Use |
|---|---|
application.icons.primary |
The icon for a normal listing. May be null. |
application.icons.maskable |
Maskable icons (for adaptive OS shapes). |
application.icons.monochrome |
Monochrome icons. |
application.icons.any |
Icons whose purpose is any (or unspecified). |
application.icons.all |
Every reachable icon, in one list. |
For a store row, a catalog card, or a launcher tile:
const icon = app.application.icons.primary;
if (icon) {
img.src = icon.src;
img.width = icon.width ?? 64;
img.height = icon.height ?? 64;
}
If primary is null, the site did not ship a usable icon. Leave a blank or a generic placeholder in your UI — PWARegistry will not invent artwork.
Icons are not proxied. The src is the origin URL. Hotlink with referrerpolicy="no-referrer". If a file later 404s, the next health pass will notice.
capabilities.maskableIcon is true when at least one maskable icon was observed.