"""Serve dist/ with isolation headers; isolated_server() owns a free-port background server.""" from contextlib import contextmanager from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer from pathlib import Path from threading import Thread DIST = Path(__file__).resolve().parent.parent / 'dist' class Handler(SimpleHTTPRequestHandler): def __init__(self, *args, **kwargs): super().__init__(*args, directory=str(DIST), **kwargs) def end_headers(self): self.send_header('Cache-Control', 'no-store') self.send_header('Cross-Origin-Opener-Policy', 'same-origin') self.send_header('Cross-Origin-Embedder-Policy', 'require-corp') super().end_headers() def log_message(self, format, *args): pass @contextmanager def isolated_server(): with ThreadingHTTPServer(('127.0.0.1', 0), Handler) as server: thread = Thread(target=server.serve_forever, daemon=True) thread.start() try: yield f'http://127.0.0.1:{server.server_port}' finally: server.shutdown() thread.join()