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