From 530966b8effadfa3e026118240ce21709fc4c843 Mon Sep 17 00:00:00 2001 From: "zea@chromium.org" Date: Thu, 21 Nov 2013 23:13:51 +0000 Subject: [PATCH] [Sync] Support unrecoverable error uploading on non-win platforms We now use chrome/common/dump_without_crashing.h, and only upload on canary/ dev builds. BUG=127429 Review URL: https://codereview.chromium.org/80963003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236623 0039d316-1c4b-4281-b951-d872f2087c98 --- .../sync/glue/chrome_report_unrecoverable_error.cc | 29 ++++++++-------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/chrome/browser/sync/glue/chrome_report_unrecoverable_error.cc b/chrome/browser/sync/glue/chrome_report_unrecoverable_error.cc index 2fe9dd4a358e..72b5c72c448a 100644 --- a/chrome/browser/sync/glue/chrome_report_unrecoverable_error.cc +++ b/chrome/browser/sync/glue/chrome_report_unrecoverable_error.cc @@ -5,38 +5,29 @@ #include "chrome/browser/sync/glue/chrome_report_unrecoverable_error.h" #include "base/rand_util.h" -#include "build/build_config.h" - -#if defined(OS_WIN) -#include -#endif - #include "chrome/common/chrome_constants.h" +#include "chrome/common/chrome_version_info.h" +#include "chrome/common/dump_without_crashing.h" namespace browser_sync { void ChromeReportUnrecoverableError() { - // TODO(lipalani): Add this for other platforms as well. -#if defined(OS_WIN) - const double kErrorUploadRatio = 0.15; + // Only upload on canary/dev builds to avoid overwhelming crash server. + chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); + if (channel != chrome::VersionInfo::CHANNEL_CANARY && + channel != chrome::VersionInfo::CHANNEL_DEV) { + return; + } // We only want to upload |kErrorUploadRatio| ratio of errors. + const double kErrorUploadRatio = 0.15; if (kErrorUploadRatio <= 0.0) return; // We are not allowed to upload errors. double random_number = base::RandDouble(); if (random_number > kErrorUploadRatio) return; - // Get the breakpad pointer from chrome.exe - typedef void (__cdecl *DumpProcessFunction)(); - DumpProcessFunction DumpProcess = reinterpret_cast( - ::GetProcAddress(::GetModuleHandle( - chrome::kBrowserProcessExecutableName), - "DumpProcessWithoutCrash")); - if (DumpProcess) - DumpProcess(); -#endif // OS_WIN - + logging::DumpWithoutCrashing(); } } // namespace browser_sync -- 2.11.4.GIT