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¶
- Crear proceso.
- Cargar filtros en hijo.
- Abrir puerto.
- Emitir READY.
- Activar proxy del sistema.
Stop¶
- Terminar proceso.
- Forzar kill si persiste.
- 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¶
- ConfigPanel guarda settings.
- MainWindow recibe señal.
- Aplica cambios runtime (intervalos, toggles, idioma/tema, logging).
- 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.