Commit a1470464 authored by Jonathan Freed's avatar Jonathan Freed Committed by Commit Bot

Adding plumbing for ContentSuggestions.Feed.UserActions enums for turn on/off

for the feed.

Bug: 1123044
Change-Id: I7d0e11ddf0dd91efbc45889c38d41b80a1fef82e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2380745
Commit-Queue: Jonathan Freed <freedjm@chromium.org>
Auto-Submit: Jonathan Freed <freedjm@chromium.org>
Reviewed-by: default avatarCarlos Knippschild <carlosk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#803334}
parent 2f1423a3
......@@ -1057,6 +1057,9 @@ public class FeedStreamSurface implements SurfaceActionsHandler, FeedActionsHand
void reportDownloadAction(long nativeFeedStreamSurface, FeedStreamSurface caller);
void reportContextMenuOpened(long nativeFeedStreamSurface, FeedStreamSurface caller);
void reportManageInterestsAction(long nativeFeedStreamSurface, FeedStreamSurface caller);
// TODO(crbug.com/1123044): Call these from the front end.
void reportTurnOnAction(long nativeFeedStreamSurface, FeedStreamSurface caller);
void reportTurnOffAction(long nativeFeedStreamSurface, FeedStreamSurface caller);
// TODO(crbug.com/1111101): These actions aren't visible to the client, so these functions
// are never called.
......
......@@ -257,4 +257,14 @@ void FeedStreamSurface::ReportStreamScrollStart(
feed_stream_api_->ReportStreamScrollStart();
}
void FeedStreamSurface::ReportTurnOnAction(JNIEnv* env,
const JavaParamRef<jobject>& obj) {
feed_stream_api_->ReportTurnOnAction();
}
void FeedStreamSurface::ReportTurnOffAction(JNIEnv* env,
const JavaParamRef<jobject>& obj) {
feed_stream_api_->ReportTurnOffAction();
}
} // namespace feed
......@@ -111,6 +111,10 @@ class FeedStreamSurface : public FeedStreamApi::SurfaceInterface {
int distance_dp);
void ReportStreamScrollStart(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
void ReportTurnOnAction(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
void ReportTurnOffAction(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
private:
base::android::ScopedJavaGlobalRef<jobject> java_ref_;
......
......@@ -709,5 +709,11 @@ void FeedStream::ReportStreamScrolled(int distance_dp) {
void FeedStream::ReportStreamScrollStart() {
metrics_reporter_->StreamScrollStart();
}
void FeedStream::ReportTurnOnAction() {
metrics_reporter_->TurnOnAction();
}
void FeedStream::ReportTurnOffAction() {
metrics_reporter_->TurnOffAction();
}
} // namespace feed
......@@ -163,6 +163,8 @@ class FeedStream : public FeedStreamApi,
void ReportContextMenuOpened() override;
void ReportStreamScrolled(int distance_dp) override;
void ReportStreamScrollStart() override;
void ReportTurnOnAction() override;
void ReportTurnOffAction() override;
// offline_pages::TaskQueue::Delegate.
void OnTaskQueueIsIdle() override;
......
......@@ -249,6 +249,14 @@ void MetricsReporter::LearnMoreAction() {
RecordInteraction();
}
void MetricsReporter::TurnOnAction() {
ReportUserActionHistogram(FeedUserActionType::kTappedTurnOn);
}
void MetricsReporter::TurnOffAction() {
ReportUserActionHistogram(FeedUserActionType::kTappedTurnOff);
}
void MetricsReporter::NavigationStarted() {
// TODO(harringtond): Use this or remove it.
}
......
......@@ -50,7 +50,9 @@ enum class FeedUserActionType {
kTappedOpenInNewIncognitoTab = 11,
kEphemeralChange = 12,
kEphemeralChangeRejected = 13,
kMaxValue = kEphemeralChangeRejected,
kTappedTurnOn = 14,
kTappedTurnOff = 15,
kMaxValue = kTappedTurnOff,
};
} // namespace internal
......@@ -84,6 +86,8 @@ class MetricsReporter {
void ContextMenuOpened();
void EphemeralStreamChange();
void EphemeralStreamChangeRejected();
void TurnOnAction();
void TurnOffAction();
// Indicates the user scrolled the feed by |distance_dp| and then stopped
// scrolling.
......
......@@ -534,4 +534,16 @@ TEST_F(MetricsReporterTest, TimeSpentInFeedTracksWholeScrollTime) {
base::TimeDelta::FromSeconds(3), 1);
}
TEST_F(MetricsReporterTest, TurnOnAction) {
reporter_->TurnOnAction();
histogram_.ExpectUniqueSample("ContentSuggestions.Feed.UserActions",
FeedUserActionType::kTappedTurnOn, 1);
}
TEST_F(MetricsReporterTest, TurnOffAction) {
reporter_->TurnOffAction();
histogram_.ExpectUniqueSample("ContentSuggestions.Feed.UserActions",
FeedUserActionType::kTappedTurnOff, 1);
}
} // namespace feed
......@@ -148,6 +148,10 @@ class FeedStreamApi {
// The user started scrolling the feed. Typically followed by a call to
// |ReportStreamScrolled()|.
virtual void ReportStreamScrollStart() = 0;
// The user selected the 'Turn on' option in the control menu.
virtual void ReportTurnOnAction() = 0;
// The user selected the 'Turn off' option in the control menu.
virtual void ReportTurnOffAction() = 0;
// The following methods are used for the internals page.
......
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