Commit 8e3d81ca authored by Becca Hughes's avatar Becca Hughes Committed by Commit Bot

[Media Feeds] Add Media.Feed.Discover UKM event

Add a Media.Feed.Discover UKM event that is recorded
when we discover a new Media Feed. This is to track
usage of the feature.

BUG=1065014

Change-Id: If0fb31dcf597cc51716c1397904412f199c09524
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2122368
Commit-Queue: Becca Hughes <beccahughes@chromium.org>
Reviewed-by: default avatarBryan McQuade <bmcquade@chromium.org>
Reviewed-by: default avatarBrian White <bcwhite@chromium.org>
Cr-Commit-Position: refs/heads/master@{#763486}
parent 6e5d6b22
......@@ -21,12 +21,14 @@
#include "chrome/browser/ui/browser.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
#include "components/ukm/test_ukm_recorder.h"
#include "content/public/test/frame_load_waiter.h"
#include "content/public/test/test_utils.h"
#include "media/base/media_switches.h"
#include "net/dns/mock_host_resolver.h"
#include "net/test/embedded_test_server/http_request.h"
#include "net/test/embedded_test_server/http_response.h"
#include "services/metrics/public/cpp/ukm_builders.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace media_feeds {
......@@ -292,6 +294,8 @@ INSTANTIATE_TEST_SUITE_P(
false}));
IN_PROC_BROWSER_TEST_P(MediaFeedsDiscoveryBrowserTest, Discover) {
ukm::TestAutoSetUkmRecorder ukm_recorder;
DiscoverFeed();
// Check we discovered the feed.
......@@ -300,6 +304,19 @@ IN_PROC_BROWSER_TEST_P(MediaFeedsDiscoveryBrowserTest, Discover) {
if (GetParam().discovered)
expected_urls.insert(GetServer()->GetURL("/test"));
EXPECT_EQ(expected_urls, GetDiscoveredFeedURLs());
// Check that we did/didn't record this to UKM.
using Entry = ukm::builders::Media_Feed_Discover;
auto entries = ukm_recorder.GetEntriesByName(Entry::kEntryName);
if (GetParam().discovered) {
EXPECT_EQ(1u, entries.size());
ukm_recorder.ExpectEntrySourceHasUrl(
entries[0], GetServer()->GetURL(kMediaFeedsTestURL));
ukm_recorder.ExpectEntryMetric(entries[0], Entry::kHasMediaFeedName, 1);
} else {
EXPECT_TRUE(entries.empty());
}
}
} // namespace media_feeds
......@@ -12,6 +12,9 @@
#include "content/public/browser/navigation_handle.h"
#include "content/public/browser/render_frame_host.h"
#include "mojo/public/cpp/bindings/associated_remote.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/blink/public/common/associated_interfaces/associated_interface_provider.h"
#include "url/origin.h"
......@@ -70,6 +73,15 @@ void MediaFeedsContentsObserver::DidFindMediaFeed(
CHECK(url->SchemeIsCryptographic());
service->DiscoverMediaFeed(*url);
ukm::UkmRecorder* ukm_recorder = ukm::UkmRecorder::Get();
if (!ukm_recorder)
return;
ukm::builders::Media_Feed_Discover(
web_contents()->GetMainFrame()->GetPageUkmSourceId())
.SetHasMediaFeed(true)
.Record(ukm_recorder);
}
if (test_closure_)
......
......@@ -5652,6 +5652,21 @@ be describing additional metrics about the same event.
<metric name="Length"/>
</event>
<event name="Media.Feed.Discover">
<owner>beccahughes@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Media Feeds are out of band feeds of media recommendations that are fetched
by the browser. This records when we discover a feed that has been placed in
a meta tag on a website.
</summary>
<metric name="HasMediaFeed">
<summary>
Whether the site has a media feed.
</summary>
</metric>
</event>
<event name="Media.GlobalMediaControls.ActionButtonPressed">
<owner>steimel@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
......
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