k-l-lambda Claude commited on
Commit
d182f15
·
1 Parent(s): fa72e90

fix: skip coi-serviceworker in iframe to allow HF Space embedding

Browse files

The COOP header (Cross-Origin-Opener-Policy: same-origin) was blocking
iframe embedding on huggingface.co/spaces. Now the service worker only
registers when not in an iframe.

Trade-off:
- Direct access: Full SharedArrayBuffer support (faster AI)
- Iframe embedding: No SharedArrayBuffer (AI uses single-thread, but works)

Co-Authored-By: Claude <noreply@anthropic.com>

Dockerfile CHANGED
@@ -2,7 +2,7 @@ FROM node:20-slim
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
- # Build timestamp: 2026-01-27T22:56
6
  # Note: ONNX files kept in LFS per HF policy, downloaded at startup via curl
7
 
8
  WORKDIR /app
 
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
+ # Build timestamp: 2026-02-03T19:55
6
  # Note: ONNX files kept in LFS per HF policy, downloaded at startup via curl
7
 
8
  WORKDIR /app
trigo-web/app/dist/index.html CHANGED
@@ -6,6 +6,13 @@
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
  <title>Trigo - 3D Go Game</title>
8
  <!-- Enable cross-origin isolation for SharedArrayBuffer (needed for ONNX multi-threading) -->
 
 
 
 
 
 
 
9
  <script src="/coi-serviceworker.js"></script>
10
  <script type="module" crossorigin src="/assets/index-cSsYvfzN.js"></script>
11
  <link rel="stylesheet" crossorigin href="/assets/index-DHcFs21z.css">
 
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
  <title>Trigo - 3D Go Game</title>
8
  <!-- Enable cross-origin isolation for SharedArrayBuffer (needed for ONNX multi-threading) -->
9
+ <!-- Skip service worker in iframe to avoid COOP blocking - AI will use single-thread mode -->
10
+ <script>
11
+ window.coi = {
12
+ shouldRegister: () => window.top === window.self, // Only register when not in iframe
13
+ quiet: true
14
+ };
15
+ </script>
16
  <script src="/coi-serviceworker.js"></script>
17
  <script type="module" crossorigin src="/assets/index-cSsYvfzN.js"></script>
18
  <link rel="stylesheet" crossorigin href="/assets/index-DHcFs21z.css">
trigo-web/app/index.html CHANGED
@@ -6,6 +6,13 @@
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
  <title>Trigo - 3D Go Game</title>
8
  <!-- Enable cross-origin isolation for SharedArrayBuffer (needed for ONNX multi-threading) -->
 
 
 
 
 
 
 
9
  <script src="/coi-serviceworker.js"></script>
10
  </head>
11
  <body>
 
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
  <title>Trigo - 3D Go Game</title>
8
  <!-- Enable cross-origin isolation for SharedArrayBuffer (needed for ONNX multi-threading) -->
9
+ <!-- Skip service worker in iframe to avoid COOP blocking - AI will use single-thread mode -->
10
+ <script>
11
+ window.coi = {
12
+ shouldRegister: () => window.top === window.self, // Only register when not in iframe
13
+ quiet: true
14
+ };
15
+ </script>
16
  <script src="/coi-serviceworker.js"></script>
17
  </head>
18
  <body>