mirror of
https://github.com/jkingsman/Remote-Terminal-for-MeshCore.git
synced 2026-08-07 17:23:05 +02:00
Move to all PNGs in webmanifest.
This commit is contained in:
+27
-12
@@ -135,7 +135,34 @@ def register_frontend_static_routes(app: FastAPI, frontend_dir: Path) -> bool:
|
|||||||
"display_override": ["window-controls-overlay", "standalone", "fullscreen"],
|
"display_override": ["window-controls-overlay", "standalone", "fullscreen"],
|
||||||
"theme_color": "#111419",
|
"theme_color": "#111419",
|
||||||
"background_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": [
|
"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",
|
"src": f"{base}web-app-manifest-192x192.png",
|
||||||
"sizes": "192x192",
|
"sizes": "192x192",
|
||||||
@@ -148,18 +175,6 @@ def register_frontend_static_routes(app: FastAPI, frontend_dir: Path) -> bool:
|
|||||||
"type": "image/png",
|
"type": "image/png",
|
||||||
"purpose": "maskable",
|
"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": [
|
"screenshots": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -69,7 +69,12 @@ def test_valid_dist_serves_static_and_spa_fallback(tmp_path):
|
|||||||
assert manifest["scope"] == "http://testserver/"
|
assert manifest["scope"] == "http://testserver/"
|
||||||
assert manifest["id"] == "http://testserver/"
|
assert manifest["id"] == "http://testserver/"
|
||||||
assert manifest["display"] == "standalone"
|
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")
|
file_response = client.get("/robots.txt")
|
||||||
assert file_response.status_code == 200
|
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["start_url"] == expected_base
|
||||||
assert data["scope"] == expected_base
|
assert data["scope"] == expected_base
|
||||||
assert data["id"] == 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):
|
def test_first_available_prefers_dist_over_prebuilt(tmp_path):
|
||||||
|
|||||||
Reference in New Issue
Block a user