#pragma once #include #include #include namespace navegator { // Una instancia de chrome.exe detectada con --remote-debugging-port. struct ChromeInstance { uint32_t pid = 0; int port = 0; // valor de --remote-debugging-port, 0 si no se pudo parsear std::string user_data_dir; // valor de --user-data-dir (Windows path), vacio si no aplica std::string profile_name; // basename de user_data_dir, util como label bool headless = false; // si tiene --headless o --headless=new std::string command_line; // crudo, para diagnostico }; // Escanea procesos chrome.exe del sistema y devuelve solo los que tienen // --remote-debugging-port. Implementacion v0: invoca PowerShell con // Get-CimInstance. Es lenta (~500ms) — el panel debe llamar en thread aparte. // // Si la consulta falla, retorna lista vacia (no lanza). Linux: stub vacio. std::vector scan_chrome_instances(); // Mata todos los chrome.exe cuya commandline contenga 'user_data_dir_substr' // como substring. Util para cerrar perfiles aislados sin afectar al Chrome // normal del usuario. Devuelve numero de procesos matados o -1 en error. int kill_chromes_by_userdata(const std::string& user_data_dir_substr); } // namespace navegator