From 1168ba647954ae6adea7c3361202fed3ed8aeaf3 Mon Sep 17 00:00:00 2001 From: s8n Date: Sat, 9 May 2026 10:17:40 +0100 Subject: [PATCH] favicon hijack + tonemap fix shipped to prod Favicon: prod's older lockFavicon() shim was clobbering our injected A-logo tags every head mutation. Tag our links with data-arrflix-icon="A" + add a hijack IIFE that re-pins the A URL on matching tags AND removes any other large data:image/png link tags. Tonemap: encoding.xml flipped EnableTonemapping false to true on dev + prod (server-side, not in repo). Doc 21 documented this fix 2026-05-08; prod was still grey-washing HDR10 sources because setparams was relabeling PQ pixels as bt709 without zscale + tonemap conversion. API now reports EnableTonemapping=True. Next HDR10 transcode gets the proper zscale -> tonemap -> format ffmpeg chain. Both verified on dev first then promoted. Prod overlay md5 c6c85076 to 364cc890. dev and prod overlay byte-identical. --- bin/inject-middle-theme.py | 23 ++++++++++++++++++++--- web-overrides/index.html | 2 +- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/bin/inject-middle-theme.py b/bin/inject-middle-theme.py index 1b70243..afe711b 100755 --- a/bin/inject-middle-theme.py +++ b/bin/inject-middle-theme.py @@ -119,17 +119,34 @@ JS = """ FAVICON_LINKS = ( "" - "" - "" + "" + "" "" ) +FAVICON_HIJACK_JS = ( + "" +) src = target.read_text(encoding="utf-8") src = re.sub(re.escape(""), "", src, flags=re.DOTALL) src = re.sub(re.escape(""), "", src, flags=re.DOTALL) src = re.sub(r".*?", "", src, flags=re.DOTALL) +src = re.sub(r"", "", src, flags=re.DOTALL) -PATCH = "" + "" + FAVICON_LINKS +PATCH = "" + "" + FAVICON_LINKS + FAVICON_HIJACK_JS if "" not in src: sys.exit("no in target") src2 = src.replace("", PATCH + "", 1) diff --git a/web-overrides/index.html b/web-overrides/index.html index f4b151a..1e9eba2 100644 --- a/web-overrides/index.html +++ b/web-overrides/index.html @@ -319,4 +319,4 @@ body.arrflix-video-active:not(:has(#loginPage:not(.hide))) .skinHeader,body.arrf } if(document.readyState==='loading') document.addEventListener('DOMContentLoaded',start,{once:true}); else start(); })(); -/* ARRFLIX-MIDDLE-THEME-END */
\ No newline at end of file +/* ARRFLIX-MIDDLE-THEME-END */
\ No newline at end of file