Commit 30bd2101 authored by Steven Holte's avatar Steven Holte Committed by Commit Bot

Migrate MediaEngagementContentsObserver to generated UKM builder.

Change-Id: I4a0a05dec6b7b768250889199775d6bc8b951ef4
Reviewed-on: https://chromium-review.googlesource.com/580522
Commit-Queue: Steven Holte <holte@chromium.org>
Reviewed-by: default avatarSteven Holte <holte@chromium.org>
Reviewed-by: default avatarMounir Lamouri <mlamouri@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491168}
parent cbff1ee5
......@@ -12,6 +12,7 @@
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/associated_interface_provider.h"
#include "services/metrics/public/cpp/ukm_builders.h"
#include "services/metrics/public/cpp/ukm_entry_builder.h"
#include "services/metrics/public/cpp/ukm_recorder.h"
#include "third_party/WebKit/public/platform/media_engagement.mojom.h"
......@@ -44,24 +45,6 @@ const char* const
MediaEngagementContentsObserver::kHistogramScoreAtPlaybackName =
"Media.Engagement.ScoreAtPlayback";
const char* const MediaEngagementContentsObserver::kUkmEntryName =
"Media.Engagement.SessionFinished";
const char* const
MediaEngagementContentsObserver::kUkmMetricPlaybacksTotalName =
"Playbacks.Total";
const char* const MediaEngagementContentsObserver::kUkmMetricVisitsTotalName =
"Visits.Total";
const char* const
MediaEngagementContentsObserver::kUkmMetricEngagementScoreName =
"Engagement.Score";
const char* const
MediaEngagementContentsObserver::kUkmMetricPlaybacksDeltaName =
"Playbacks.Delta";
const char* const MediaEngagementContentsObserver::
kHistogramSignificantNotAddedFirstTimeName =
"Media.Engagement.SignificantPlayers.PlayerNotAdded.FirstTime";
......@@ -116,21 +99,13 @@ void MediaEngagementContentsObserver::RecordUkmMetrics() {
ukm::SourceId source_id = ukm_recorder->GetNewSourceID();
ukm_recorder->UpdateSourceURL(source_id, url);
std::unique_ptr<ukm::UkmEntryBuilder> builder = ukm_recorder->GetEntryBuilder(
source_id, MediaEngagementContentsObserver::kUkmEntryName);
MediaEngagementScore score = service_->CreateEngagementScore(url);
builder->AddMetric(
MediaEngagementContentsObserver::kUkmMetricPlaybacksTotalName,
score.media_playbacks());
builder->AddMetric(MediaEngagementContentsObserver::kUkmMetricVisitsTotalName,
score.visits());
builder->AddMetric(
MediaEngagementContentsObserver::kUkmMetricEngagementScoreName,
ConvertScoreToPercentage(score.GetTotalScore()));
builder->AddMetric(
MediaEngagementContentsObserver::kUkmMetricPlaybacksDeltaName,
significant_playback_recorded_);
ukm::builders::Media_Engagement_SessionFinished(source_id)
.SetPlaybacks_Total(score.media_playbacks())
.SetVisits_Total(score.visits())
.SetEngagement_Score(ConvertScoreToPercentage(score.GetTotalScore()))
.SetPlaybacks_Delta(significant_playback_recorded_)
.Record(ukm_recorder);
}
void MediaEngagementContentsObserver::DidFinishNavigation(
......
......@@ -159,12 +159,6 @@ class MediaEngagementContentsObserver : public content::WebContentsObserver {
// Record the score and change in score to UKM.
void RecordUkmMetrics();
static const char* const kUkmEntryName;
static const char* const kUkmMetricPlaybacksTotalName;
static const char* const kUkmMetricVisitsTotalName;
static const char* const kUkmMetricEngagementScoreName;
static const char* const kUkmMetricPlaybacksDeltaName;
bool is_visible_ = false;
bool significant_playback_recorded_ = false;
......
......@@ -19,6 +19,7 @@
#include "content/public/browser/navigation_handle.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/web_contents_tester.h"
#include "services/metrics/public/cpp/ukm_builders.h"
#include "testing/gtest/include/gtest/gtest.h"
class MediaEngagementContentsObserverTest
......@@ -164,38 +165,30 @@ class MediaEngagementContentsObserverTest
int visits_total,
int score,
int playbacks_delta) {
using Entry = ukm::builders::Media_Engagement_SessionFinished;
std::vector<std::pair<const char*, int64_t>> metrics = {
{MediaEngagementContentsObserver::kUkmMetricPlaybacksTotalName,
playbacks_total},
{MediaEngagementContentsObserver::kUkmMetricVisitsTotalName,
visits_total},
{MediaEngagementContentsObserver::kUkmMetricEngagementScoreName, score},
{MediaEngagementContentsObserver::kUkmMetricPlaybacksDeltaName,
playbacks_delta},
{Entry::kPlaybacks_TotalName, playbacks_total},
{Entry::kVisits_TotalName, visits_total},
{Entry::kEngagement_ScoreName, score},
{Entry::kPlaybacks_DeltaName, playbacks_delta},
};
const ukm::UkmSource* source =
test_ukm_recorder_.GetSourceForUrl(url.spec().c_str());
EXPECT_EQ(url, source->url());
EXPECT_EQ(1, test_ukm_recorder_.CountEntries(
*source, MediaEngagementContentsObserver::kUkmEntryName));
test_ukm_recorder_.ExpectMetric(
*source, MediaEngagementContentsObserver::kUkmEntryName,
MediaEngagementContentsObserver::kUkmMetricVisitsTotalName,
visits_total);
test_ukm_recorder_.ExpectMetric(
*source, MediaEngagementContentsObserver::kUkmEntryName,
MediaEngagementContentsObserver::kUkmMetricPlaybacksTotalName,
playbacks_total);
test_ukm_recorder_.ExpectMetric(
*source, MediaEngagementContentsObserver::kUkmEntryName,
MediaEngagementContentsObserver::kUkmMetricEngagementScoreName, score);
test_ukm_recorder_.ExpectMetric(
*source, MediaEngagementContentsObserver::kUkmEntryName,
MediaEngagementContentsObserver::kUkmMetricPlaybacksDeltaName,
playbacks_delta);
test_ukm_recorder_.ExpectEntry(
*source, MediaEngagementContentsObserver::kUkmEntryName, metrics);
EXPECT_EQ(1, test_ukm_recorder_.CountEntries(*source, Entry::kEntryName));
test_ukm_recorder_.ExpectMetric(*source, Entry::kEntryName,
Entry::kVisits_TotalName, visits_total);
test_ukm_recorder_.ExpectMetric(*source, Entry::kEntryName,
Entry::kPlaybacks_TotalName,
playbacks_total);
test_ukm_recorder_.ExpectMetric(*source, Entry::kEntryName,
Entry::kEngagement_ScoreName, score);
test_ukm_recorder_.ExpectMetric(*source, Entry::kEntryName,
Entry::kPlaybacks_DeltaName,
playbacks_delta);
test_ukm_recorder_.ExpectEntry(*source, Entry::kEntryName, metrics);
}
void ExpectNoUkmEntry() { EXPECT_FALSE(test_ukm_recorder_.sources_count()); }
......
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