Przeglądaj źródła

Inspector: Exit if inspected process has not pledged accept

Brendan Coles 4 lat temu
rodzic
commit
50092ea0ca
1 zmienionych plików z 16 dodań i 0 usunięć
  1. 16 0
      Userland/DevTools/Inspector/main.cpp

+ 16 - 0
Userland/DevTools/Inspector/main.cpp

@@ -28,10 +28,12 @@
 #include "RemoteObjectGraphModel.h"
 #include "RemoteObjectPropertyModel.h"
 #include "RemoteProcess.h"
+#include <LibCore/ProcessStatisticsReader.h>
 #include <LibGUI/Application.h>
 #include <LibGUI/BoxLayout.h>
 #include <LibGUI/Menu.h>
 #include <LibGUI/MenuBar.h>
+#include <LibGUI/MessageBox.h>
 #include <LibGUI/ModelEditingDelegate.h>
 #include <LibGUI/ProcessChooser.h>
 #include <LibGUI/Splitter.h>
@@ -98,6 +100,20 @@ int main(int argc, char** argv)
     }
 
     auto window = GUI::Window::construct();
+
+    auto all_processes = Core::ProcessStatisticsReader::get_all();
+    for (auto& it : all_processes.value()) {
+        if (it.value.pid != pid)
+            continue;
+        if (it.value.pledge.is_empty())
+            break;
+        if (!it.value.pledge.contains("accept")) {
+            GUI::MessageBox::show(window, String::formatted("{} ({}) has not pledged accept!", it.value.name, pid), "Error", GUI::MessageBox::Type::Error);
+            return 1;
+        }
+        break;
+    }
+
     window->set_title("Inspector");
     window->resize(685, 500);
     window->set_icon(app_icon.bitmap_for_size(16));