| Index: chrome/app/chrome_crash_reporter_client_win.cc
|
| diff --git a/chrome/app/chrome_crash_reporter_client_win.cc b/chrome/app/chrome_crash_reporter_client_win.cc
|
| index edc2551c74cb4f00c6f92b08ad03be608d4da2a6..6cd77d62cb9bd13497d0ffc52ee761cc416d05ce 100644
|
| --- a/chrome/app/chrome_crash_reporter_client_win.cc
|
| +++ b/chrome/app/chrome_crash_reporter_client_win.cc
|
| @@ -6,110 +6,89 @@
|
| // Add test coverage for Crashpad.
|
| #include "chrome/app/chrome_crash_reporter_client_win.h"
|
|
|
| +#include <assert.h>
|
| #include <windows.h>
|
|
|
| #include <memory>
|
| #include <string>
|
|
|
| -#include "base/command_line.h"
|
| -#include "base/files/file_path.h"
|
| -#include "base/logging.h"
|
| -#include "base/path_service.h"
|
| -#include "base/strings/string_split.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "base/version.h"
|
| #include "build/build_config.h"
|
| #include "chrome/common/chrome_result_codes.h"
|
| #include "chrome/common/crash_keys.h"
|
| -#include "chrome/common/env_vars.h"
|
| #include "chrome/install_static/install_util.h"
|
| -#include "content/public/common/content_switches.h"
|
| -
|
| -namespace {
|
| -
|
| -// This is the minimum version of google update that is required for deferred
|
| -// crash uploads to work.
|
| -const char kMinUpdateVersion[] = "1.3.21.115";
|
| -
|
| -} // namespace
|
|
|
| ChromeCrashReporterClient::ChromeCrashReporterClient() {}
|
|
|
| ChromeCrashReporterClient::~ChromeCrashReporterClient() {}
|
|
|
| bool ChromeCrashReporterClient::GetAlternativeCrashDumpLocation(
|
| - base::FilePath* crash_dir) {
|
| + base::string16* crash_dir) {
|
| // By setting the BREAKPAD_DUMP_LOCATION environment variable, an alternate
|
| // location to write breakpad crash dumps can be set.
|
| - std::string alternate_crash_dump_location =
|
| - install_static::GetEnvironmentString("BREAKPAD_DUMP_LOCATION");
|
| - if (!alternate_crash_dump_location.empty()) {
|
| - *crash_dir = base::FilePath::FromUTF8Unsafe(alternate_crash_dump_location);
|
| - return true;
|
| - }
|
| - return false;
|
| + *crash_dir =
|
| + install_static::GetEnvironmentString16(L"BREAKPAD_DUMP_LOCATION");
|
| + return !crash_dir->empty();
|
| }
|
|
|
| void ChromeCrashReporterClient::GetProductNameAndVersion(
|
| - const base::FilePath& exe_path,
|
| + const base::string16& exe_path,
|
| base::string16* product_name,
|
| base::string16* version,
|
| base::string16* special_build,
|
| base::string16* channel_name) {
|
| - DCHECK(product_name);
|
| - DCHECK(version);
|
| - DCHECK(special_build);
|
| - DCHECK(channel_name);
|
| + assert(product_name);
|
| + assert(version);
|
| + assert(special_build);
|
| + assert(channel_name);
|
|
|
| install_static::GetExecutableVersionDetails(
|
| - exe_path.value(), product_name, version, special_build, channel_name);
|
| + exe_path, product_name, version, special_build, channel_name);
|
| }
|
|
|
| bool ChromeCrashReporterClient::ShouldShowRestartDialog(base::string16* title,
|
| base::string16* message,
|
| bool* is_rtl_locale) {
|
| - if (!install_static::HasEnvironmentVariable(env_vars::kShowRestart) ||
|
| - !install_static::HasEnvironmentVariable(env_vars::kRestartInfo) ||
|
| - install_static::HasEnvironmentVariable(env_vars::kMetroConnected)) {
|
| + if (!install_static::HasEnvironmentVariable16(
|
| + install_static::kShowRestart) ||
|
| + !install_static::HasEnvironmentVariable16(
|
| + install_static::kRestartInfo)) {
|
| return false;
|
| }
|
|
|
| - std::string restart_info =
|
| - install_static::GetEnvironmentString(env_vars::kRestartInfo);
|
| + base::string16 restart_info =
|
| + install_static::GetEnvironmentString16(install_static::kRestartInfo);
|
|
|
| // The CHROME_RESTART var contains the dialog strings separated by '|'.
|
| // See ChromeBrowserMainPartsWin::PrepareRestartOnCrashEnviroment()
|
| // for details.
|
| - std::vector<std::string> dlg_strings = base::SplitString(
|
| - restart_info, "|", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
|
| + std::vector<base::string16> dlg_strings = install_static::TokenizeString16(
|
| + restart_info, L'|', true); // true = Trim whitespace.
|
|
|
| if (dlg_strings.size() < 3)
|
| return false;
|
|
|
| - *title = base::UTF8ToUTF16(dlg_strings[0]);
|
| - *message = base::UTF8ToUTF16(dlg_strings[1]);
|
| - *is_rtl_locale = dlg_strings[2] == env_vars::kRtlLocale;
|
| + *title = dlg_strings[0];
|
| + *message = dlg_strings[1];
|
| + *is_rtl_locale = dlg_strings[2] == install_static::kRtlLocale;
|
| return true;
|
| }
|
|
|
| bool ChromeCrashReporterClient::AboutToRestart() {
|
| - if (!install_static::HasEnvironmentVariable(env_vars::kRestartInfo))
|
| + if (!install_static::HasEnvironmentVariable16(install_static::kRestartInfo))
|
| return false;
|
|
|
| - install_static::SetEnvironmentString(env_vars::kShowRestart, "1");
|
| + install_static::SetEnvironmentString16(install_static::kShowRestart, L"1");
|
| return true;
|
| }
|
|
|
| bool ChromeCrashReporterClient::GetDeferredUploadsSupported(
|
| bool is_per_user_install) {
|
| - Version update_version(install_static::GetGoogleUpdateVersion());
|
| - return update_version.IsValid() &&
|
| - update_version >= base::Version(kMinUpdateVersion);
|
| + return false;
|
| }
|
|
|
| bool ChromeCrashReporterClient::GetIsPerUserInstall(
|
| - const base::FilePath& exe_path) {
|
| - return !install_static::IsSystemInstall(exe_path.value().c_str());
|
| + const base::string16& exe_path) {
|
| + return !install_static::IsSystemInstall(exe_path.c_str());
|
| }
|
|
|
| bool ChromeCrashReporterClient::GetShouldDumpLargerDumps(
|
| @@ -143,7 +122,7 @@ bool ChromeCrashReporterClient::ReportingIsEnforcedByPolicy(
|
|
|
|
|
| bool ChromeCrashReporterClient::GetCrashDumpLocation(
|
| - base::FilePath* crash_dir) {
|
| + base::string16* crash_dir) {
|
| // By setting the BREAKPAD_DUMP_LOCATION environment variable, an alternate
|
| // location to write breakpad crash dumps can be set.
|
| // If this environment variable exists, then for the time being,
|
| @@ -155,11 +134,7 @@ bool ChromeCrashReporterClient::GetCrashDumpLocation(
|
|
|
| // TODO(scottmg): Consider supporting --user-data-dir. See
|
| // https://crbug.com/565446.
|
| - base::string16 crash_dump_location;
|
| - if (!install_static::GetDefaultCrashDumpLocation(&crash_dump_location))
|
| - return false;
|
| - *crash_dir = base::FilePath(crash_dump_location);
|
| - return true;
|
| + return install_static::GetDefaultCrashDumpLocation(crash_dir);
|
| }
|
|
|
| size_t ChromeCrashReporterClient::RegisterCrashKeys() {
|
| @@ -167,7 +142,7 @@ size_t ChromeCrashReporterClient::RegisterCrashKeys() {
|
| }
|
|
|
| bool ChromeCrashReporterClient::IsRunningUnattended() {
|
| - return install_static::HasEnvironmentVariable(env_vars::kHeadless);
|
| + return install_static::HasEnvironmentVariable16(install_static::kHeadless);
|
| }
|
|
|
| bool ChromeCrashReporterClient::GetCollectStatsConsent() {
|
| @@ -176,8 +151,7 @@ bool ChromeCrashReporterClient::GetCollectStatsConsent() {
|
|
|
| bool ChromeCrashReporterClient::EnableBreakpadForProcess(
|
| const std::string& process_type) {
|
| - return process_type == switches::kRendererProcess ||
|
| - process_type == switches::kPpapiPluginProcess ||
|
| - process_type == switches::kZygoteProcess ||
|
| - process_type == switches::kGpuProcess;
|
| + return process_type == install_static::kRendererProcess ||
|
| + process_type == install_static::kPpapiPluginProcess ||
|
| + process_type == install_static::kGpuProcess;
|
| }
|
|
|