mirror of
https://github.com/jkingsman/Remote-Terminal-for-MeshCore.git
synced 2026-05-01 11:02:56 +02:00
Move to all PNGs in webmanifest.
This commit is contained in:
@@ -135,7 +135,34 @@ def register_frontend_static_routes(app: FastAPI, frontend_dir: Path) -> bool:
|
||||
"display_override": ["window-controls-overlay", "standalone", "fullscreen"],
|
||||
"theme_color": "#111419",
|
||||
"background_color": "#111419",
|
||||
# Icons are PNG-only on purpose. iOS Safari's manifest parser has
|
||||
# historically been unreliable with SVG icons, and Android/Chrome
|
||||
# PWA install flows prefer PNG for the install prompt.
|
||||
#
|
||||
# The "any" purpose entries are what iOS and desktop Chrome use
|
||||
# for the home-screen / install icon. "maskable" entries are
|
||||
# Android-only (adaptive icon with safe-zone crop); iOS does not
|
||||
# apply the safe-zone mask, so a maskable-only icon set would
|
||||
# render with excessive padding.
|
||||
"icons": [
|
||||
{
|
||||
"src": f"{base}favicon-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image/png",
|
||||
"purpose": "any",
|
||||
},
|
||||
{
|
||||
"src": f"{base}apple-touch-icon.png",
|
||||
"sizes": "180x180",
|
||||
"type": "image/png",
|
||||
"purpose": "any",
|
||||
},
|
||||
{
|
||||
"src": f"{base}favicon-256x256.png",
|
||||
"sizes": "256x256",
|
||||
"type": "image/png",
|
||||
"purpose": "any",
|
||||
},
|
||||
{
|
||||
"src": f"{base}web-app-manifest-192x192.png",
|
||||
"sizes": "192x192",
|
||||
@@ -148,18 +175,6 @@ def register_frontend_static_routes(app: FastAPI, frontend_dir: Path) -> bool:
|
||||
"type": "image/png",
|
||||
"purpose": "maskable",
|
||||
},
|
||||
{
|
||||
"src": f"{base}favicon.svg",
|
||||
"sizes": "any",
|
||||
"type": "image/svg+xml",
|
||||
"purpose": "any",
|
||||
},
|
||||
{
|
||||
"src": f"{base}favicon-256x256.png",
|
||||
"sizes": "256x256",
|
||||
"type": "image/png",
|
||||
"purpose": "any",
|
||||
},
|
||||
],
|
||||
"screenshots": [
|
||||
{
|
||||
|
||||
@@ -69,7 +69,12 @@ def test_valid_dist_serves_static_and_spa_fallback(tmp_path):
|
||||
assert manifest["scope"] == "http://testserver/"
|
||||
assert manifest["id"] == "http://testserver/"
|
||||
assert manifest["display"] == "standalone"
|
||||
assert manifest["icons"][0]["src"] == "http://testserver/web-app-manifest-192x192.png"
|
||||
icon_srcs = {icon["src"] for icon in manifest["icons"]}
|
||||
assert "http://testserver/web-app-manifest-192x192.png" in icon_srcs
|
||||
assert "http://testserver/web-app-manifest-512x512.png" in icon_srcs
|
||||
# SVG icons cause inconsistent PWA icon rendering on iOS; the manifest
|
||||
# must be PNG-only.
|
||||
assert all(icon["type"] == "image/png" for icon in manifest["icons"])
|
||||
|
||||
file_response = client.get("/robots.txt")
|
||||
assert file_response.status_code == 200
|
||||
@@ -152,7 +157,9 @@ def test_webmanifest_includes_forwarded_prefix(tmp_path):
|
||||
assert data["start_url"] == expected_base
|
||||
assert data["scope"] == expected_base
|
||||
assert data["id"] == expected_base
|
||||
assert data["icons"][0]["src"] == f"{expected_base}web-app-manifest-192x192.png"
|
||||
icon_srcs = {icon["src"] for icon in data["icons"]}
|
||||
assert f"{expected_base}web-app-manifest-192x192.png" in icon_srcs
|
||||
assert f"{expected_base}web-app-manifest-512x512.png" in icon_srcs
|
||||
|
||||
|
||||
def test_first_available_prefers_dist_over_prebuilt(tmp_path):
|
||||
|
||||
Reference in New Issue
Block a user