Pass crashes directory to crash service process
This commit is contained in:
parent
2fbb98a97c
commit
0380d3ae50
5 changed files with 23 additions and 14 deletions
|
@ -6,6 +6,7 @@
|
|||
#include <string>
|
||||
|
||||
#include "atom/common/crash_reporter/crash_reporter.h"
|
||||
#include "atom/common/native_mate_converters/file_path_converter.h"
|
||||
#include "base/bind.h"
|
||||
#include "native_mate/dictionary.h"
|
||||
|
||||
|
@ -39,6 +40,8 @@ void Initialize(v8::Local<v8::Object> exports, v8::Local<v8::Value> unused,
|
|||
base::Bind(&CrashReporter::Start, report));
|
||||
dict.SetMethod("_getUploadedReports",
|
||||
base::Bind(&CrashReporter::GetUploadedReports, report));
|
||||
dict.SetMethod("_getCrashesDirectory",
|
||||
base::Bind(&CrashReporter::GetCrashesDirectory, report));
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
|
|
@ -34,6 +34,9 @@ class CrashReporter {
|
|||
const std::string& product_name,
|
||||
const std::string& temp_path);
|
||||
|
||||
base::FilePath GetCrashesDirectory(const std::string& product_name,
|
||||
const std::string& temp_dir);
|
||||
|
||||
protected:
|
||||
CrashReporter();
|
||||
virtual ~CrashReporter();
|
||||
|
@ -47,9 +50,6 @@ class CrashReporter {
|
|||
bool skip_system_crash_handler);
|
||||
virtual void SetUploadParameters();
|
||||
|
||||
base::FilePath GetCrashesDirectory(const std::string& product_name,
|
||||
const std::string& temp_dir);
|
||||
|
||||
StringMap upload_parameters_;
|
||||
bool is_browser_;
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ namespace crash_service {
|
|||
namespace {
|
||||
|
||||
const char kApplicationName[] = "application-name";
|
||||
const char kCrashesDirectory[] = "crashes-directory";
|
||||
|
||||
const wchar_t kPipeNameFormat[] = L"\\\\.\\pipe\\$1 Crash Service";
|
||||
const wchar_t kStandardLogFile[] = L"operation_log.txt";
|
||||
|
@ -25,17 +26,11 @@ void InvalidParameterHandler(const wchar_t*, const wchar_t*, const wchar_t*,
|
|||
// noop.
|
||||
}
|
||||
|
||||
bool GetCrashServiceDirectory(const std::wstring& application_name,
|
||||
base::FilePath* dir) {
|
||||
base::FilePath temp_dir;
|
||||
if (!base::GetTempDir(&temp_dir))
|
||||
return false;
|
||||
temp_dir = temp_dir.Append(application_name + L" Crashes");
|
||||
bool CreateCrashServiceDirectory(const base::FilePath& temp_dir) {
|
||||
if (!base::PathExists(temp_dir)) {
|
||||
if (!base::CreateDirectory(temp_dir))
|
||||
return false;
|
||||
}
|
||||
*dir = temp_dir;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -59,9 +54,16 @@ int Main(const wchar_t* cmd) {
|
|||
std::wstring application_name = cmd_line.GetSwitchValueNative(
|
||||
kApplicationName);
|
||||
|
||||
if (!cmd_line.HasSwitch(kCrashesDirectory)) {
|
||||
LOG(ERROR) << "Crashes directory path must be specified with --"
|
||||
<< kCrashesDirectory;
|
||||
return 1;
|
||||
}
|
||||
|
||||
// We use/create a directory under the user's temp folder, for logging.
|
||||
base::FilePath operating_dir;
|
||||
GetCrashServiceDirectory(application_name, &operating_dir);
|
||||
base::FilePath operating_dir(
|
||||
cmd_line.GetSwitchValueNative(kCrashesDirectory));
|
||||
GetCrashServiceDirectory(operating_dir);
|
||||
base::FilePath log_file = operating_dir.Append(kStandardLogFile);
|
||||
|
||||
// Logging to stderr (to help with debugging failures on the
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue