OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 //------------------------------------------------------------------------------ | 5 //------------------------------------------------------------------------------ |
6 // Description of the life cycle of a instance of MetricsService. | 6 // Description of the life cycle of a instance of MetricsService. |
7 // | 7 // |
8 // OVERVIEW | 8 // OVERVIEW |
9 // | 9 // |
10 // A MetricsService instance is typically created at application startup. It is | 10 // A MetricsService instance is typically created at application startup. It is |
(...skipping 1445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1456 | 1456 |
1457 std::string log_text = log_manager_.staged_log_text(); | 1457 std::string log_text = log_manager_.staged_log_text(); |
1458 std::string compressed_log_text; | 1458 std::string compressed_log_text; |
1459 bool compression_successful = chrome::GzipCompress(log_text, | 1459 bool compression_successful = chrome::GzipCompress(log_text, |
1460 &compressed_log_text); | 1460 &compressed_log_text); |
1461 DCHECK(compression_successful); | 1461 DCHECK(compression_successful); |
1462 if (compression_successful) { | 1462 if (compression_successful) { |
1463 current_fetch_->SetUploadData(kMimeType, compressed_log_text); | 1463 current_fetch_->SetUploadData(kMimeType, compressed_log_text); |
1464 // Tell the server that we're uploading gzipped protobufs. | 1464 // Tell the server that we're uploading gzipped protobufs. |
1465 current_fetch_->SetExtraRequestHeaders("content-encoding: gzip"); | 1465 current_fetch_->SetExtraRequestHeaders("content-encoding: gzip"); |
| 1466 const std::string hash = |
| 1467 base::HexEncode(log_manager_.staged_log_hash().data(), |
| 1468 log_manager_.staged_log_hash().size()); |
| 1469 DCHECK(!hash.empty()); |
| 1470 current_fetch_->AddExtraRequestHeader("X-Chrome-UMA-Log-SHA1: " + hash); |
1466 UMA_HISTOGRAM_PERCENTAGE( | 1471 UMA_HISTOGRAM_PERCENTAGE( |
1467 "UMA.ProtoCompressionRatio", | 1472 "UMA.ProtoCompressionRatio", |
1468 100 * compressed_log_text.size() / log_text.size()); | 1473 100 * compressed_log_text.size() / log_text.size()); |
1469 UMA_HISTOGRAM_CUSTOM_COUNTS( | 1474 UMA_HISTOGRAM_CUSTOM_COUNTS( |
1470 "UMA.ProtoGzippedKBSaved", | 1475 "UMA.ProtoGzippedKBSaved", |
1471 (log_text.size() - compressed_log_text.size()) / 1024, | 1476 (log_text.size() - compressed_log_text.size()) / 1024, |
1472 1, 2000, 50); | 1477 1, 2000, 50); |
1473 } | 1478 } |
1474 | 1479 |
1475 // We already drop cookies server-side, but we might as well strip them out | 1480 // We already drop cookies server-side, but we might as well strip them out |
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1813 if (local_state) { | 1818 if (local_state) { |
1814 const PrefService::Preference* uma_pref = | 1819 const PrefService::Preference* uma_pref = |
1815 local_state->FindPreference(prefs::kMetricsReportingEnabled); | 1820 local_state->FindPreference(prefs::kMetricsReportingEnabled); |
1816 if (uma_pref) { | 1821 if (uma_pref) { |
1817 bool success = uma_pref->GetValue()->GetAsBoolean(&result); | 1822 bool success = uma_pref->GetValue()->GetAsBoolean(&result); |
1818 DCHECK(success); | 1823 DCHECK(success); |
1819 } | 1824 } |
1820 } | 1825 } |
1821 return result; | 1826 return result; |
1822 } | 1827 } |
OLD | NEW |