| 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() {
|
|
|