(root)/
Python-3.11.7/
Tools/
wasm/
wasm_webserver.py
       1  #!/usr/bin/env python
       2  import argparse
       3  from http import server
       4  
       5  parser = argparse.ArgumentParser(
       6      description="Start a local webserver with a Python terminal."
       7  )
       8  parser.add_argument(
       9      "--port", type=int, default=8000, help="port for the http server to listen on"
      10  )
      11  parser.add_argument(
      12      "--bind", type=str, default="127.0.0.1", help="Bind address (empty for all)"
      13  )
      14  
      15  
      16  class ESC[4;38;5;81mMyHTTPRequestHandler(ESC[4;38;5;149mserverESC[4;38;5;149m.ESC[4;38;5;149mSimpleHTTPRequestHandler):
      17      extensions_map = server.SimpleHTTPRequestHandler.extensions_map.copy()
      18      extensions_map.update(
      19          {
      20              ".wasm": "application/wasm",
      21          }
      22      )
      23  
      24      def end_headers(self):
      25          self.send_my_headers()
      26          super().end_headers()
      27  
      28      def send_my_headers(self):
      29          self.send_header("Cross-Origin-Opener-Policy", "same-origin")
      30          self.send_header("Cross-Origin-Embedder-Policy", "require-corp")
      31  
      32  
      33  def main():
      34      args = parser.parse_args()
      35      if not args.bind:
      36          args.bind = None
      37  
      38      server.test(
      39          HandlerClass=MyHTTPRequestHandler,
      40          protocol="HTTP/1.1",
      41          port=args.port,
      42          bind=args.bind,
      43      )
      44  
      45  if __name__ == "__main__":
      46      main()