Browse Source

Rename autoUpload to shouldUpload

Samuel Attard 8 years ago
parent
commit
7b8eb3e09c

+ 2 - 0
atom/common/api/atom_api_crash_reporter.cc

@@ -40,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("_setShouldUpload",
+                 base::Bind(&CrashReporter::SetShouldUpload, report));
 }
 
 }  // namespace

+ 6 - 2
atom/common/crash_reporter/crash_reporter.cc

@@ -26,13 +26,13 @@ void CrashReporter::Start(const std::string& product_name,
                           const std::string& company_name,
                           const std::string& submit_url,
                           const base::FilePath& crashes_dir,
-                          bool auto_submit,
+                          bool should_upload,
                           bool skip_system_crash_handler,
                           const StringMap& extra_parameters) {
   SetUploadParameters(extra_parameters);
 
   InitBreakpad(product_name, ATOM_VERSION_STRING, company_name, submit_url,
-               crashes_dir, auto_submit, skip_system_crash_handler);
+               crashes_dir, should_upload, skip_system_crash_handler);
 }
 
 void CrashReporter::SetUploadParameters(const StringMap& parameters) {
@@ -43,6 +43,10 @@ void CrashReporter::SetUploadParameters(const StringMap& parameters) {
   SetUploadParameters();
 }
 
+void CrashReporter::SetShouldUpload(const bool should_upload) {
+
+}
+
 std::vector<CrashReporter::UploadReportResult>
 CrashReporter::GetUploadedReports(const base::FilePath& crashes_dir) {
   std::string file_content;

+ 4 - 2
atom/common/crash_reporter/crash_reporter.h

@@ -26,7 +26,7 @@ class CrashReporter {
              const std::string& company_name,
              const std::string& submit_url,
              const base::FilePath& crashes_dir,
-             bool auto_submit,
+             bool should_upload,
              bool skip_system_crash_handler,
              const StringMap& extra_parameters);
 
@@ -42,10 +42,12 @@ class CrashReporter {
                             const std::string& company_name,
                             const std::string& submit_url,
                             const base::FilePath& crashes_dir,
-                            bool auto_submit,
+                            bool should_upload,
                             bool skip_system_crash_handler);
   virtual void SetUploadParameters();
 
+  virtual void SetShouldUpload();
+
   StringMap upload_parameters_;
   bool is_browser_;
 

+ 1 - 1
atom/common/crash_reporter/crash_reporter_linux.cc

@@ -60,7 +60,7 @@ void CrashReporterLinux::InitBreakpad(const std::string& product_name,
                                       const std::string& company_name,
                                       const std::string& submit_url,
                                       const base::FilePath& crashes_dir,
-                                      bool auto_submit,
+                                      bool should_upload,
                                       bool skip_system_crash_handler) {
   EnableCrashDumping(crashes_dir);
 

+ 1 - 1
atom/common/crash_reporter/crash_reporter_linux.h

@@ -32,7 +32,7 @@ class CrashReporterLinux : public CrashReporter {
                     const std::string& company_name,
                     const std::string& submit_url,
                     const base::FilePath& crashes_dir,
-                    bool auto_submit,
+                    bool should_upload,
                     bool skip_system_crash_handler) override;
   void SetUploadParameters() override;
 

+ 2 - 1
atom/common/crash_reporter/crash_reporter_mac.h

@@ -28,7 +28,7 @@ class CrashReporterMac : public CrashReporter {
                     const std::string& company_name,
                     const std::string& submit_url,
                     const base::FilePath& crashes_dir,
-                    bool auto_submit,
+                    bool should_upload,
                     bool skip_system_crash_handler) override;
   void SetUploadParameters() override;
 
@@ -46,6 +46,7 @@ class CrashReporterMac : public CrashReporter {
       const base::FilePath& crashes_dir) override;
 
   std::unique_ptr<crashpad::SimpleStringDictionary> simple_string_dictionary_;
+  std::unique_ptr<crashpad::CrashReportDatabase> database_;
 
   DISALLOW_COPY_AND_ASSIGN(CrashReporterMac);
 };

+ 10 - 4
atom/common/crash_reporter/crash_reporter_mac.mm

@@ -31,7 +31,7 @@ void CrashReporterMac::InitBreakpad(const std::string& product_name,
                                     const std::string& company_name,
                                     const std::string& submit_url,
                                     const base::FilePath& crashes_dir,
-                                    bool auto_submit,
+                                    bool should_upload,
                                     bool skip_system_crash_handler) {
   // check whether crashpad has been initialized.
   // Only need to initialize once.
@@ -73,14 +73,20 @@ void CrashReporterMac::InitBreakpad(const std::string& product_name,
     SetCrashKeyValue(upload_parameter.first, upload_parameter.second);
   }
   if (is_browser_) {
-    std::unique_ptr<crashpad::CrashReportDatabase> database =
+    database_ =
         crashpad::CrashReportDatabase::Initialize(crashes_dir);
-    if (database) {
-      database->GetSettings()->SetUploadsEnabled(auto_submit);
+    if (database_) {
+      database_->GetSettings()->SetUploadsEnabled(should_upload);
     }
   }
 }
 
+void CrashReporterMac::SetShouldUpload(const bool should_upload) {
+  if (database_) {
+    database_->GetSettings()->SetUploadsEnabled(should_upload);
+  }
+}
+
 void CrashReporterMac::SetUploadParameters() {
   upload_parameters_["platform"] = "darwin";
 }

+ 1 - 1
atom/common/crash_reporter/crash_reporter_win.cc

@@ -150,7 +150,7 @@ void CrashReporterWin::InitBreakpad(const std::string& product_name,
                                     const std::string& company_name,
                                     const std::string& submit_url,
                                     const base::FilePath& crashes_dir,
-                                    bool auto_submit,
+                                    bool should_upload,
                                     bool skip_system_crash_handler) {
   skip_system_crash_handler_ = skip_system_crash_handler;
 

+ 1 - 1
atom/common/crash_reporter/crash_reporter_win.h

@@ -28,7 +28,7 @@ class CrashReporterWin : public CrashReporter {
                     const std::string& company_name,
                     const std::string& submit_url,
                     const base::FilePath& crashes_dir,
-                    bool auto_submit,
+                    bool should_upload,
                     bool skip_system_crash_handler) override;
   void SetUploadParameters() override;
 

+ 7 - 1
docs/api/crash-reporter.md

@@ -40,7 +40,7 @@ The `crashReporter` module has the following methods:
   * `companyName` String (optional)
   * `submitURL` String - URL that crash reports will be sent to as POST.
   * `productName` String (optional) - Defaults to `app.getName()`.
-  * `autoSubmit` Boolean (optional) - Send the crash report without user interaction.
+  * `shouldUpload` Boolean (optional) _macOS_ - Whether crash reports should be sent to the server
     Default is `true`.
   * `ignoreSystemCrashHandler` Boolean (optional) - Default is `false`.
   * `extra` Object (optional) - An object you can define that will be sent along with the
@@ -70,6 +70,12 @@ Returns [`CrashReport[]`](structures/crash-report.md):
 Returns all uploaded crash reports. Each report contains the date and uploaded
 ID.
 
+### `crashReporter.setShouldUpload(shouldUpload)`
+
+* `shouldUpload` Boolean _macOS_ - Whether reports should be submitted to the server
+
+This would normally be controlled by user preferences.
+
 ## Crash Report Payload
 
 The crash reporter will send the following data to the `submitURL` as

+ 16 - 4
lib/common/api/crash-reporter.js

@@ -13,10 +13,12 @@ class CrashReporter {
       options = {}
     }
     this.productName = options.productName != null ? options.productName : app.getName()
-    let {autoSubmit, companyName, extra, ignoreSystemCrashHandler, submitURL} = options
+    let {autoSubmit, companyName, extra, ignoreSystemCrashHandler, submitURL, shouldUpload} = options
 
-    if (autoSubmit == null) {
-      autoSubmit = true
+    if (autoSubmit == null && shouldUpload == null) {
+      shouldUpload = true
+    } else {
+      shouldUpload = shouldUpload || autoSubmit
     }
     if (ignoreSystemCrashHandler == null) {
       ignoreSystemCrashHandler = false
@@ -56,7 +58,8 @@ class CrashReporter {
       })
     }
 
-    binding.start(this.getProductName(), companyName, submitURL, this.getCrashesDirectory(), autoSubmit, ignoreSystemCrashHandler, extra)
+    this._shouldUpload = shouldUpload
+    binding.start(this.getProductName(), companyName, submitURL, this.getCrashesDirectory(), shouldUpload, ignoreSystemCrashHandler, extra)
   }
 
   getLastCrashReport () {
@@ -95,6 +98,15 @@ class CrashReporter {
     }
     return this.tempDirectory
   }
+
+  getShouldUpload() {
+    return this._shouldUpload
+  }
+
+  setShouldUpload(shouldUpload) {
+    this._shouldUpload = shouldUpload
+    return bindings._setShouldUpload(shouldUpload)
+  }
 }
 
 module.exports = new CrashReporter()