Chromium Code Reviews| Index: chrome/browser/metrics/metrics_log.cc |
| diff --git a/chrome/browser/metrics/metrics_log.cc b/chrome/browser/metrics/metrics_log.cc |
| index b95c0e1249babbfac117b25a454ec327c5b82185..017e273e7de230cf7338df58d61248c1aaca4af1 100644 |
| --- a/chrome/browser/metrics/metrics_log.cc |
| +++ b/chrome/browser/metrics/metrics_log.cc |
| @@ -29,6 +29,7 @@ |
| #include "chrome/browser/autocomplete/autocomplete_result.h" |
| #include "chrome/browser/browser_process.h" |
| #include "chrome/browser/google/google_util.h" |
| +#include "chrome/browser/metrics/rappord.h" |
| #include "chrome/browser/omnibox/omnibox_log.h" |
| #include "chrome/browser/plugins/plugin_prefs.h" |
| #include "chrome/browser/profiles/profile_manager.h" |
| @@ -784,6 +785,10 @@ void MetricsLog::RecordEnvironmentProto( |
| GetFieldTrialIds(&field_trial_ids); |
| WriteFieldTrials(field_trial_ids, system_profile); |
| + std::string bloom_filter_bits; |
| + GetBloomFilterBits(&bloom_filter_bits); |
| + WriteBloomFilterBits(bloom_filter_bits, system_profile); |
| + |
| #if defined(OS_CHROMEOS) |
| PerfDataProto perf_data_proto; |
| if (perf_provider_.GetPerfData(&perf_data_proto)) |
| @@ -800,6 +805,35 @@ void MetricsLog::RecordEnvironmentProto( |
| #endif |
| } |
| +void MetricsLog::GetBloomFilterBits(std::string* bloom_filter_bits) { |
|
Steven Holte
2013/10/28 21:02:44
This should probably be split into 4 parts:
A fun
Ilya Sherman
2013/10/29 00:32:31
If you're intending to provide something of a para
|
| + PrefService* pref_service = GetPrefService(); |
| + |
| + typedef RappordBloomFilter<128, 4, -4, 2, -4> rappord_t; |
| + rappord_t rap(1, pref_service->GetString(prefs::kMetricsSecretClientID)); |
| + |
| + // std::string homepageurl = pref_service->GetString(prefs::kHomePage); |
| + std::string homepageurl = "http://www.google.com/foo?bar"; |
| + std::vector<std::string> strs; |
| + GURL gurl(homepageurl); |
| + |
| + strs.push_back(homepageurl); |
| + strs.push_back(gurl.spec()); |
| + strs.push_back(gurl.host()); |
| + // TODO(holte) break up host more |
| + strs.push_back(gurl.query()); |
| + strs.push_back(gurl.path()); |
| + // strs.push_back(gurl.ref()); |
| + |
| + const rappord_t::bitmap_t bits = rap.get(strs); |
| + *bloom_filter_bits = bits.to_string(); |
| +} |
| + |
| +void MetricsLog::WriteBloomFilterBits( |
| + const std::string& bloom_filter_bits, |
| + SystemProfileProto* system_profile) { |
| + system_profile->set_bloom_filter_bits(bloom_filter_bits); |
| +} |
| + |
| void MetricsLog::RecordProfilerData( |
| const tracked_objects::ProcessDataSnapshot& process_data, |
| int process_type) { |