Index: chrome/app/chrome_crash_reporter_client_win.cc |
diff --git a/chrome/app/chrome_crash_reporter_client.cc b/chrome/app/chrome_crash_reporter_client_win.cc |
similarity index 76% |
copy from chrome/app/chrome_crash_reporter_client.cc |
copy to chrome/app/chrome_crash_reporter_client_win.cc |
index 849e57563d7f7931d6637f2dc20d5a8fae034154..1250741914a73718add2e1e3440bdd9c08a469eb 100644 |
--- a/chrome/app/chrome_crash_reporter_client.cc |
+++ b/chrome/app/chrome_crash_reporter_client_win.cc |
@@ -2,63 +2,41 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/app/chrome_crash_reporter_client.h" |
+#include "chrome/app/chrome_crash_reporter_client_win.h" |
+ |
+#include <windows.h> |
#include "base/command_line.h" |
#include "base/environment.h" |
+#include "base/file_version_info.h" |
#include "base/files/file_path.h" |
#include "base/logging.h" |
+#include "base/memory/scoped_ptr.h" |
#include "base/path_service.h" |
#include "base/strings/string_split.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "base/win/registry.h" |
#include "build/build_config.h" |
#include "chrome/common/chrome_paths.h" |
#include "chrome/common/chrome_paths_internal.h" |
#include "chrome/common/chrome_result_codes.h" |
#include "chrome/common/crash_keys.h" |
#include "chrome/common/env_vars.h" |
-#include "chrome/installer/util/google_update_settings.h" |
-#include "content/public/common/content_switches.h" |
- |
-#if defined(OS_WIN) |
-#include <windows.h> |
- |
-#include "base/file_version_info.h" |
-#include "base/win/registry.h" |
#include "chrome/common/metrics_constants_util_win.h" |
#include "chrome/installer/util/google_chrome_sxs_distribution.h" |
+#include "chrome/installer/util/google_update_settings.h" |
#include "chrome/installer/util/install_util.h" |
#include "chrome/installer/util/util_constants.h" |
#include "components/browser_watcher/crash_reporting_metrics_win.h" |
+#include "content/public/common/content_switches.h" |
#include "policy/policy_constants.h" |
-#endif |
- |
-#if defined(OS_POSIX) && !defined(OS_MACOSX) |
-#include "components/upload_list/crash_upload_list.h" |
-#include "components/version_info/version_info_values.h" |
-#endif |
- |
-#if defined(OS_POSIX) |
-#include "base/debug/dump_without_crashing.h" |
-#endif |
- |
-#if defined(OS_ANDROID) |
-#include "chrome/common/descriptors_android.h" |
-#endif |
-#if defined(OS_CHROMEOS) |
-#include "chrome/common/channel_info.h" |
-#include "chromeos/chromeos_switches.h" |
-#include "components/version_info/version_info.h" |
-#endif |
namespace { |
-#if defined(OS_WIN) |
// This is the minimum version of google update that is required for deferred |
// crash uploads to work. |
const char kMinUpdateVersion[] = "1.3.21.115"; |
-#endif |
} // namespace |
@@ -66,14 +44,6 @@ ChromeCrashReporterClient::ChromeCrashReporterClient() {} |
ChromeCrashReporterClient::~ChromeCrashReporterClient() {} |
-#if !defined(OS_MACOSX) && !defined(OS_WIN) |
-void ChromeCrashReporterClient::SetCrashReporterClientIdFromGUID( |
- const std::string& client_guid) { |
- crash_keys::SetMetricsClientIdFromGUID(client_guid); |
-} |
-#endif |
- |
-#if defined(OS_WIN) |
bool ChromeCrashReporterClient::GetAlternativeCrashDumpLocation( |
base::FilePath* crash_dir) { |
// By setting the BREAKPAD_DUMP_LOCATION environment variable, an alternate |
@@ -99,7 +69,7 @@ void ChromeCrashReporterClient::GetProductNameAndVersion( |
DCHECK(special_build); |
DCHECK(channel_name); |
- std::unique_ptr<FileVersionInfo> version_info( |
+ scoped_ptr<FileVersionInfo> version_info( |
FileVersionInfo::CreateFileVersionInfo(exe_path)); |
if (version_info.get()) { |
@@ -123,7 +93,7 @@ void ChromeCrashReporterClient::GetProductNameAndVersion( |
bool ChromeCrashReporterClient::ShouldShowRestartDialog(base::string16* title, |
base::string16* message, |
bool* is_rtl_locale) { |
- std::unique_ptr<base::Environment> env(base::Environment::Create()); |
+ scoped_ptr<base::Environment> env(base::Environment::Create()); |
if (!env->HasVar(env_vars::kShowRestart) || |
!env->HasVar(env_vars::kRestartInfo) || |
env->HasVar(env_vars::kMetroConnected)) { |
@@ -149,7 +119,7 @@ bool ChromeCrashReporterClient::ShouldShowRestartDialog(base::string16* title, |
} |
bool ChromeCrashReporterClient::AboutToRestart() { |
- std::unique_ptr<base::Environment> env(base::Environment::Create()); |
+ scoped_ptr<base::Environment> env(base::Environment::Create()); |
if (!env->HasVar(env_vars::kRestartInfo)) |
return false; |
@@ -250,63 +220,29 @@ bool ChromeCrashReporterClient::ReportingIsEnforcedByPolicy( |
return false; |
} |
-#endif // defined(OS_WIN) |
- |
-#if defined(OS_POSIX) && !defined(OS_MACOSX) |
-void ChromeCrashReporterClient::GetProductNameAndVersion( |
- const char** product_name, |
- const char** version) { |
- DCHECK(product_name); |
- DCHECK(version); |
-#if defined(OS_ANDROID) |
- *product_name = "Chrome_Android"; |
-#elif defined(OS_CHROMEOS) |
- *product_name = "Chrome_ChromeOS"; |
-#else // OS_LINUX |
-#if !defined(ADDRESS_SANITIZER) |
- *product_name = "Chrome_Linux"; |
-#else |
- *product_name = "Chrome_Linux_ASan"; |
-#endif |
-#endif |
- |
- *version = PRODUCT_VERSION; |
-} |
-base::FilePath ChromeCrashReporterClient::GetReporterLogFilename() { |
- return base::FilePath(CrashUploadList::kReporterLogFilename); |
-} |
-#endif |
bool ChromeCrashReporterClient::GetCrashDumpLocation( |
base::FilePath* crash_dir) { |
// By setting the BREAKPAD_DUMP_LOCATION environment variable, an alternate |
// location to write breakpad crash dumps can be set. |
- std::unique_ptr<base::Environment> env(base::Environment::Create()); |
+ scoped_ptr<base::Environment> env(base::Environment::Create()); |
std::string alternate_crash_dump_location; |
if (env->GetVar("BREAKPAD_DUMP_LOCATION", &alternate_crash_dump_location)) { |
base::FilePath crash_dumps_dir_path = |
base::FilePath::FromUTF8Unsafe(alternate_crash_dump_location); |
-#if defined(OS_WIN) |
// If this environment variable exists, then for the time being, |
// short-circuit how it's handled on Windows. Honoring this |
// variable is required in order to symbolize stack traces in |
// Telemetry based tests: http://crbug.com/561763. |
*crash_dir = crash_dumps_dir_path; |
return true; |
-#else |
- PathService::Override(chrome::DIR_CRASH_DUMPS, crash_dumps_dir_path); |
-#endif |
} |
-#if defined(OS_WIN) |
// TODO(scottmg): Consider supporting --user-data-dir. See |
// https://crbug.com/565446. |
return chrome::GetDefaultCrashDumpLocation(crash_dir); |
-#else |
- return PathService::Get(chrome::DIR_CRASH_DUMPS, crash_dir); |
-#endif |
} |
size_t ChromeCrashReporterClient::RegisterCrashKeys() { |
@@ -314,7 +250,7 @@ size_t ChromeCrashReporterClient::RegisterCrashKeys() { |
} |
bool ChromeCrashReporterClient::IsRunningUnattended() { |
- std::unique_ptr<base::Environment> env(base::Environment::Create()); |
+ scoped_ptr<base::Environment> env(base::Environment::Create()); |
return env->HasVar(env_vars::kHeadless); |
} |
@@ -325,33 +261,10 @@ bool ChromeCrashReporterClient::GetCollectStatsConsent() { |
bool is_official_chrome_build = false; |
#endif |
-#if defined(OS_CHROMEOS) |
- bool is_guest_session = base::CommandLine::ForCurrentProcess()->HasSwitch( |
- chromeos::switches::kGuestSession); |
- bool is_stable_channel = |
- chrome::GetChannel() == version_info::Channel::STABLE; |
- |
- if (is_guest_session && is_stable_channel) |
- return false; |
-#endif // defined(OS_CHROMEOS) |
- |
-#if defined(OS_ANDROID) |
- // TODO(jcivelli): we should not initialize the crash-reporter when it was not |
- // enabled. Right now if it is disabled we still generate the minidumps but we |
- // do not upload them. |
- return is_official_chrome_build; |
-#else // !defined(OS_ANDROID) |
return is_official_chrome_build && |
GoogleUpdateSettings::GetCollectStatsConsent(); |
-#endif // defined(OS_ANDROID) |
} |
-#if defined(OS_ANDROID) |
-int ChromeCrashReporterClient::GetAndroidMinidumpDescriptor() { |
- return kAndroidMinidumpDescriptor; |
-} |
-#endif |
- |
bool ChromeCrashReporterClient::EnableBreakpadForProcess( |
const std::string& process_type) { |
return process_type == switches::kRendererProcess || |