Commit ac8df9c9 authored by Salvador Guerrero's avatar Salvador Guerrero Committed by Commit Bot

Added antivirus metrics to background tracing provider

This CL updates the background tracing metrics provider to include
antivirus data on uploaded traces, this only applies to windows traces.

Bug: 1126192
Change-Id: I909bf8dbe7fe12514d707b9006dcf295f2d5a4fe
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2532902
Commit-Queue: Salvador Guerrero <salg@google.com>
Reviewed-by: default avatarEric Seckler <eseckler@chromium.org>
Cr-Commit-Position: refs/heads/master@{#827389}
parent caaa132d
......@@ -4,6 +4,7 @@
#include "chrome/browser/tracing/background_tracing_metrics_provider.h"
#include <memory>
#include <utility>
#include "base/strings/string_piece.h"
......@@ -15,13 +16,24 @@
namespace tracing {
BackgroundTracingMetricsProvider::BackgroundTracingMetricsProvider() {}
BackgroundTracingMetricsProvider::BackgroundTracingMetricsProvider() {
#if defined(OS_WIN)
av_metrics_provider_ = std::make_unique<AntiVirusMetricsProvider>();
#endif // defined(OS_WIN)
}
BackgroundTracingMetricsProvider::~BackgroundTracingMetricsProvider() {}
void BackgroundTracingMetricsProvider::Init() {
// TODO(ssid): SetupBackgroundTracingFieldTrial() should be called here.
}
#if defined(OS_WIN)
void BackgroundTracingMetricsProvider::AsyncInit(
base::OnceClosure done_callback) {
av_metrics_provider_->AsyncInit(std::move(done_callback));
}
#endif // defined(OS_WIN)
bool BackgroundTracingMetricsProvider::HasIndependentMetrics() {
return content::BackgroundTracingManager::GetInstance()->HasTraceToUpload();
}
......@@ -44,6 +56,13 @@ void BackgroundTracingMetricsProvider::ProvideIndependentMetrics(
variations::FieldTrialsProvider provider(nullptr, base::StringPiece());
provider.ProvideSystemProfileMetricsWithLogCreationTime(
base::TimeTicks(), uma_proto->mutable_system_profile());
#if defined(OS_WIN)
// AV metrics provider is initialized asynchronously. It might not be
// initialized at this point, in which case it'll just not add any AV metrics
// to the proto.
av_metrics_provider_->ProvideSystemProfileMetricsWithLogCreationTime(
base::TimeTicks(), uma_proto->mutable_system_profile());
#endif // defined(OS_WIN)
std::move(done_callback).Run(true);
}
......
......@@ -5,8 +5,15 @@
#ifndef CHROME_BROWSER_TRACING_BACKGROUND_TRACING_METRICS_PROVIDER_H_
#define CHROME_BROWSER_TRACING_BACKGROUND_TRACING_METRICS_PROVIDER_H_
#include <memory>
#include "build/build_config.h"
#include "components/metrics/metrics_provider.h"
#if defined(OS_WIN)
#include "chrome/browser/metrics/antivirus_metrics_provider_win.h"
#endif // defined(OS_WIN)
namespace tracing {
// Provides trace log metrics collected using BackgroundTracingManager to UMA
......@@ -25,6 +32,9 @@ class BackgroundTracingMetricsProvider : public metrics::MetricsProvider {
// metrics::MetricsProvider:
void Init() override;
#if defined(OS_WIN)
void AsyncInit(base::OnceClosure done_callback) override;
#endif // defined(OS_WIN)
bool HasIndependentMetrics() override;
void ProvideIndependentMetrics(
base::OnceCallback<void(bool)> done_callback,
......@@ -32,6 +42,9 @@ class BackgroundTracingMetricsProvider : public metrics::MetricsProvider {
base::HistogramSnapshotManager* snapshot_manager) override;
private:
#if defined(OS_WIN)
std::unique_ptr<AntiVirusMetricsProvider> av_metrics_provider_;
#endif // defined(OS_WIN)
DISALLOW_COPY_AND_ASSIGN(BackgroundTracingMetricsProvider);
};
......
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