Commit ee699dac authored by Kunihiko Sakamoto's avatar Kunihiko Sakamoto Committed by Commit Bot

Revert "Replace GzipUncompress calls with DecodeLogDataToProto."

This reverts commit 2a696ae3.

Reason for revert: UkmServiceTest.PurgeExtensionDataFromUnsentLogStore is failing on multiple bots.

https://ci.chromium.org/p/chromium/builders/ci/Linux%20Tests/91144
https://ci.chromium.org/p/chromium/builders/ci/Mac10.10%20Tests/54863
https://ci.chromium.org/p/chromium/builders/ci/Win%207%20Tests%20x64%20%281%29/67556


Original change's description:
> Replace GzipUncompress calls with DecodeLogDataToProto.
> 
> Also, remove "ukm::", where applicable, from ukm_service_unittest.cc
> 
> Bug: 1086910
> 
> Change-Id: Iae43996b9dba9bceef834d85e3d795f7c7a7fbc3
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2222521
> Reviewed-by: Tommy Nyquist <nyquist@chromium.org>
> Reviewed-by: Steven Holte <holte@chromium.org>
> Commit-Queue: Caitlin Fischer <caitlinfischer@google.com>
> Cr-Commit-Position: refs/heads/master@{#777137}

TBR=nyquist@chromium.org,holte@chromium.org,caitlinfischer@google.com

Change-Id: I74f0e2bf69da1ea741530bbcfd15bf2ffa80d97b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1086910
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2239436Reviewed-by: default avatarKunihiko Sakamoto <ksakamoto@chromium.org>
Commit-Queue: Kunihiko Sakamoto <ksakamoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#777193}
parent 4a89e196
......@@ -21,9 +21,3 @@ include_rules = [
"-net",
"+url"
]
specific_include_rules = {
"log_decoder\.cc": [
"+third_party/protobuf/src/google/protobuf",
],
}
......@@ -4,7 +4,6 @@
#include "components/metrics/log_decoder.h"
#include "third_party/protobuf/src/google/protobuf/message_lite.h"
#include "third_party/zlib/google/compression_utils.h"
namespace metrics {
......@@ -15,12 +14,12 @@ bool DecodeLogData(const std::string& compressed_log_data,
}
bool DecodeLogDataToProto(const std::string& compressed_log_data,
google::protobuf::MessageLite* proto) {
ChromeUserMetricsExtension* uma_proto) {
std::string log_data;
if (!DecodeLogData(compressed_log_data, &log_data))
return false;
return proto->ParseFromString(log_data);
return uma_proto->ParseFromString(log_data);
}
} // namespace metrics
......@@ -7,13 +7,7 @@
#include <string>
namespace google {
namespace protobuf {
class MessageLite;
} // namespace protobuf
} // namespace google
#include "third_party/metrics_proto/chrome_user_metrics_extension.pb.h"
namespace metrics {
......@@ -24,10 +18,10 @@ namespace metrics {
bool DecodeLogData(const std::string& compressed_log_data,
std::string* log_data);
// Decodes |compressed_log_data| and populates |proto| with the decompressed log
// data. Returns true on success and false on failure.
// Decodes |compressed_log_data| and populates |uma_proto| with the decompressed
// log data. Returns true on success and false on failure.
bool DecodeLogDataToProto(const std::string& compressed_log_data,
google::protobuf::MessageLite* proto);
ChromeUserMetricsExtension* uma_proto);
} // namespace metrics
......
......@@ -7,12 +7,12 @@
#include "base/strings/stringprintf.h"
#include "base/time/default_clock.h"
#include "base/time/default_tick_clock.h"
#include "components/metrics/log_decoder.h"
#include "components/sync/base/pref_names.h"
#include "components/sync/base/user_demographics.h"
#include "components/sync/engine_impl/loopback_server/persistent_unique_client_entity.h"
#include "components/sync/protocol/sync.pb.h"
#include "third_party/metrics_proto/chrome_user_metrics_extension.pb.h"
#include "third_party/zlib/google/compression_utils.h"
namespace metrics {
namespace test {
......@@ -94,11 +94,18 @@ bool HasUnsentLogs(MetricsService* metrics_service) {
// Returns an UMA log if the MetricsService has a staged log.
std::unique_ptr<ChromeUserMetricsExtension> GetLastUmaLog(
MetricsService* metrics_service) {
// Decompress and deserialize the staged log.
// Decompress the staged log.
std::string uncompressed_log;
if (!compression::GzipUncompress(
metrics_service->LogStoreForTest()->staged_log(),
&uncompressed_log)) {
return nullptr;
}
// Deserialize and return the log.
std::unique_ptr<ChromeUserMetricsExtension> log =
std::make_unique<ChromeUserMetricsExtension>();
if (!DecodeLogDataToProto(metrics_service->LogStoreForTest()->staged_log(),
log.get())) {
if (!log->ParseFromString(uncompressed_log)) {
return nullptr;
}
return log;
......
......@@ -107,6 +107,7 @@ source_set("unit_tests") {
"//net:test_support",
"//services/metrics/public/cpp:ukm_builders",
"//testing/gtest",
"//third_party/zlib/google:compression_utils",
"//url",
]
}
......@@ -133,5 +134,6 @@ static_library("ukm_test_helper") {
"//components/metrics",
"//services/metrics/public/cpp:metrics_cpp",
"//third_party/metrics_proto",
"//third_party/zlib/google:compression_utils",
]
}
......@@ -17,7 +17,6 @@
#include "base/rand_util.h"
#include "base/threading/sequenced_task_runner_handle.h"
#include "base/time/time.h"
#include "components/metrics/log_decoder.h"
#include "components/metrics/metrics_log.h"
#include "components/metrics/metrics_service_client.h"
#include "components/metrics/ukm_demographic_metrics_provider.h"
......@@ -29,6 +28,7 @@
#include "services/metrics/public/cpp/delegating_ukm_recorder.h"
#include "third_party/metrics_proto/ukm/report.pb.h"
#include "third_party/metrics_proto/user_demographics.pb.h"
#include "third_party/zlib/google/compression_utils.h"
namespace ukm {
......@@ -108,9 +108,17 @@ void PurgeExtensionDataFromUnsentLogStore(
metrics::UnsentLogStore* ukm_log_store) {
for (size_t index = 0; index < ukm_log_store->size(); index++) {
// Uncompress log data from store back into a Report.
const std::string& compressed_log_data =
ukm_log_store->GetLogAtIndex(index);
std::string uncompressed_log_data;
const bool uncompress_successful = compression::GzipUncompress(
compressed_log_data, &uncompressed_log_data);
DCHECK(uncompress_successful);
Report report;
DCHECK(metrics::DecodeLogDataToProto(ukm_log_store->GetLogAtIndex(index),
&report));
const bool report_parse_successful =
report.ParseFromString(uncompressed_log_data);
DCHECK(report_parse_successful);
std::unordered_set<SourceId> extension_source_ids;
......
This diff is collapsed.
......@@ -10,8 +10,8 @@
#include "base/feature_list.h"
#include "base/run_loop.h"
#include "base/stl_util.h"
#include "components/metrics/log_decoder.h"
#include "components/metrics/unsent_log_store.h"
#include "third_party/zlib/google/compression_utils.h"
namespace ukm {
......@@ -51,8 +51,13 @@ std::unique_ptr<Report> UkmTestHelper::GetUkmReport() {
if (!log_store->has_staged_log())
return nullptr;
std::string uncompressed_log_data;
if (!compression::GzipUncompress(log_store->staged_log(),
&uncompressed_log_data))
return nullptr;
std::unique_ptr<ukm::Report> report = std::make_unique<ukm::Report>();
if (!metrics::DecodeLogDataToProto(log_store->staged_log(), report.get()))
if (!report->ParseFromString(uncompressed_log_data))
return nullptr;
return report;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment