| Index: components/breakpad/browser/crash_handler_host_linux.cc
|
| ===================================================================
|
| --- components/breakpad/browser/crash_handler_host_linux.cc (revision 272375)
|
| +++ components/breakpad/browser/crash_handler_host_linux.cc (working copy)
|
| @@ -300,14 +300,6 @@
|
| process_type_str[info->process_type_length] = '\0';
|
| info->process_type = process_type_str;
|
|
|
| - std::string distro = base::GetLinuxDistro();
|
| - info->distro_length = distro.length();
|
| - // Freed in CrashDumpTask().
|
| - char* distro_str = new char[info->distro_length + 1];
|
| - distro.copy(distro_str, info->distro_length);
|
| - distro_str[info->distro_length] = '\0';
|
| - info->distro = distro_str;
|
| -
|
| // Memory released from scoped_ptrs below are also freed in CrashDumpTask().
|
| info->crash_keys = crash_keys.release();
|
| #if defined(ADDRESS_SANITIZER)
|
| @@ -344,6 +336,16 @@
|
| DCHECK(BrowserThread::GetBlockingPool()->IsRunningSequenceOnCurrentThread(
|
| worker_pool_token_));
|
|
|
| + // Set |info->distro| here because base::GetLinuxDistro() needs to run on a
|
| + // blocking thread.
|
| + std::string distro = base::GetLinuxDistro();
|
| + info->distro_length = distro.length();
|
| + // Freed in CrashDumpTask().
|
| + char* distro_str = new char[info->distro_length + 1];
|
| + distro.copy(distro_str, info->distro_length);
|
| + distro_str[info->distro_length] = '\0';
|
| + info->distro = distro_str;
|
| +
|
| base::FilePath dumps_path("/tmp");
|
| PathService::Get(base::DIR_TEMP, &dumps_path);
|
| if (!info->upload)
|
|
|