Enable customing upload parameters for sending crash report.
This commit is contained in:
parent
f8f09eb974
commit
d181ff4e7f
4 changed files with 22 additions and 16 deletions
|
@ -17,12 +17,13 @@ namespace api {
|
|||
v8::Handle<v8::Value> CrashReporter::Start(const v8::Arguments& args) {
|
||||
std::string product_name, company_name, submit_url;
|
||||
bool auto_submit, skip_system;
|
||||
std::map<std::string, std::string> dict;
|
||||
if (!FromV8Arguments(args, &product_name, &company_name, &submit_url,
|
||||
&auto_submit, &skip_system))
|
||||
&auto_submit, &skip_system, &dict))
|
||||
return node::ThrowTypeError("Bad argument");
|
||||
|
||||
crash_reporter::CrashReporter::GetInstance()->Start(
|
||||
product_name, company_name, submit_url, auto_submit, skip_system);
|
||||
product_name, company_name, submit_url, auto_submit, skip_system, dict);
|
||||
|
||||
return v8::Undefined();
|
||||
}
|
||||
|
|
|
@ -2,14 +2,15 @@ binding = process.atomBinding 'crash_reporter'
|
|||
|
||||
class CrashReporter
|
||||
start: (options={}) ->
|
||||
{productName, companyName, submitUrl, autoSubmit, ignoreSystemCrashHandler} = options
|
||||
{productName, companyName, submitUrl, autoSubmit, ignoreSystemCrashHandler, extra} = options
|
||||
|
||||
productName ?= 'Atom-Shell'
|
||||
companyName ?= 'GitHub, Inc'
|
||||
submitUrl ?= 'http://54.249.141.25'
|
||||
autoSubmit ?= true
|
||||
ignoreSystemCrashHandler ?= false
|
||||
extra ?= {}
|
||||
|
||||
binding.start productName, companyName, submitUrl, autoSubmit, ignoreSystemCrashHandler
|
||||
binding.start productName, companyName, submitUrl, autoSubmit, ignoreSystemCrashHandler, extra
|
||||
|
||||
module.exports = new CrashReporter
|
||||
|
|
|
@ -12,9 +12,8 @@
|
|||
namespace crash_reporter {
|
||||
|
||||
CrashReporter::CrashReporter() {
|
||||
SetUploadParameters();
|
||||
|
||||
is_browser_ = upload_parameters_["process_type"].empty();
|
||||
const CommandLine& command = *CommandLine::ForCurrentProcess();
|
||||
is_browser_ = command.GetSwitchValueASCII(switches::kProcessType).empty();
|
||||
}
|
||||
|
||||
CrashReporter::~CrashReporter() {
|
||||
|
@ -24,18 +23,19 @@ void CrashReporter::Start(std::string product_name,
|
|||
const std::string& company_name,
|
||||
const std::string& submit_url,
|
||||
bool auto_submit,
|
||||
bool skip_system_crash_handler) {
|
||||
bool skip_system_crash_handler,
|
||||
const StringMap& extra_parameters) {
|
||||
SetUploadParameters(extra_parameters);
|
||||
|
||||
// Append "Renderer" for the renderer.
|
||||
product_name += " Renderer";
|
||||
InitBreakpad(product_name, ATOM_VERSION_STRING, company_name, submit_url,
|
||||
auto_submit, skip_system_crash_handler);
|
||||
}
|
||||
|
||||
void CrashReporter::SetUploadParameters() {
|
||||
const CommandLine& command = *CommandLine::ForCurrentProcess();
|
||||
std::string type = command.GetSwitchValueASCII(switches::kProcessType);
|
||||
|
||||
upload_parameters_["process_type"] = type;
|
||||
void CrashReporter::SetUploadParameters(const StringMap& parameters) {
|
||||
upload_parameters_ = parameters;
|
||||
upload_parameters_["process_type"] = is_browser_ ? "browser" : "renderer";
|
||||
}
|
||||
|
||||
} // namespace crash_reporter
|
||||
|
|
|
@ -14,13 +14,16 @@ namespace crash_reporter {
|
|||
|
||||
class CrashReporter {
|
||||
public:
|
||||
typedef std::map<std::string, std::string> StringMap;
|
||||
|
||||
static CrashReporter* GetInstance();
|
||||
|
||||
void Start(std::string product_name,
|
||||
const std::string& company_name,
|
||||
const std::string& submit_url,
|
||||
bool auto_submit,
|
||||
bool skip_system_crash_handler);
|
||||
bool skip_system_crash_handler,
|
||||
const StringMap& extra_parameters);
|
||||
|
||||
protected:
|
||||
CrashReporter();
|
||||
|
@ -32,13 +35,14 @@ class CrashReporter {
|
|||
const std::string& submit_url,
|
||||
bool auto_submit,
|
||||
bool skip_system_crash_handler) = 0;
|
||||
virtual void SetUploadParameters();
|
||||
virtual void SetUploadParameters() = 0;
|
||||
|
||||
typedef std::map<std::string, std::string> StringMap;
|
||||
StringMap upload_parameters_;
|
||||
bool is_browser_;
|
||||
|
||||
private:
|
||||
void SetUploadParameters(const StringMap& parameters);
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(CrashReporter);
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue