瀏覽代碼

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 年之前
父節點
當前提交
3bc0e7a7ca
共有 1 個文件被更改,包括 4 次插入1 次删除
  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)
 ErrorOr<Vector<String>> get_paths_for_helper_process(StringView process_name)
 {
 {
+    auto application_path = TRY(ak_string_from_qstring(QCoreApplication::applicationDirPath()));
     Vector<String> paths;
     Vector<String> paths;
+
     TRY(paths.try_append(TRY(String::formatted("./{}/{}", process_name, process_name))));
     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))));
     TRY(paths.try_append(TRY(String::formatted("./{}", process_name))));
     // NOTE: Add platform-specific paths here
     // NOTE: Add platform-specific paths here
     return paths;
     return paths;