Commit 9e856463 authored by Dan Harrington's avatar Dan Harrington Committed by Commit Bot

Record UMA for NoticeCardFulfilled

Bug: b/162435720
Change-Id: If23e4026e65ea28c6f78c7064dc05bb6c7cfcf86
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2354417
Commit-Queue: Dan H <harringtond@chromium.org>
Reviewed-by: default avatarIan Wells <iwells@chromium.org>
Cr-Commit-Position: refs/heads/master@{#798269}
parent b179b125
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h" #include "base/strings/string_util.h"
#include "base/test/bind_test_util.h" #include "base/test/bind_test_util.h"
#include "base/test/metrics/histogram_tester.h"
#include "base/test/scoped_run_loop_timeout.h" #include "base/test/scoped_run_loop_timeout.h"
#include "base/test/simple_test_clock.h" #include "base/test/simple_test_clock.h"
#include "base/test/simple_test_tick_clock.h" #include "base/test/simple_test_tick_clock.h"
...@@ -35,6 +36,7 @@ ...@@ -35,6 +36,7 @@
#include "components/feed/core/v2/feed_network.h" #include "components/feed/core/v2/feed_network.h"
#include "components/feed/core/v2/image_fetcher.h" #include "components/feed/core/v2/image_fetcher.h"
#include "components/feed/core/v2/metrics_reporter.h" #include "components/feed/core/v2/metrics_reporter.h"
#include "components/feed/core/v2/prefs.h"
#include "components/feed/core/v2/protocol_translator.h" #include "components/feed/core/v2/protocol_translator.h"
#include "components/feed/core/v2/refresh_task_scheduler.h" #include "components/feed/core/v2/refresh_task_scheduler.h"
#include "components/feed/core/v2/scheduling.h" #include "components/feed/core/v2/scheduling.h"
...@@ -1396,11 +1398,22 @@ TEST_F(FeedStreamTest, LoadMoreBeforeLoad) { ...@@ -1396,11 +1398,22 @@ TEST_F(FeedStreamTest, LoadMoreBeforeLoad) {
} }
TEST_F(FeedStreamTest, ReadNetworkResponse) { TEST_F(FeedStreamTest, ReadNetworkResponse) {
base::HistogramTester histograms;
network_.InjectRealResponse(); network_.InjectRealResponse();
TestSurface surface(stream_.get()); TestSurface surface(stream_.get());
WaitForIdleTaskQueue(); WaitForIdleTaskQueue();
ASSERT_EQ("loading -> 10 slices", surface.DescribeUpdates()); ASSERT_EQ("loading -> 10 slices", surface.DescribeUpdates());
// Verify we're processing some of the data on the request.
// The response has a privacy_notice_fulfilled=true.
histograms.ExpectUniqueSample("ContentSuggestions.Feed.NoticeCardFulfilled",
1, 1);
// A request schedule with two entries was in the response.
RequestSchedule schedule = prefs::GetRequestSchedule(profile_prefs_);
EXPECT_EQ(std::vector<base::TimeDelta>({}), schedule.refresh_offsets);
} }
TEST_F(FeedStreamTest, ClearAllAfterLoadResultsInRefresh) { TEST_F(FeedStreamTest, ClearAllAfterLoadResultsInRefresh) {
......
...@@ -453,6 +453,11 @@ void MetricsReporter::OnUploadActions(UploadActionsStatus status) { ...@@ -453,6 +453,11 @@ void MetricsReporter::OnUploadActions(UploadActionsStatus status) {
status); status);
} }
void MetricsReporter::NoticeCardFulfilled(bool response_has_notice_card) {
base::UmaHistogramBoolean("ContentSuggestions.Feed.NoticeCardFulfilled",
response_has_notice_card);
}
void MetricsReporter::SurfaceReceivedContent(SurfaceId surface_id) { void MetricsReporter::SurfaceReceivedContent(SurfaceId surface_id) {
ReportGetMoreIfNeeded(surface_id, true); ReportGetMoreIfNeeded(surface_id, true);
} }
......
...@@ -116,6 +116,8 @@ class MetricsReporter { ...@@ -116,6 +116,8 @@ class MetricsReporter {
static void OnUploadActionsBatch(UploadActionsBatchStatus status); static void OnUploadActionsBatch(UploadActionsBatchStatus status);
static void OnUploadActions(UploadActionsStatus status); static void OnUploadActions(UploadActionsStatus status);
static void NoticeCardFulfilled(bool response_has_notice_card);
private: private:
base::WeakPtr<MetricsReporter> GetWeakPtr() { base::WeakPtr<MetricsReporter> GetWeakPtr() {
return weak_ptr_factory_.GetWeakPtr(); return weak_ptr_factory_.GetWeakPtr();
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "components/feed/core/proto/v2/wire/request.pb.h" #include "components/feed/core/proto/v2/wire/request.pb.h"
#include "components/feed/core/v2/feed_network.h" #include "components/feed/core/v2/feed_network.h"
#include "components/feed/core/v2/feed_stream.h" #include "components/feed/core/v2/feed_stream.h"
#include "components/feed/core/v2/metrics_reporter.h"
#include "components/feed/core/v2/proto_util.h" #include "components/feed/core/v2/proto_util.h"
#include "components/feed/core/v2/protocol_translator.h" #include "components/feed/core/v2/protocol_translator.h"
#include "components/feed/core/v2/stream_model.h" #include "components/feed/core/v2/stream_model.h"
...@@ -152,6 +153,11 @@ void LoadStreamTask::QueryRequestComplete( ...@@ -152,6 +153,11 @@ void LoadStreamTask::QueryRequestComplete(
if (!response_data.model_update_request) if (!response_data.model_update_request)
return Done(LoadStreamStatus::kProtoTranslationFailed); return Done(LoadStreamStatus::kProtoTranslationFailed);
MetricsReporter::NoticeCardFulfilled(result.response_body->feed_response()
.feed_response_metadata()
.chrome_feed_response_metadata()
.privacy_notice_fulfilled());
loaded_new_content_from_network_ = true; loaded_new_content_from_network_ = true;
stream_->GetStore()->OverwriteStream( stream_->GetStore()->OverwriteStream(
std::make_unique<StreamModelUpdateRequest>( std::make_unique<StreamModelUpdateRequest>(
......
...@@ -466,11 +466,17 @@ feed_response { ...@@ -466,11 +466,17 @@ feed_response {
seconds: 86308 seconds: 86308
nanos: 822963644 nanos: 822963644
} }
refresh_time_from_response_time {
seconds: 120000
}
} }
} }
} }
feed_response_metadata { feed_response_metadata {
response_time_ms: 1587056924 #response_time_ms: 1587056924
chrome_feed_response_metadata {
privacy_notice_fulfilled: true
}
} }
} }
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