| Index: chrome/browser/metrics/metrics_log_serializer.h
|
| diff --git a/chrome/browser/metrics/metrics_log_serializer.h b/chrome/browser/metrics/metrics_log_serializer.h
|
| index 69986b6b7d1a1fa7da1a3f270010efc1f886ee4c..9a1e630415015ac855101cc519c9a675da161096 100644
|
| --- a/chrome/browser/metrics/metrics_log_serializer.h
|
| +++ b/chrome/browser/metrics/metrics_log_serializer.h
|
| @@ -17,7 +17,7 @@ class ListValue;
|
| // Serializer for persisting metrics logs to prefs.
|
| class MetricsLogSerializer : public MetricsLogManager::LogSerializer {
|
| public:
|
| - // Used to produce a historgram that keeps track of the status of recalling
|
| + // Used to produce a histogram that keeps track of the status of recalling
|
| // persisted per logs.
|
| enum LogReadStatus {
|
| RECALL_SUCCESS, // We were able to correctly recall a persisted log.
|
| @@ -28,8 +28,9 @@ class MetricsLogSerializer : public MetricsLogManager::LogSerializer {
|
| LOG_STRING_CORRUPTION, // Failed to recover log string using GetAsString().
|
| CHECKSUM_CORRUPTION, // Failed to verify checksum.
|
| CHECKSUM_STRING_CORRUPTION, // Failed to recover checksum string using
|
| - // GetAsString().
|
| + // GetAsString().
|
| DECODE_FAIL, // Failed to decode log.
|
| + XML_PROTO_MISMATCH, // The XML and protobuf logs have inconsistent data.
|
| END_RECALL_STATUS // Number of bins to use to create the histogram.
|
| };
|
|
|
| @@ -37,23 +38,30 @@ class MetricsLogSerializer : public MetricsLogManager::LogSerializer {
|
| virtual ~MetricsLogSerializer();
|
|
|
| // Implementation of MetricsLogManager::LogSerializer
|
| - virtual void SerializeLogs(const std::vector<std::string>& logs,
|
| - MetricsLogManager::LogType log_type) OVERRIDE;
|
| - virtual void DeserializeLogs(MetricsLogManager::LogType log_type,
|
| - std::vector<std::string>* logs) OVERRIDE;
|
| + virtual void SerializeLogs(
|
| + const std::vector<MetricsLogManager::SerializedLog>& logs,
|
| + MetricsLogManager::LogType log_type) OVERRIDE;
|
| + virtual void DeserializeLogs(
|
| + MetricsLogManager::LogType log_type,
|
| + std::vector<MetricsLogManager::SerializedLog>* logs) OVERRIDE;
|
|
|
| private:
|
| // Encodes the textual log data from |local_list| and writes it to the given
|
| - // pref list, along with list size and checksum.
|
| - static void WriteLogsToPrefList(const std::vector<std::string>& local_list,
|
| - const size_t kMaxLocalListSize,
|
| - base::ListValue* list);
|
| + // pref list, along with list size and checksum. If |is_xml| is true, writes
|
| + // the XML data from |local_list|; otherwise writes the protobuf data.
|
| + static void WriteLogsToPrefList(
|
| + const std::vector<MetricsLogManager::SerializedLog>& local_list,
|
| + bool is_xml,
|
| + size_t max_list_size,
|
| + base::ListValue* list);
|
|
|
| // Decodes and verifies the textual log data from |list|, populating
|
| - // |local_list| and returning a status code.
|
| + // |local_list| and returning a status code. If |is_xml| is true, populates
|
| + // the XML data in |local_list|; otherwise populates the protobuf data.
|
| static LogReadStatus ReadLogsFromPrefList(
|
| const base::ListValue& list,
|
| - std::vector<std::string>* local_list);
|
| + bool is_xml,
|
| + std::vector<MetricsLogManager::SerializedLog>* local_list);
|
|
|
| FRIEND_TEST_ALL_PREFIXES(MetricsLogSerializerTest, EmptyLogList);
|
| FRIEND_TEST_ALL_PREFIXES(MetricsLogSerializerTest, SingleElementLogList);
|
|
|