diff options
author | shess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-11 00:37:59 +0000 |
---|---|---|
committer | shess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-11 00:37:59 +0000 |
commit | 77bf9602e04a630c2590204d2317e5e6fd7ffefd (patch) | |
tree | 642ae29fbb42699c1f5e19bc7ef5eaee7a97690c /chrome/common/child_process_logging_mac.mm | |
parent | 1ccc44a66196d4b910498fcc7cf9cb414c432ba5 (diff) | |
download | chromium_src-77bf9602e04a630c2590204d2317e5e6fd7ffefd.zip chromium_src-77bf9602e04a630c2590204d2317e5e6fd7ffefd.tar.gz chromium_src-77bf9602e04a630c2590204d2317e5e6fd7ffefd.tar.bz2 |
[Mac] Log extensions loaded with crash dumps.
Replacing the TODO(port) to log extension-N for the extensions
associated with a dump.
CL which landed TODO(port): http://codereview.chromium.org/457028
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/4645005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65743 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/child_process_logging_mac.mm')
-rw-r--r-- | chrome/common/child_process_logging_mac.mm | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/chrome/common/child_process_logging_mac.mm b/chrome/common/child_process_logging_mac.mm index a61202c..ca12d1c 100644 --- a/chrome/common/child_process_logging_mac.mm +++ b/chrome/common/child_process_logging_mac.mm @@ -26,6 +26,8 @@ const char *kGPUPixelShaderVersionParamName = "gpu-psver"; const char *kGPUVertexShaderVersionParamName = "gpu-vsver"; const char *kGPUGLVersionParamName = "gpu-glver"; const char *kNumberOfViews = "num-views"; +NSString* const kNumExtensionsName = @"num-extensions"; +NSString* const kExtensionNameFormat = @"extension-%d"; static SetCrashKeyValueFuncPtr g_set_key_func; static ClearCrashKeyValueFuncPtr g_clear_key_func; @@ -112,7 +114,25 @@ std::string GetClientId() { } void SetActiveExtensions(const std::set<std::string>& extension_ids) { - // TODO(port) + if (!g_set_key_func) + return; + + // Log the count separately to track heavy users. + const int count = static_cast<int>(extension_ids.size()); + g_set_key_func(kNumExtensionsName, [NSString stringWithFormat:@"%i", count]); + + // Record up to |kMaxReportedActiveExtensions| extensions, clearing + // keys if there aren't that many. + std::set<std::string>::const_iterator iter = extension_ids.begin(); + for (int i = 0; i < kMaxReportedActiveExtensions; ++i) { + NSString* key = [NSString stringWithFormat:kExtensionNameFormat, i]; + if (iter != extension_ids.end()) { + g_set_key_func(key, [NSString stringWithUTF8String:iter->c_str()]); + ++iter; + } else { + g_clear_key_func(key); + } + } } void SetGpuKeyValue(const char* param_name, const std::string& value_str, |