Index: chrome/app/chrome_crash_reporter_client_win.cc |
diff --git a/chrome/app/chrome_crash_reporter_client_win.cc b/chrome/app/chrome_crash_reporter_client_win.cc |
index 166a13df213ba18e27c5b895c40dd31f932cb6e6..23ed8d8803bce0430312f43d110e2d119b00ca23 100644 |
--- a/chrome/app/chrome_crash_reporter_client_win.cc |
+++ b/chrome/app/chrome_crash_reporter_client_win.cc |
@@ -14,6 +14,7 @@ |
#include <iterator> |
#include <memory> |
#include <string> |
+#include <vector> |
#include "base/command_line.h" |
#include "base/debug/crash_logging.h" |
@@ -240,13 +241,17 @@ void ChromeCrashReporterClient::InitializeCrashReportingForProcess() { |
std::wstring process_type = install_static::GetSwitchValueFromCommandLine( |
::GetCommandLine(), install_static::kProcessType); |
+ std::wstring user_data_dir; |
+ if (install_static::CurrentProcessNeedsProfileDir()) |
+ user_data_dir = install_static::GetUserDataDirectory(); |
// Don't set up Crashpad crash reporting in the Crashpad handler itself, nor |
// in the fallback crash handler for the Crashpad handler process. |
if (process_type != install_static::kCrashpadHandler && |
process_type != install_static::kFallbackHandler) { |
crash_reporter::SetCrashReporterClient(instance); |
crash_reporter::InitializeCrashpadWithEmbeddedHandler( |
- process_type.empty(), install_static::UTF16ToUTF8(process_type)); |
+ process_type.empty(), install_static::UTF16ToUTF8(process_type), |
+ install_static::UTF16ToUTF8(user_data_dir)); |
} |
} |
#endif // NACL_WIN64 |
@@ -354,12 +359,13 @@ bool ChromeCrashReporterClient::GetCrashDumpLocation( |
return true; |
*crash_dir = install_static::GetCrashDumpLocation(); |
- return true; |
+ return !crash_dir->empty(); |
} |
bool ChromeCrashReporterClient::GetCrashMetricsLocation( |
base::string16* metrics_dir) { |
- return install_static::GetUserDataDirectory(metrics_dir, nullptr); |
+ *metrics_dir = install_static::GetUserDataDirectory(); |
+ return !metrics_dir->empty(); |
} |
// TODO(ananta) |