d32e6cc252
* chore: bump chromium in DEPS to 105.0.5147.0 * chore: update chromium/can_create_window.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3642216 fix minor code shear in patch * chore: update chromium/port_autofill_colors_to_the_color_pipeline.patch Xref: chromium/port_autofill_colors_to_the_color_pipeline.patch fix minor code shear in patch * chore: remove chromium/posix_replace_doubleforkandexec_with_forkandspawn.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3727368 Removing upstreamed patch * chore: update patches * chore: update patches * chore: add new enum kOffscreenDocument to switch statement Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3722498 * chore: add stub for new parent virtual method OnNewCropVersion() Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3717305 * chore: remove download_schedule arg from DownloadTargetCallback invocation Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3711096 Clean up DownloadLater flags and prefs * chore: add stub for new parent virtual method OnNewCropVersion() Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3717305 * chore: use base::List for extensions::Event Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3718366 Remove Event constructor overloads that take vector<base::Value> * refactor: replace ClearStorageDataOptions.origin with .storage_key Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3702946 Refactor ClearData to take StorageKey * chore: bump chromium in DEPS to 105.0.5149.0 * chore: update patches * refactor: migrate InspectableWebContents to base::Value::List Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3726326 Migrate DevToolsEmbedderMessageDispatcher to base::Value::List. * refactor: update electron_api_clipboard_mac Clipboard::ReadFindText() Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3721398 Mac: Remove unused FindPasteboard C++ interface * chore: bump chromium in DEPS to 105.0.5151.0 * chore: fix code shear in chromium/build_do_not_depend_on_packed_resource_integrity.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3714995 Move Cart DB proto to //components/commerce * Revert "chore: fix code shear in chromium/build_do_not_depend_on_packed_resource_integrity.patch" This reverts commit f8de4605eb3d35152b186646fefd8e88d1df836b. * chore: fix code shear in chromium/build_do_not_depend_on_packed_resource_integrity.patch Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3714995 Move Cart DB proto to //components/commerce * chore: update patches * chore: update ElectronAccessibilityUIMessageHandler to use base::Value::List Xref: https://chromium-review.googlesource.com/c/chromium/src/+/3733367 Convert /chrome/browser/accessibility away from WebUI::RegisterDeprecatedMessageCallback * chore: bump chromium in DEPS to 105.0.5153.0 * chore: bump chromium in DEPS to 105.0.5155.0 * chore: bump chromium in DEPS to 105.0.5157.0 * chore: bump chromium in DEPS to 105.0.5159.0 * chore: update patches * chore: update CL reference * Replace ContentMainDelegate::InvokedIn with a variant https://chromium-review.googlesource.com/c/chromium/src/+/3705957 * Switch devtools_frontend.mojom to mojom.DictValue. https://chromium-review.googlesource.com/c/chromium/src/+/3726425 * webhid: Bind HID service with service workers https://chromium-review.googlesource.com/c/chromium/src/+/3680562 * chore: fix lint * Don't fire load-complete AX notification on macOS for unfocused windows https://chromium-review.googlesource.com/c/chromium/src/+/3695403 * chore: update patches * chore: bump chromium in DEPS to 105.0.5165.0 * chore: update patches * chore: bump chromium in DEPS to 105.0.5167.0 * chore: bump chromium in DEPS to 105.0.5169.0 * chore: bump chromium in DEPS to 105.0.5171.0 * chore: update patches * chore: bump chromium in DEPS to 105.0.5173.0 * chore: update patches * 3743346: Stop generating unsupported policies on macOS https://chromium-review.googlesource.com/c/chromium/src/+/3743346 * 3727612: [Bluetooth][Win] Refactor pairing prompt code https://chromium-review.googlesource.com/c/chromium/src/+/3727612 * 3737325: system-extensions: Move IsEnabled() out of SystemExtensionsProvider. https://chromium-review.googlesource.com/c/chromium/src/+/3737325 * 3748635: Remove RenderView from the public API. https://chromium-review.googlesource.com/c/chromium/src/+/3748635 * fixup: 3743346: Stop generating unsupported policies on macOS Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com> Co-authored-by: deepak1556 <hop2deep@gmail.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
155 lines
6.3 KiB
Diff
155 lines
6.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jeremy Apthorp <jeremya@chromium.org>
|
|
Date: Thu, 30 Apr 2020 10:08:06 -0700
|
|
Subject: crash: allow setting more options
|
|
|
|
This allows the client of //components/crash to set upload url,
|
|
rate-limiting, compression and global annotations.
|
|
|
|
This should be upstreamed.
|
|
|
|
diff --git a/components/crash/core/app/breakpad_linux.cc b/components/crash/core/app/breakpad_linux.cc
|
|
index 6aa864db880408bf7021ac58673f4d8d489426b4..1fa85302da7a64abc42fd9558ddbcaf68b387517 100644
|
|
--- a/components/crash/core/app/breakpad_linux.cc
|
|
+++ b/components/crash/core/app/breakpad_linux.cc
|
|
@@ -113,6 +113,7 @@ void SetUploadURL(const std::string& url) {
|
|
}
|
|
#endif
|
|
|
|
+bool g_is_node = false;
|
|
bool g_is_crash_reporter_enabled = false;
|
|
uint64_t g_process_start_time = 0;
|
|
pid_t g_pid = 0;
|
|
diff --git a/components/crash/core/app/crash_reporter_client.cc b/components/crash/core/app/crash_reporter_client.cc
|
|
index 82b7f241e26184240260d0b6287ded159681e15b..abbb267f6a40de0cdf4d09700f9dd444a575fbdf 100644
|
|
--- a/components/crash/core/app/crash_reporter_client.cc
|
|
+++ b/components/crash/core/app/crash_reporter_client.cc
|
|
@@ -141,6 +141,17 @@ bool CrashReporterClient::ReportingIsEnforcedByPolicy(bool* breakpad_enabled) {
|
|
return false;
|
|
}
|
|
|
|
+bool CrashReporterClient::GetShouldRateLimit() {
|
|
+ return true;
|
|
+}
|
|
+
|
|
+bool CrashReporterClient::GetShouldCompressUploads() {
|
|
+ return true;
|
|
+}
|
|
+
|
|
+void CrashReporterClient::GetProcessSimpleAnnotations(std::map<std::string, std::string>* annotations) {
|
|
+}
|
|
+
|
|
#if BUILDFLAG(IS_ANDROID)
|
|
unsigned int CrashReporterClient::GetCrashDumpPercentage() {
|
|
return 100;
|
|
diff --git a/components/crash/core/app/crash_reporter_client.h b/components/crash/core/app/crash_reporter_client.h
|
|
index 24e53fa62c2c4a11494ad3d43f0c5a806930fcdd..9b691baa6cc90cc3f9ada307c43f44c4353e2487 100644
|
|
--- a/components/crash/core/app/crash_reporter_client.h
|
|
+++ b/components/crash/core/app/crash_reporter_client.h
|
|
@@ -5,6 +5,7 @@
|
|
#ifndef COMPONENTS_CRASH_CORE_APP_CRASH_REPORTER_CLIENT_H_
|
|
#define COMPONENTS_CRASH_CORE_APP_CRASH_REPORTER_CLIENT_H_
|
|
|
|
+#include <map>
|
|
#include <string>
|
|
|
|
#include "build/build_config.h"
|
|
@@ -146,6 +147,19 @@ class CrashReporterClient {
|
|
// that case, |breakpad_enabled| is set to the value enforced by policies.
|
|
virtual bool ReportingIsEnforcedByPolicy(bool* breakpad_enabled);
|
|
|
|
+ // Returns true if crash uploads should be rate limited. If false, no
|
|
+ // throttling will be applied for uploads.
|
|
+ virtual bool GetShouldRateLimit();
|
|
+
|
|
+ // Returns true if crash uploads should be compressed with gzip. If false,
|
|
+ // reports will be uploaded uncompressed.
|
|
+ virtual bool GetShouldCompressUploads();
|
|
+
|
|
+ // Allows the client to add or edit global annotations passed to the crashpad
|
|
+ // handler.
|
|
+ virtual void GetProcessSimpleAnnotations(
|
|
+ std::map<std::string, std::string>* annotations);
|
|
+
|
|
#if BUILDFLAG(IS_ANDROID)
|
|
// Used by WebView to sample crashes without generating the unwanted dumps. If
|
|
// the returned value is less than 100, crash dumping will be sampled to that
|
|
diff --git a/components/crash/core/app/crashpad_linux.cc b/components/crash/core/app/crashpad_linux.cc
|
|
index 7159bea91a25700f0cb36c48cab62fe2d616b3bd..9bcc5ae7e870c27c3533534c06daa890de5a4816 100644
|
|
--- a/components/crash/core/app/crashpad_linux.cc
|
|
+++ b/components/crash/core/app/crashpad_linux.cc
|
|
@@ -170,6 +170,7 @@ bool PlatformCrashpadInitialization(
|
|
// where crash_reporter provides it's own values for lsb-release.
|
|
annotations["lsb-release"] = base::GetLinuxDistro();
|
|
#endif
|
|
+ crash_reporter_client->GetProcessSimpleAnnotations(&annotations);
|
|
|
|
std::vector<std::string> arguments;
|
|
if (crash_reporter_client->ShouldMonitorCrashHandlerExpensively()) {
|
|
@@ -191,6 +192,13 @@ bool PlatformCrashpadInitialization(
|
|
}
|
|
#endif
|
|
|
|
+ if (!crash_reporter_client->GetShouldRateLimit()) {
|
|
+ arguments.push_back("--no-rate-limit");
|
|
+ }
|
|
+ if (!crash_reporter_client->GetShouldCompressUploads()) {
|
|
+ arguments.push_back("--no-upload-gzip");
|
|
+ }
|
|
+
|
|
CHECK(client.StartHandler(handler_path, *database_path, metrics_path, url,
|
|
annotations, arguments, false, false));
|
|
} else {
|
|
diff --git a/components/crash/core/app/crashpad_mac.mm b/components/crash/core/app/crashpad_mac.mm
|
|
index dc041c43371fd58e3121ef6bc423aadb644bb8d0..a1fa566775724b4a1662a939fda3f0a59bf46b96 100644
|
|
--- a/components/crash/core/app/crashpad_mac.mm
|
|
+++ b/components/crash/core/app/crashpad_mac.mm
|
|
@@ -85,6 +85,8 @@
|
|
} // @autoreleasepool
|
|
return process_annotations;
|
|
}();
|
|
+ CrashReporterClient* crash_reporter_client = GetCrashReporterClient();
|
|
+ crash_reporter_client->GetProcessSimpleAnnotations(&annotations);
|
|
return annotations;
|
|
}
|
|
|
|
@@ -155,6 +157,13 @@ bool PlatformCrashpadInitialization(
|
|
|
|
std::vector<std::string> arguments;
|
|
|
|
+ if (!crash_reporter_client->GetShouldRateLimit()) {
|
|
+ arguments.push_back("--no-rate-limit");
|
|
+ }
|
|
+ if (!crash_reporter_client->GetShouldCompressUploads()) {
|
|
+ arguments.push_back("--no-upload-gzip");
|
|
+ }
|
|
+
|
|
if (crash_reporter_client->ShouldMonitorCrashHandlerExpensively()) {
|
|
arguments.push_back("--monitor-self");
|
|
}
|
|
diff --git a/components/crash/core/app/crashpad_win.cc b/components/crash/core/app/crashpad_win.cc
|
|
index 80f33dc5e2f2ed330e0726a5735b247ea8e99fd7..b96bf703f6b691886d6e4d5cd6d775945a8995e1 100644
|
|
--- a/components/crash/core/app/crashpad_win.cc
|
|
+++ b/components/crash/core/app/crashpad_win.cc
|
|
@@ -90,6 +90,7 @@ bool PlatformCrashpadInitialization(
|
|
|
|
std::map<std::string, std::string> process_annotations;
|
|
GetPlatformCrashpadAnnotations(&process_annotations);
|
|
+ crash_reporter_client->GetProcessSimpleAnnotations(&process_annotations);
|
|
|
|
std::string url = crash_reporter_client->GetUploadUrl();
|
|
|
|
@@ -128,6 +129,13 @@ bool PlatformCrashpadInitialization(
|
|
|
|
std::vector<std::string> arguments(start_arguments);
|
|
|
|
+ if (!crash_reporter_client->GetShouldRateLimit()) {
|
|
+ arguments.push_back("--no-rate-limit");
|
|
+ }
|
|
+ if (!crash_reporter_client->GetShouldCompressUploads()) {
|
|
+ arguments.push_back("--no-upload-gzip");
|
|
+ }
|
|
+
|
|
if (crash_reporter_client->ShouldMonitorCrashHandlerExpensively()) {
|
|
arguments.push_back("--monitor-self");
|
|
for (const std::string& start_argument : start_arguments) {
|