Files
2026-05-09 18:11:21 +02:00

32 lines
1.3 KiB
C++

#pragma once
#include <string>
#include <vector>
#include <cstdint>
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<ChromeInstance> 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