Commit cabc6526 authored by Mounir Lamouri's avatar Mounir Lamouri Committed by Commit Bot

Media Controls: remove timeline related metrics.

They were not used anymore.

Bug: 1142522
Fixed: 1142522
Change-Id: I01bf92f378ce85fedb6f972782267d0fbcd57f5f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2498650Reviewed-by: default avatarIlya Sherman <isherman@chromium.org>
Reviewed-by: default avatarTommy Steimel <steimel@chromium.org>
Commit-Queue: Mounir Lamouri <mlamouri@chromium.org>
Cr-Commit-Position: refs/heads/master@{#821261}
parent 7c4ff65f
...@@ -71,8 +71,6 @@ blink_modules_sources("media_controls") { ...@@ -71,8 +71,6 @@ blink_modules_sources("media_controls") {
"elements/media_control_time_display_element.h", "elements/media_control_time_display_element.h",
"elements/media_control_timeline_element.cc", "elements/media_control_timeline_element.cc",
"elements/media_control_timeline_element.h", "elements/media_control_timeline_element.h",
"elements/media_control_timeline_metrics.cc",
"elements/media_control_timeline_metrics.h",
"elements/media_control_toggle_closed_captions_button_element.cc", "elements/media_control_toggle_closed_captions_button_element.cc",
"elements/media_control_toggle_closed_captions_button_element.h", "elements/media_control_toggle_closed_captions_button_element.h",
"elements/media_control_volume_control_container_element.cc", "elements/media_control_volume_control_container_element.cc",
......
...@@ -110,31 +110,19 @@ void MediaControlTimelineElement::DefaultEventHandler(Event& event) { ...@@ -110,31 +110,19 @@ void MediaControlTimelineElement::DefaultEventHandler(Event& event) {
Platform::Current()->RecordAction( Platform::Current()->RecordAction(
UserMetricsAction("Media.Controls.ScrubbingBegin")); UserMetricsAction("Media.Controls.ScrubbingBegin"));
GetMediaControls().BeginScrubbing(MediaControlsImpl::IsTouchEvent(&event)); GetMediaControls().BeginScrubbing(MediaControlsImpl::IsTouchEvent(&event));
Element* thumb = UserAgentShadowRoot()->getElementById(
shadow_element_names::kIdSliderThumb);
bool started_from_thumb = thumb && thumb == event.target()->ToNode();
metrics_.StartGesture(started_from_thumb);
} else if (EndScrubbingEvent(event)) { } else if (EndScrubbingEvent(event)) {
Platform::Current()->RecordAction( Platform::Current()->RecordAction(
UserMetricsAction("Media.Controls.ScrubbingEnd")); UserMetricsAction("Media.Controls.ScrubbingEnd"));
GetMediaControls().EndScrubbing(); GetMediaControls().EndScrubbing();
metrics_.RecordEndGesture(TrackWidth(), MediaElement().duration());
} }
if (event.type() == event_type_names::kFocus) if (event.type() == event_type_names::kFocus)
UpdateAria(); UpdateAria();
if (event.type() == event_type_names::kKeydown)
metrics_.StartKey();
auto* keyboard_event = DynamicTo<KeyboardEvent>(event);
if (event.type() == event_type_names::kKeyup && keyboard_event)
metrics_.RecordEndKey(TrackWidth(), keyboard_event->keyCode());
MediaControlInputElement::DefaultEventHandler(event); MediaControlInputElement::DefaultEventHandler(event);
if (IsA<MouseEvent>(event) || keyboard_event || IsA<GestureEvent>(event) || if (IsA<MouseEvent>(event) || IsA<KeyboardEvent>(event) ||
IsA<PointerEvent>(event)) { IsA<GestureEvent>(event) || IsA<PointerEvent>(event)) {
MaybeRecordInteracted(); MaybeRecordInteracted();
} }
...@@ -160,8 +148,6 @@ void MediaControlTimelineElement::DefaultEventHandler(Event& event) { ...@@ -160,8 +148,6 @@ void MediaControlTimelineElement::DefaultEventHandler(Event& event) {
if (time > duration) if (time > duration)
time = duration; time = duration;
metrics_.OnInput(MediaElement().currentTime(), time);
// FIXME: This will need to take the timeline offset into consideration // FIXME: This will need to take the timeline offset into consideration
// once that concept is supported, see https://crbug.com/312699 // once that concept is supported, see https://crbug.com/312699
if (MediaElement().seekable()->Contain(time)) if (MediaElement().seekable()->Contain(time))
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
#define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_ELEMENTS_MEDIA_CONTROL_TIMELINE_ELEMENT_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_ELEMENTS_MEDIA_CONTROL_TIMELINE_ELEMENT_H_
#include "third_party/blink/renderer/modules/media_controls/elements/media_control_slider_element.h" #include "third_party/blink/renderer/modules/media_controls/elements/media_control_slider_element.h"
#include "third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h"
#include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/modules/modules_export.h"
namespace blink { namespace blink {
...@@ -53,8 +52,6 @@ class MediaControlTimelineElement : public MediaControlSliderElement { ...@@ -53,8 +52,6 @@ class MediaControlTimelineElement : public MediaControlSliderElement {
void UpdateAria(); void UpdateAria();
MediaControlTimelineMetrics metrics_;
bool is_touching_ = false; bool is_touching_ = false;
bool controls_hidden_ = false; bool controls_hidden_ = false;
......
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_ELEMENTS_MEDIA_CONTROL_TIMELINE_METRICS_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_ELEMENTS_MEDIA_CONTROL_TIMELINE_METRICS_H_
#include "base/time/time.h"
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
namespace blink {
// Helpers for tracking and reporting media control timeline metrics to UMA.
class MediaControlTimelineMetrics {
DISALLOW_NEW();
public:
// Start tracking a pointer gesture. |fromThumb| indicates whether the user
// started dragging from the thumb, as opposed to pressing down their pointer
// on some other part of the timeline track (causing time to jump).
void StartGesture(bool from_thumb);
// Finish tracking and report a pointer gesture.
void RecordEndGesture(int timeline_width, double media_duration_seconds);
// Start tracking a keydown. Ok to call multiple times if key repeats.
void StartKey();
// Finish tracking and report a keyup. Call only once even if key repeats.
void RecordEndKey(int timeline_width, int key_code);
// Track an incremental input event caused by the current pointer gesture or
// pressed key. Each sequence of calls to this should usually be sandwiched by
// startGesture/Key and recordEndGesture/Key.
void OnInput(double from_seconds, double to_seconds);
private:
enum class State {
// No active gesture. Progresses to kKeyDown on |startKey|, or
// kGestureFromThumb/kGestureFromElsewhere on |startGesture|.
kInactive,
// Pointer down on thumb. Progresses to kDragFromThumb in |onInput|.
kGestureFromThumb,
// Thumb is being dragged (drag started from thumb).
kDragFromThumb,
// Pointer down on track. Progresses to kClick in |onInput|.
kGestureFromElsewhere,
// Pointer down followed by input. Assumed to be a click, unless additional
// |onInput| are received - if so progresses to kDragFromElsewhere.
kClick,
// Thumb is being dragged (drag started from track).
kDragFromElsewhere,
// A key is currently pressed down.
kKeyDown
};
bool has_never_been_playing_ = true;
State state_ = State::kInactive;
// The following are only valid during a pointer gesture.
base::TimeTicks drag_start_time_ticks_;
float drag_delta_media_seconds_ = 0;
float drag_sum_abs_delta_media_seconds_ = 0;
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_ELEMENTS_MEDIA_CONTROL_TIMELINE_METRICS_H_
...@@ -680,158 +680,6 @@ TEST_F(MediaControlsImplTest, TimeIndicatorsUpdatedOnSeeking) { ...@@ -680,158 +680,6 @@ TEST_F(MediaControlsImplTest, TimeIndicatorsUpdatedOnSeeking) {
EXPECT_EQ(duration / 4, timeline->valueAsNumber()); EXPECT_EQ(duration / 4, timeline->valueAsNumber());
} }
TEST_F(MediaControlsImplTest, TimelineMetricsClick) {
double duration = 540; // 9 minutes
LoadMediaWithDuration(duration);
EnsureSizing();
test::RunPendingTasks();
ASSERT_TRUE(IsElementVisible(*TimelineElement()));
DOMRect* timelineRect = TimelineElement()->getBoundingClientRect();
ASSERT_LT(0, timelineRect->width());
EXPECT_EQ(0, MediaControls().MediaElement().currentTime());
gfx::PointF trackCenter(timelineRect->left() + timelineRect->width() / 2,
timelineRect->top() + timelineRect->height() / 2);
MouseDownAt(trackCenter);
MouseUpAt(trackCenter);
test::RunPendingTasks();
EXPECT_LE(0.49 * duration, MediaControls().MediaElement().currentTime());
EXPECT_GE(0.51 * duration, MediaControls().MediaElement().currentTime());
GetHistogramTester().ExpectUniqueSample("Media.Timeline.SeekType." TIMELINE_W,
0 /* SeekType::kClick */, 1);
GetHistogramTester().ExpectTotalCount(
"Media.Timeline.DragGestureDuration." TIMELINE_W, 0);
GetHistogramTester().ExpectTotalCount(
"Media.Timeline.DragPercent." TIMELINE_W, 0);
GetHistogramTester().ExpectTotalCount(
"Media.Timeline.DragSumAbsTimeDelta." TIMELINE_W, 0);
GetHistogramTester().ExpectTotalCount(
"Media.Timeline.DragTimeDelta." TIMELINE_W, 0);
}
TEST_F(MediaControlsImplTest, TimelineMetricsDragFromCurrentPosition) {
double duration = 540; // 9 minutes
LoadMediaWithDuration(duration);
EnsureSizing();
test::RunPendingTasks();
ASSERT_TRUE(IsElementVisible(*TimelineElement()));
DOMRect* timeline_rect = TimelineTrackElement()->getBoundingClientRect();
ASSERT_LT(0, timeline_rect->width());
EXPECT_EQ(0, MediaControls().MediaElement().currentTime());
DOMRect* thumb_rect =
TimelineElement()
->UserAgentShadowRoot()
->getElementById(shadow_element_names::kIdSliderThumb)
->getBoundingClientRect();
gfx::PointF thumb(thumb_rect->x() + (thumb_rect->width() / 2),
thumb_rect->y() + 1);
float y = timeline_rect->top() + timeline_rect->height() / 2;
gfx::PointF track_two_thirds(
timeline_rect->left() + timeline_rect->width() * 2 / 3, y);
MouseDownAt(thumb);
MouseMoveTo(track_two_thirds);
MouseUpAt(track_two_thirds);
EXPECT_LE(0.66 * duration, MediaControls().MediaElement().currentTime());
EXPECT_GE(0.68 * duration, MediaControls().MediaElement().currentTime());
GetHistogramTester().ExpectUniqueSample(
"Media.Timeline.SeekType." TIMELINE_W,
1 /* SeekType::kDragFromCurrentPosition */, 1);
GetHistogramTester().ExpectTotalCount(
"Media.Timeline.DragGestureDuration." TIMELINE_W, 1);
GetHistogramTester().ExpectUniqueSample(
"Media.Timeline.DragPercent." TIMELINE_W, 47 /* [60.0%, 70.0%) */, 1);
GetHistogramTester().ExpectUniqueSample(
"Media.Timeline.DragSumAbsTimeDelta." TIMELINE_W, 16 /* [4m, 8m) */, 1);
GetHistogramTester().ExpectUniqueSample(
"Media.Timeline.DragTimeDelta." TIMELINE_W, 40 /* [4m, 8m) */, 1);
}
TEST_F(MediaControlsImplTest, TimelineMetricsDragFromElsewhere) {
double duration = 540; // 9 minutes
LoadMediaWithDuration(duration);
EnsureSizing();
test::RunPendingTasks();
ASSERT_TRUE(IsElementVisible(*TimelineElement()));
DOMRect* timelineRect = TimelineTrackElement()->getBoundingClientRect();
ASSERT_LT(0, timelineRect->width());
EXPECT_EQ(0, MediaControls().MediaElement().currentTime());
float y = timelineRect->top() + timelineRect->height() / 2;
gfx::PointF trackOneThird(
timelineRect->left() + timelineRect->width() * 1 / 3, y);
gfx::PointF trackTwoThirds(
timelineRect->left() + timelineRect->width() * 2 / 3, y);
MouseDownAt(trackOneThird);
MouseMoveTo(trackTwoThirds);
MouseUpAt(trackTwoThirds);
EXPECT_LE(0.66 * duration, MediaControls().MediaElement().currentTime());
EXPECT_GE(0.68 * duration, MediaControls().MediaElement().currentTime());
GetHistogramTester().ExpectUniqueSample("Media.Timeline.SeekType." TIMELINE_W,
2 /* SeekType::kDragFromElsewhere */,
1);
GetHistogramTester().ExpectTotalCount(
"Media.Timeline.DragGestureDuration." TIMELINE_W, 1);
GetHistogramTester().ExpectUniqueSample(
"Media.Timeline.DragPercent." TIMELINE_W, 42 /* [30.0%, 35.0%) */, 1);
GetHistogramTester().ExpectUniqueSample(
"Media.Timeline.DragSumAbsTimeDelta." TIMELINE_W, 15 /* [2m, 4m) */, 1);
GetHistogramTester().ExpectUniqueSample(
"Media.Timeline.DragTimeDelta." TIMELINE_W, 39 /* [2m, 4m) */, 1);
}
TEST_F(MediaControlsImplTest, TimelineMetricsDragBackAndForth) {
double duration = 540; // 9 minutes
LoadMediaWithDuration(duration);
EnsureSizing();
test::RunPendingTasks();
ASSERT_TRUE(IsElementVisible(*TimelineElement()));
DOMRect* timelineRect = TimelineTrackElement()->getBoundingClientRect();
ASSERT_LT(0, timelineRect->width());
EXPECT_EQ(0, MediaControls().MediaElement().currentTime());
float y = timelineRect->top() + timelineRect->height() / 2;
gfx::PointF trackTwoThirds(
timelineRect->left() + timelineRect->width() * 2 / 3, y);
gfx::PointF trackEnd(timelineRect->left() + timelineRect->width(), y);
gfx::PointF trackOneThird(
timelineRect->left() + timelineRect->width() * 1 / 3, y);
MouseDownAt(trackTwoThirds);
MouseMoveTo(trackEnd);
MouseMoveTo(trackOneThird);
MouseUpAt(trackOneThird);
EXPECT_LE(0.32 * duration, MediaControls().MediaElement().currentTime());
EXPECT_GE(0.34 * duration, MediaControls().MediaElement().currentTime());
GetHistogramTester().ExpectUniqueSample("Media.Timeline.SeekType." TIMELINE_W,
2 /* SeekType::kDragFromElsewhere */,
1);
GetHistogramTester().ExpectTotalCount(
"Media.Timeline.DragGestureDuration." TIMELINE_W, 1);
GetHistogramTester().ExpectUniqueSample(
"Media.Timeline.DragPercent." TIMELINE_W, 8 /* (-35.0%, -30.0%] */, 1);
GetHistogramTester().ExpectUniqueSample(
"Media.Timeline.DragSumAbsTimeDelta." TIMELINE_W, 17 /* [8m, 15m) */, 1);
GetHistogramTester().ExpectUniqueSample(
"Media.Timeline.DragTimeDelta." TIMELINE_W, 9 /* (-4m, -2m] */, 1);
}
TEST_F(MediaControlsImplTest, TimeIsCorrectlyFormatted) { TEST_F(MediaControlsImplTest, TimeIsCorrectlyFormatted) {
struct { struct {
double time; double time;
......
...@@ -8922,6 +8922,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -8922,6 +8922,9 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram_suffixes> </histogram_suffixes>
<histogram_suffixes name="MediaTimelineWidths" separator="."> <histogram_suffixes name="MediaTimelineWidths" separator=".">
<obsolete>
Deprecated as of 2020/10.
</obsolete>
<suffix name="32_47" label=""/> <suffix name="32_47" label=""/>
<suffix name="48_79" label=""/> <suffix name="48_79" label=""/>
<suffix name="80_127" label=""/> <suffix name="80_127" label=""/>
......
...@@ -3220,7 +3220,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -3220,7 +3220,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram> </histogram>
<histogram base="true" name="Media.Timeline.DragGestureDuration" units="ms" <histogram base="true" name="Media.Timeline.DragGestureDuration" units="ms"
expires_after="M88"> expires_after="2020-10-23">
<obsolete>
Deprecated as of 2020/10.
</obsolete>
<!-- Name completed by histogram_suffixes name="MediaTimelineWidths" --> <!-- Name completed by histogram_suffixes name="MediaTimelineWidths" -->
<owner>mlamouri@google.com</owner> <owner>mlamouri@google.com</owner>
...@@ -3233,7 +3236,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -3233,7 +3236,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram> </histogram>
<histogram base="true" name="Media.Timeline.DragPercent" <histogram base="true" name="Media.Timeline.DragPercent"
enum="MediaTimelinePercent" expires_after="M88"> enum="MediaTimelinePercent" expires_after="2020-10-23">
<obsolete>
Deprecated as of 2020/10.
</obsolete>
<!-- Name completed by histogram_suffixes name="MediaTimelineWidths" --> <!-- Name completed by histogram_suffixes name="MediaTimelineWidths" -->
<owner>mlamouri@google.com</owner> <owner>mlamouri@google.com</owner>
...@@ -3247,7 +3253,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -3247,7 +3253,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram> </histogram>
<histogram base="true" name="Media.Timeline.DragSumAbsTimeDelta" <histogram base="true" name="Media.Timeline.DragSumAbsTimeDelta"
enum="MediaTimelineAbsTimeDelta" expires_after="M88"> enum="MediaTimelineAbsTimeDelta" expires_after="2020-10-23">
<obsolete>
Deprecated as of 2020/10.
</obsolete>
<!-- Name completed by histogram_suffixes name="MediaTimelineWidths" --> <!-- Name completed by histogram_suffixes name="MediaTimelineWidths" -->
<owner>mlamouri@google.com</owner> <owner>mlamouri@google.com</owner>
...@@ -3265,7 +3274,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -3265,7 +3274,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram> </histogram>
<histogram base="true" name="Media.Timeline.DragTimeDelta" <histogram base="true" name="Media.Timeline.DragTimeDelta"
enum="MediaTimelineTimeDelta" expires_after="M88"> enum="MediaTimelineTimeDelta" expires_after="2020-10-23">
<obsolete>
Deprecated as of 2020/10.
</obsolete>
<!-- Name completed by histogram_suffixes name="MediaTimelineWidths" --> <!-- Name completed by histogram_suffixes name="MediaTimelineWidths" -->
<owner>mlamouri@google.com</owner> <owner>mlamouri@google.com</owner>
...@@ -3279,7 +3291,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -3279,7 +3291,10 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</histogram> </histogram>
<histogram base="true" name="Media.Timeline.SeekType" <histogram base="true" name="Media.Timeline.SeekType"
enum="MediaTimelineSeekType" expires_after="M88"> enum="MediaTimelineSeekType" expires_after="2020-10-23">
<obsolete>
Deprecated as of 2020/10.
</obsolete>
<!-- Name completed by histogram_suffixes name="MediaTimelineWidths" --> <!-- Name completed by histogram_suffixes name="MediaTimelineWidths" -->
<owner>mlamouri@google.com</owner> <owner>mlamouri@google.com</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