32 lines
1.3 KiB
C++
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
|