| 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 42e2093efa73d2506a45a87d0b89b2b4cc974dc0..6cd77d62cb9bd13497d0ffc52ee761cc416d05ce 100644 | 
| --- a/chrome/app/chrome_crash_reporter_client_win.cc | 
| +++ b/chrome/app/chrome_crash_reporter_client_win.cc | 
| @@ -8,198 +8,18 @@ | 
|  | 
| #include <assert.h> | 
| #include <windows.h> | 
| -#include <shellapi.h> | 
| + | 
| #include <memory> | 
| #include <string> | 
|  | 
| -#include "base/command_line.h" | 
| -#include "base/debug/crash_logging.h" | 
| -#include "base/debug/leak_annotations.h" | 
| -#include "base/format_macros.h" | 
| +#include "build/build_config.h" | 
| #include "chrome/common/chrome_result_codes.h" | 
| +#include "chrome/common/crash_keys.h" | 
| #include "chrome/install_static/install_util.h" | 
| -#include "components/crash/content/app/crashpad.h" | 
| -#include "components/crash/core/common/crash_keys.h" | 
| - | 
| -namespace { | 
| - | 
| -// TODO(ananta) | 
| -// When the new crash key map implementation lands, we should remove the | 
| -// constants defined below, the RegisterCrashKeysHelper function, the | 
| -// RegisterCrashKeys function in the crash_keys::CrashReporterClient interface | 
| -// and the snprintf function defined here. | 
| -constexpr char kActiveURL[] = "url-chunk"; | 
| -constexpr char kFontKeyName[] = "font_key_name"; | 
| - | 
| -// Installed extensions. |kExtensionID| should be formatted with an integer, | 
| -// in the range [0, kExtensionIDMaxCount). | 
| -constexpr char kNumExtensionsCount[] = "num-extensions"; | 
| -constexpr size_t kExtensionIDMaxCount = 10; | 
| -constexpr char kExtensionID[] = "extension-%" PRIuS; | 
| - | 
| -constexpr char kShutdownType[] = "shutdown-type"; | 
| - | 
| -constexpr char kGPUVendorID[] = "gpu-venid"; | 
| -constexpr char kGPUDeviceID[] = "gpu-devid"; | 
| -constexpr char kGPUDriverVersion[] = "gpu-driver"; | 
| -constexpr char kGPUPixelShaderVersion[] = "gpu-psver"; | 
| -constexpr char kGPUVertexShaderVersion[] = "gpu-vsver"; | 
| - | 
| -constexpr char kHungAudioThreadDetails[] = "hung-audio-thread-details"; | 
| - | 
| -constexpr char kViewCount[] = "view-count"; | 
| -constexpr char kZeroEncodeDetails[] = "zero-encode-details"; | 
| - | 
| -// The user's printers, up to kPrinterInfoCount. Should be set with | 
| -// ScopedPrinterInfo. | 
| -constexpr size_t kPrinterInfoCount = 4; | 
| -constexpr char kPrinterInfo[] = "prn-info-%" PRIuS; | 
| - | 
| -using namespace crash_keys; | 
| - | 
| -int snprintf(char* buffer, | 
| -             size_t size, | 
| -             _Printf_format_string_ const char* format, | 
| -             ...) { | 
| -  va_list arguments; | 
| -  va_start(arguments, format); | 
| -  int result = vsnprintf(buffer, size, format, arguments); | 
| -  va_end(arguments); | 
| -  return result; | 
| -} | 
| - | 
| -size_t RegisterCrashKeysHelper() { | 
| -  // The following keys may be chunked by the underlying crash logging system, | 
| -  // but ultimately constitute a single key-value pair. | 
| -  // | 
| -  // If you're adding keys here, please also add them to the list in | 
| -  // //blimp/engine/app/blimp_engine_crash_keys.cc | 
| -  constexpr base::debug::CrashKey fixed_keys[] = { | 
| -      {kMetricsClientId, kSmallSize}, | 
| -      {kChannel, kSmallSize}, | 
| -      {kActiveURL, kLargeSize}, | 
| -      {kNumVariations, kSmallSize}, | 
| -      {kVariations, kLargeSize}, | 
| -      {kNumExtensionsCount, kSmallSize}, | 
| -      {kShutdownType, kSmallSize}, | 
| -      {kGPUVendorID, kSmallSize}, | 
| -      {kGPUDeviceID, kSmallSize}, | 
| -      {kGPUDriverVersion, kSmallSize}, | 
| -      {kGPUPixelShaderVersion, kSmallSize}, | 
| -      {kGPUVertexShaderVersion, kSmallSize}, | 
| - | 
| -      // content/: | 
| -      {"discardable-memory-allocated", kSmallSize}, | 
| -      {"discardable-memory-free", kSmallSize}, | 
| -      {kFontKeyName, kSmallSize}, | 
| -      {"ppapi_path", kMediumSize}, | 
| -      {"subresource_url", kLargeSize}, | 
| -      {"total-discardable-memory-allocated", kSmallSize}, | 
| -      {kBug464926CrashKey, kSmallSize}, | 
| -      {kViewCount, kSmallSize}, | 
| - | 
| -      // media/: | 
| -      {kHungAudioThreadDetails, kSmallSize}, | 
| -      {kZeroEncodeDetails, kSmallSize}, | 
| - | 
| -      // Temporary for http://crbug.com/575245. | 
| -      {"swapout_frame_id", kSmallSize}, | 
| -      {"swapout_proxy_id", kSmallSize}, | 
| -      {"swapout_view_id", kSmallSize}, | 
| -      {"commit_frame_id", kSmallSize}, | 
| -      {"commit_proxy_id", kSmallSize}, | 
| -      {"commit_view_id", kSmallSize}, | 
| -      {"commit_main_render_frame_id", kSmallSize}, | 
| -      {"newproxy_proxy_id", kSmallSize}, | 
| -      {"newproxy_view_id", kSmallSize}, | 
| -      {"newproxy_opener_id", kSmallSize}, | 
| -      {"newproxy_parent_id", kSmallSize}, | 
| -      {"rvinit_view_id", kSmallSize}, | 
| -      {"rvinit_proxy_id", kSmallSize}, | 
| -      {"rvinit_main_frame_id", kSmallSize}, | 
| -      {"initrf_frame_id", kSmallSize}, | 
| -      {"initrf_proxy_id", kSmallSize}, | 
| -      {"initrf_view_id", kSmallSize}, | 
| -      {"initrf_main_frame_id", kSmallSize}, | 
| -      {"initrf_view_is_live", kSmallSize}, | 
| - | 
| -      // Temporary for https://crbug.com/591478. | 
| -      {"initrf_parent_proxy_exists", kSmallSize}, | 
| -      {"initrf_render_view_is_live", kSmallSize}, | 
| -      {"initrf_parent_is_in_same_site_instance", kSmallSize}, | 
| -      {"initrf_parent_process_is_live", kSmallSize}, | 
| -      {"initrf_root_is_in_same_site_instance", kSmallSize}, | 
| -      {"initrf_root_is_in_same_site_instance_as_parent", kSmallSize}, | 
| -      {"initrf_root_process_is_live", kSmallSize}, | 
| -      {"initrf_root_proxy_is_live", kSmallSize}, | 
| - | 
| -      // Temporary for https://crbug.com/612711. | 
| -      {"aci_wrong_sp_extension_id", kSmallSize}, | 
| - | 
| -      // Temporary for https://crbug.com/616149. | 
| -      {"existing_extension_pref_value_type", crash_keys::kSmallSize}, | 
| -  }; | 
| - | 
| -  // This dynamic set of keys is used for sets of key value pairs when gathering | 
| -  // a collection of data, like command line switches or extension IDs. | 
| -  std::vector<base::debug::CrashKey> keys(fixed_keys, | 
| -                                          fixed_keys + arraysize(fixed_keys)); | 
| - | 
| -  crash_keys::GetCrashKeysForCommandLineSwitches(&keys); | 
| - | 
| -  // Register the extension IDs. | 
| -  { | 
| -    static char formatted_keys[kExtensionIDMaxCount] | 
| -                              [sizeof(kExtensionID) + 1] = {{0}}; | 
| -    const size_t formatted_key_len = sizeof(formatted_keys[0]); | 
| -    for (size_t i = 0; i < kExtensionIDMaxCount; ++i) { | 
| -      snprintf(formatted_keys[i], formatted_key_len, kExtensionID, i + 1); | 
| -      base::debug::CrashKey crash_key = {formatted_keys[i], kSmallSize}; | 
| -      keys.push_back(crash_key); | 
| -    } | 
| -  } | 
| - | 
| -  // Register the printer info. | 
| -  { | 
| -    static char formatted_keys[kPrinterInfoCount] | 
| -                              [sizeof(kPrinterInfo) + 1] = {{0}}; | 
| -    const size_t formatted_key_len = sizeof(formatted_keys[0]); | 
| -    for (size_t i = 0; i < kPrinterInfoCount; ++i) { | 
| -      // Key names are 1-indexed. | 
| -      snprintf(formatted_keys[i], formatted_key_len, kPrinterInfo, i + 1); | 
| -      base::debug::CrashKey crash_key = {formatted_keys[i], kSmallSize}; | 
| -      keys.push_back(crash_key); | 
| -    } | 
| -  } | 
| - | 
| -  return base::debug::InitCrashKeys(&keys[0], keys.size(), kChunkMaxLength); | 
| -} | 
| - | 
| -}  // namespace | 
|  | 
| ChromeCrashReporterClient::ChromeCrashReporterClient() {} | 
|  | 
| ChromeCrashReporterClient::~ChromeCrashReporterClient() {} | 
| - | 
| -#if !defined(NACL_WIN64) | 
| -// static | 
| -void ChromeCrashReporterClient::InitializeCrashReportingForProcess() { | 
| -  static ChromeCrashReporterClient* instance = nullptr; | 
| -  if (instance) | 
| -    return; | 
| - | 
| -  instance = new ChromeCrashReporterClient(); | 
| -  ANNOTATE_LEAKING_OBJECT_PTR(instance); | 
| - | 
| -  std::string process_type = install_static::GetSwitchValueFromCommandLine( | 
| -      ::GetCommandLineA(), install_static::kProcessType); | 
| -  if (process_type != install_static::kCrashpadHandler) { | 
| -    crash_reporter::SetCrashReporterClient(instance); | 
| -    crash_reporter::InitializeCrashpadWithEmbeddedHandler(process_type.empty(), | 
| -                                                          process_type); | 
| -  } | 
| -} | 
| -#endif  // NACL_WIN64 | 
|  | 
| bool ChromeCrashReporterClient::GetAlternativeCrashDumpLocation( | 
| base::string16* crash_dir) { | 
| @@ -317,11 +137,8 @@ | 
| return install_static::GetDefaultCrashDumpLocation(crash_dir); | 
| } | 
|  | 
| -// TODO(ananta) | 
| -// This function should be removed when the new crash key map implementation | 
| -// lands. | 
| size_t ChromeCrashReporterClient::RegisterCrashKeys() { | 
| -  return RegisterCrashKeysHelper(); | 
| +  return crash_keys::RegisterChromeCrashKeys(); | 
| } | 
|  | 
| bool ChromeCrashReporterClient::IsRunningUnattended() { | 
|  |