summaryrefslogtreecommitdiffstats
path: root/chrome/common/child_process_logging_mac.mm
diff options
context:
space:
mode:
authorshess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-11 00:37:59 +0000
committershess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-11 00:37:59 +0000
commit77bf9602e04a630c2590204d2317e5e6fd7ffefd (patch)
tree642ae29fbb42699c1f5e19bc7ef5eaee7a97690c /chrome/common/child_process_logging_mac.mm
parent1ccc44a66196d4b910498fcc7cf9cb414c432ba5 (diff)
downloadchromium_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.mm22
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,