| Index: chrome/app/chrome_crash_reporter_client_mac.mm
|
| diff --git a/chrome/app/chrome_crash_reporter_client_mac.mm b/chrome/app/chrome_crash_reporter_client_mac.mm
|
| index d3a227bc5fe81121f940d2b29f3ee89fadf7005a..b990b2f7be12f7958b6443740e1defc8e57ae73a 100644
|
| --- a/chrome/app/chrome_crash_reporter_client_mac.mm
|
| +++ b/chrome/app/chrome_crash_reporter_client_mac.mm
|
| @@ -8,9 +8,12 @@
|
|
|
| #include "base/mac/scoped_cftyperef.h"
|
| #include "base/path_service.h"
|
| +#include "base/rand_util.h"
|
| #include "base/strings/sys_string_conversions.h"
|
| +#include "chrome/common/channel_info.h"
|
| #include "chrome/common/chrome_paths.h"
|
| #include "components/policy/policy_constants.h"
|
| +#include "components/version_info/version_info.h"
|
|
|
| #if !defined(DISABLE_NACL)
|
| #include "base/command_line.h"
|
| @@ -38,3 +41,33 @@
|
| }
|
| return false;
|
| }
|
| +
|
| +bool ChromeCrashReporterClient::ShouldMonitorCrashHandlerExpensively() {
|
| + // This mechanism dedicates a process to be crashpad_handler's own
|
| + // crashpad_handler. In Chrome builds for official release, scale back on this
|
| + // in the more stable channels. Other builds are of more of a developmental
|
| + // nature, so always enable the additional crash reporting.
|
| +#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD)
|
| + double probability;
|
| + switch (chrome::GetChannel()) {
|
| + case version_info::Channel::STABLE:
|
| + probability = 0.01;
|
| + break;
|
| +
|
| + case version_info::Channel::BETA:
|
| + probability = 0.1;
|
| + break;
|
| +
|
| + case version_info::Channel::DEV:
|
| + probability = 0.25;
|
| + break;
|
| +
|
| + case version_info::Channel::CANARY:
|
| + case version_info::Channel::UNKNOWN:
|
| + return true;
|
| + }
|
| + return base::RandDouble() < probability;
|
| +#else
|
| + return true;
|
| +#endif
|
| +}
|
|
|