Browse Source

Ladybird: Look for helper processes at `{app_dir}/{helper}/{helper}`

Currently, we only look at the relative path `./{helper}/{helper}`,
which fails if the working directory is not the same as the directory
where the ladybird binary lives.
Sigmund Lahn 2 years ago
parent
commit
3bc0e7a7ca
1 changed files with 4 additions and 1 deletions
  1. 4 1
      Ladybird/HelperProcess.cpp

+ 4 - 1
Ladybird/HelperProcess.cpp

@@ -25,9 +25,12 @@ ErrorOr<void> spawn_helper_process(StringView process_name, ReadonlySpan<StringV
 
 ErrorOr<Vector<String>> get_paths_for_helper_process(StringView process_name)
 {
+    auto application_path = TRY(ak_string_from_qstring(QCoreApplication::applicationDirPath()));
     Vector<String> paths;
+
     TRY(paths.try_append(TRY(String::formatted("./{}/{}", process_name, process_name))));
-    TRY(paths.try_append(TRY(String::formatted("{}/{}", TRY(ak_string_from_qstring(QCoreApplication::applicationDirPath())), process_name))));
+    TRY(paths.try_append(TRY(String::formatted("{}/{}/{}", application_path, process_name, process_name))));
+    TRY(paths.try_append(TRY(String::formatted("{}/{}", application_path, process_name))));
     TRY(paths.try_append(TRY(String::formatted("./{}", process_name))));
     // NOTE: Add platform-specific paths here
     return paths;