{
  "id": 9020624,
  "title": "Three iOS WebKit Traps That Blacked Out My AR Game, and How I Caught Them",
  "url": "https://urgent.news/2026/09/21/three-ios-webkit-traps-that-blacked-out-my-ar-game-and-how-i-caught",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-21T20:39:10.000Z",
  "source": {
    "name": "HackerNoon",
    "slug": "hackernoon",
    "url": "https://hackernoon.com/three-ios-webkit-traps-that-blacked-out-my-ar-game-and-how-i-caught-them?source=rss"
  },
  "original_language": "en",
  "account": "Three iOS WebKit bugs caused an AR game to black out. The game used a hidden getUserMedia call, pixi.js for WebGL rendering, and MediaPipe for body and hand tracking. All ran inside a Capacitor app's WKWebView, meaning WebKit.\n\nIn the first bug, switching cameras caused the main thread to freeze, making the watchdog think the camera was paused. Two fixes were added: the watchdog now has its own heartbeat and a main-thread heartbeat to detect JavaScript blockage.\n\nThe second bug occurred when unmounting a React scene during a camera switch. The scene destroyed its pixi scene and video texture, leaving the camera element and detector using an unusable video texture. The fix was to keep the arena mounted through transient camera states and apply live mirroring or reframing.\n\nThe third and most significant bug involved a reused pixi scene texture. After switching cameras, the detector saw the hands through the black canvas. MediaPipe creates its texture from the element on every frame, but the scene texture was still tied to the previous stream. The fix was to ensure the texture was properly updated when switching camera sources.",
  "summary": "AURADUEL's camera went black on my iPhone in three ways. The evidence, the two fixes that failed, and the rule that worked: one video element per stream.",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}