diff options
author | Hood Chatham <roberthoodchatham@gmail.com> | 2024-12-03 00:30:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-03 07:30:24 +0800 |
commit | bfb0788bfcaab7474c1be0605552744e15082ee9 (patch) | |
tree | 455a8e723f50b1f9e6782c4210c5d39b57f23b3b /Tools/wasm/emscripten/web_example/server.py | |
parent | edefb8678a11a20bdcdcbb8bb6a62ae22101bb51 (diff) | |
download | cpython-bfb0788bfcaab7474c1be0605552744e15082ee9.tar.gz cpython-bfb0788bfcaab7474c1be0605552744e15082ee9.zip |
gh-127111: Emscripten Make web example work again (#127113)
Moves the Emscripten web example into a standalone folder, and updates
Makefile targets to build the web example. Instructions for usage have
also been added.
Diffstat (limited to 'Tools/wasm/emscripten/web_example/server.py')
-rwxr-xr-x | Tools/wasm/emscripten/web_example/server.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Tools/wasm/emscripten/web_example/server.py b/Tools/wasm/emscripten/web_example/server.py new file mode 100755 index 00000000000..768e6f84e07 --- /dev/null +++ b/Tools/wasm/emscripten/web_example/server.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python +import argparse +from http import server + +parser = argparse.ArgumentParser( + description="Start a local webserver with a Python terminal." +) +parser.add_argument( + "--port", type=int, default=8000, help="port for the http server to listen on" +) +parser.add_argument( + "--bind", type=str, default="127.0.0.1", help="Bind address (empty for all)" +) + + +class MyHTTPRequestHandler(server.SimpleHTTPRequestHandler): + def end_headers(self) -> None: + self.send_my_headers() + super().end_headers() + + def send_my_headers(self) -> None: + self.send_header("Cross-Origin-Opener-Policy", "same-origin") + self.send_header("Cross-Origin-Embedder-Policy", "require-corp") + + +def main() -> None: + args = parser.parse_args() + if not args.bind: + args.bind = None + + server.test( # type: ignore[attr-defined] + HandlerClass=MyHTTPRequestHandler, + protocol="HTTP/1.1", + port=args.port, + bind=args.bind, + ) + + +if __name__ == "__main__": + main() |