metrics: Disable uploader on non-official build.
The metrics uploader should only be enabled on an official build.
BUG=chromium:459105
TEST=`FEATURES=test emerge-$BOARD metrics`
TEST=Verified that metrics uploader is disabled on a developer build.
Change-Id: I5cadb3afeb56c0adac971228aa48ad56ed913bbf
Reviewed-on: https://chromium-review.googlesource.com/250542
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
diff --git a/metrics/metrics_daemon.cc b/metrics/metrics_daemon.cc
index a746e06..4a69d8b 100644
--- a/metrics/metrics_daemon.cc
+++ b/metrics/metrics_daemon.cc
@@ -48,6 +48,10 @@
const char kCrashReporterMatchRule[] =
"type='signal',interface='%s',path='/',member='%s'";
+// Build type of an official build.
+// See src/third_party/chromiumos-overlay/chromeos/scripts/cros_set_lsb_release.
+const char kOfficialBuild[] = "Official Build";
+
const int kSecondsPerMinute = 60;
const int kMinutesPerHour = 60;
const int kHoursPerDay = 24;
@@ -209,6 +213,13 @@
return cached_version_hash;
}
+bool MetricsDaemon::IsOnOfficialBuild() const {
+ std::string build_type;
+ return (base::SysInfo::GetLsbReleaseValue("CHROMEOS_RELEASE_BUILD_TYPE",
+ &build_type) &&
+ build_type == kOfficialBuild);
+}
+
void MetricsDaemon::Init(bool testing,
bool uploader_active,
MetricsLibraryInterface* metrics_lib,
@@ -327,9 +338,14 @@
base::TimeDelta::FromMilliseconds(kUpdateStatsIntervalMs));
if (uploader_active_) {
- LOG(INFO) << "uploader enabled";
- upload_service_.reset(new UploadService(new SystemProfileCache(), server_));
- upload_service_->Init(upload_interval_, metrics_file_);
+ if (IsOnOfficialBuild()) {
+ LOG(INFO) << "uploader enabled";
+ upload_service_.reset(
+ new UploadService(new SystemProfileCache(), server_));
+ upload_service_->Init(upload_interval_, metrics_file_);
+ } else {
+ LOG(INFO) << "uploader disabled on non-official build";
+ }
}
return EX_OK;
diff --git a/metrics/metrics_daemon.h b/metrics/metrics_daemon.h
index 397fd21..d38dcd9 100644
--- a/metrics/metrics_daemon.h
+++ b/metrics/metrics_daemon.h
@@ -273,6 +273,9 @@
// to a unsigned 32-bit int.
uint32_t GetOsVersionHash();
+ // Returns true if the system is using an official build.
+ bool IsOnOfficialBuild() const;
+
// Updates stats, additionally sending them to UMA if enough time has elapsed
// since the last report.
void UpdateStats(base::TimeTicks now_ticks, base::Time now_wall_time);