#!/usr/bin/env python3
"""Minimal HTTP server for the PresaveGeneratedPassword DCHECK-bypass POC.

Serves poc.html on http://127.0.0.1:<port>/ (default 47913, or pass a port as
argv[1]). The renderer-side injection (chromium-changes.patch) fires
automatically when the page's password form is parsed.
"""
import http.server
import os
import socketserver

PORT = 47913
HERE = os.path.dirname(os.path.abspath(__file__))


class Handler(http.server.SimpleHTTPRequestHandler):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, directory=HERE, **kwargs)

    def log_message(self, fmt, *args):
        pass  # quiet


class Server(socketserver.ThreadingMixIn, http.server.HTTPServer):
    allow_reuse_address = True
    daemon_threads = True


if __name__ == "__main__":
    import sys
    port = int(sys.argv[1]) if len(sys.argv) > 1 else PORT
    with Server(("127.0.0.1", port), Handler) as httpd:
        print(f"Serving POC on http://127.0.0.1:{port}/poc.html", flush=True)
        httpd.serve_forever()
