| Index: chrome/common/crash_keys.cc
|
| diff --git a/chrome/common/crash_keys.cc b/chrome/common/crash_keys.cc
|
| index ad3fb135c2b3e638405ce84b3700a00878f07904..1270492c123f68b8daa8f114bf3e433e790db5dd 100644
|
| --- a/chrome/common/crash_keys.cc
|
| +++ b/chrome/common/crash_keys.cc
|
| @@ -11,7 +11,6 @@
|
| #include "base/strings/string_split.h"
|
| #include "base/strings/string_util.h"
|
| #include "base/strings/stringprintf.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "components/flags_ui/flags_ui_switches.h"
|
| #include "content/public/common/content_switches.h"
|
| @@ -29,9 +28,6 @@ const char kActiveURL[] = "url-chunk";
|
|
|
| const char kFontKeyName[] = "font_key_name";
|
|
|
| -const char kSwitch[] = "switch-%" PRIuS;
|
| -const char kNumSwitches[] = "num-switches";
|
| -
|
| const char kExtensionID[] = "extension-%" PRIuS;
|
| const char kNumExtensionsCount[] = "num-extensions";
|
|
|
| @@ -94,7 +90,6 @@ size_t RegisterChromeCrashKeys() {
|
| #endif
|
| { kChannel, kSmallSize },
|
| { kActiveURL, kLargeSize },
|
| - { kNumSwitches, kSmallSize },
|
| { kNumVariations, kSmallSize },
|
| { kVariations, kLargeSize },
|
| { kNumExtensionsCount, kSmallSize },
|
| @@ -154,23 +149,7 @@ size_t RegisterChromeCrashKeys() {
|
| std::vector<base::debug::CrashKey> keys(
|
| fixed_keys, fixed_keys + arraysize(fixed_keys));
|
|
|
| - // Register the switches.
|
| - {
|
| - // The fixed_keys names are string constants. Use static storage for
|
| - // formatted key names as well, since they will persist for the duration of
|
| - // the program.
|
| - static char formatted_keys[kSwitchesMaxCount][sizeof(kSwitch) + 1] =
|
| - {{ 0 }};
|
| - const size_t formatted_key_len = sizeof(formatted_keys[0]);
|
| - for (size_t i = 0; i < kSwitchesMaxCount; ++i) {
|
| - // Name the keys using 1-based indexing.
|
| - int n = base::snprintf(
|
| - formatted_keys[i], formatted_key_len, kSwitch, i + 1);
|
| - DCHECK_GT(n, 0);
|
| - base::debug::CrashKey crash_key = { formatted_keys[i], kSmallSize };
|
| - keys.push_back(crash_key);
|
| - }
|
| - }
|
| + crash_keys::GetCrashKeysForCommandLineSwitches(&keys);
|
|
|
| // Register the extension IDs.
|
| {
|
| @@ -268,43 +247,8 @@ static bool IsBoringSwitch(const std::string& flag) {
|
| return false;
|
| }
|
|
|
| -void SetSwitchesFromCommandLine(const base::CommandLine* command_line) {
|
| - DCHECK(command_line);
|
| - if (!command_line)
|
| - return;
|
| -
|
| - const base::CommandLine::StringVector& argv = command_line->argv();
|
| -
|
| - // Set the number of switches in case size > kNumSwitches.
|
| - base::debug::SetCrashKeyValue(kNumSwitches,
|
| - base::StringPrintf("%" PRIuS, argv.size() - 1));
|
| -
|
| - size_t key_i = 1; // Key names are 1-indexed.
|
| -
|
| - // Go through the argv, skipping the exec path.
|
| - for (size_t i = 1; i < argv.size(); ++i) {
|
| -#if defined(OS_WIN)
|
| - std::string switch_str = base::WideToUTF8(argv[i]);
|
| -#else
|
| - std::string switch_str = argv[i];
|
| -#endif
|
| -
|
| - // Skip uninteresting switches.
|
| - if (IsBoringSwitch(switch_str))
|
| - continue;
|
| -
|
| - // Stop if there are too many switches.
|
| - if (i > crash_keys::kSwitchesMaxCount)
|
| - break;
|
| -
|
| - std::string key = base::StringPrintf(kSwitch, key_i++);
|
| - base::debug::SetCrashKeyValue(key, switch_str);
|
| - }
|
| -
|
| - // Clear any remaining switches.
|
| - for (; key_i <= kSwitchesMaxCount; ++key_i) {
|
| - base::debug::ClearCrashKey(base::StringPrintf(kSwitch, key_i));
|
| - }
|
| +void SetCrashKeysFromCommandLine(const base::CommandLine& command_line) {
|
| + return SetSwitchesFromCommandLine(command_line, &IsBoringSwitch);
|
| }
|
|
|
| void SetActiveExtensions(const std::set<std::string>& extensions) {
|
|
|