Skip to content

Modelo de Runtime y Procesos

SafeMode separa responsabilidades entre hilo UI, workers y proceso aislado de mitmproxy.

Por Qué Multiprocessing

QtMonitorManager ejecuta mitmproxy en proceso separado.

Ventajas:

  • aislamiento de event loop
  • stop rápido con terminate/kill fallback
  • menor riesgo de congelar UI
  • lifecycle independiente del filter manager en proceso hijo

Actores Principales

  • MainWindow: orquestación general y timers.
  • MonitorWorker (QThread): procesa cola de eventos hacia UI.
  • FilterWorker (QThread): descargas sin bloquear interfaz.
  • Proceso mitmproxy: intercepta y analiza tráfico.

IPC entre Procesos

  • url_queue: eventos y señal READY hacia UI.
  • control_queue: comandos desde UI (toggle filtros, whitelist, reload).

Contrato Start/Stop

Start

  1. Crear proceso.
  2. Cargar filtros en hijo.
  3. Abrir puerto.
  4. Emitir READY.
  5. Activar proxy del sistema.

Stop

  1. Terminar proceso.
  2. Forzar kill si persiste.
  3. Apagar proxy y sincronizar UI.

Throughput y Backpressure

MonitorWorker:

  • drena cola cuando monitor está inactivo para evitar acumulación
  • emite eventos rápido
  • delega batching visual a MonitorPanel

Propagación de Settings

  1. ConfigPanel guarda settings.
  2. MainWindow recibe señal.
  3. Aplica cambios runtime (intervalos, toggles, idioma/tema, logging).
  4. Si monitor corre, envía comandos por control queue.

Defaults de Seguridad

  • Al cerrar app, intenta desactivar proxy.
  • Al apagar proxy manualmente, puede apagar servicios dependientes.
  • Gate de certificado evita falsa sensación de inspección HTTPS activa.