#!/usr/bin/env python3 """Serve the benchmark page with the cross-origin-isolation headers that SharedArrayBuffer (wasm threads) requires. Usage: python3 serve.py [port] (default port 8123) """ import sys from http.server import HTTPServer, SimpleHTTPRequestHandler class Handler(SimpleHTTPRequestHandler): extensions_map = { **SimpleHTTPRequestHandler.extensions_map, ".wasm": "application/wasm", ".js": "text/javascript", ".mjs": "text/javascript", } def end_headers(self): self.send_header("Cross-Origin-Opener-Policy", "same-origin") self.send_header("Cross-Origin-Embedder-Policy", "require-corp") self.send_header("Cache-Control", "no-store") super().end_headers() if __name__ == "__main__": port = int(sys.argv[1]) if len(sys.argv) > 1 else 8123 print(f"Serving on http://localhost:{port} (COOP/COEP enabled)") HTTPServer(("127.0.0.1", port), Handler).serve_forever()