fix(player): report and fail closed on runtime delivery errors (#3472)

* feat(player): report runtime data application

* fix(player): fail closed on runtime data delivery

* fix(player): close runtime delivery and sandbox gaps

* fix(player): satisfy runtime contract and CodeQL

* refactor(player): simplify runtime tag scanner

* style(player): apply repository formatter

* fix(player): type runtime tag boundaries

* fix(core): mint guest-local runtime-data ids in a separate space from host ids
This commit is contained in:
Vance Ingalls
2026-08-30 13:00:14 -07:00
committed by GitHub
parent 3337cc8990
commit 859ac622c2
20 changed files with 632 additions and 58 deletions
@@ -0,0 +1,18 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Sandbox origin probe</title>
</head>
<body>
<script>
let canAccessParent = false;
try {
canAccessParent = window.parent.document.body !== null;
} catch {
canAccessParent = false;
}
window.parent.postMessage({ source: "hf-sandbox-probe", canAccessParent }, "*");
</script>
</body>
</html>
+1
View File
@@ -44,6 +44,7 @@ declare global {
__playerNavStart?: number;
__playerDuration?: number;
__playerError?: string;
__sandboxProbeResults?: boolean[];
}
}
+6
View File
@@ -102,6 +102,12 @@ function buildHostHtml(fixtureName: string, width: number, height: number): stri
window.__playerReady = false;
window.__playerReadyAt = null;
window.__playerNavStart = performance.timeOrigin + performance.now();
window.__sandboxProbeResults = [];
window.addEventListener("message", function (event) {
if (event.data && event.data.source === "hf-sandbox-probe") {
window.__sandboxProbeResults.push(event.data.canAccessParent === true);
}
});
const player = document.getElementById("player");
player.addEventListener("ready", function (event) {
window.__playerReady = true;