1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-11 02:13:56 +09:00

LibCore: Allow inspecting any process launched with MAKE_INSPECTABLE=1

For now, EventLoop and Application still have a make_inspectable
parameter, so that when working on an application you can temporarily
hard-code it to be inspectable rather than having to set the env var
each time.
This commit is contained in:
Sam Atkins 2022-04-16 17:09:34 +01:00 committed by Andreas Kling
parent d20ff6c891
commit f240def414
Notes: sideshowbarker 2024-07-17 11:43:26 +09:00
2 changed files with 12 additions and 7 deletions

View file

@ -18,7 +18,8 @@ $ Inspector [pid]
Inspector facilitates process inspection via RPC.
The inspected process must have previously allowed the
To inspect a process, it must have `MAKE_INSPECTABLE=1` in its environment,
and it must have previously allowed the
[`accept`(2)](help://man/2/accept) system call with
[`pledge`(2)](help://man/2/pledge) to allow inspection
via UNIX socket.

View file

@ -330,12 +330,16 @@ EventLoop::EventLoop([[maybe_unused]] MakeInspectable make_inspectable)
s_event_loop_stack->append(*this);
#ifdef __serenity__
if (getuid() != 0
&& make_inspectable == MakeInspectable::Yes
// FIXME: Deadlock potential; though the main loop and inspector server connection are rarely used in conjunction
&& !s_inspector_server_connection.with_locked([](auto inspector_server_connection) { return inspector_server_connection; })) {
if (!connect_to_inspector_server())
dbgln("Core::EventLoop: Failed to connect to InspectorServer");
if (getuid() != 0) {
if (getenv("MAKE_INSPECTABLE") == "1"sv)
make_inspectable = Core::EventLoop::MakeInspectable::Yes;
if (make_inspectable == MakeInspectable::Yes
// FIXME: Deadlock potential; though the main loop and inspector server connection are rarely used in conjunction
&& !s_inspector_server_connection.with_locked([](auto inspector_server_connection) { return inspector_server_connection; })) {
if (!connect_to_inspector_server())
dbgln("Core::EventLoop: Failed to connect to InspectorServer");
}
}
#endif
}