summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/modules/media_controls/elements
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/media_controls/elements')
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animated_arrow_container_element.cc3
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animated_arrow_container_element_test.cc2
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animation_event_listener.cc16
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animation_event_listener.h2
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_cast_button_element.cc4
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_consts.cc11
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_consts.h14
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_display_cutout_fullscreen_button_element.cc4
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_display_cutout_fullscreen_button_element_test.cc8
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.cc4
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_elements_helper.cc24
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_fullscreen_button_element.cc4
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.cc4
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element_test.cc14
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_loading_panel_element.cc3
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_loading_panel_element_test.cc9
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_mute_button_element.cc12
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_button_element.cc6
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.cc19
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h5
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_enclosure_element.cc8
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.cc7
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.cc25
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element_test.cc30
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.cc4
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_play_button_element.cc7
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_popup_menu_element.cc38
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_scrubbing_message_element_test.cc5
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_slider_element.cc7
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_text_track_list_element.cc9
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc41
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element_test.cc32
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element.cc4
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element_test.cc3
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_volume_slider_element.cc23
35 files changed, 250 insertions, 161 deletions
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animated_arrow_container_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animated_arrow_container_element.cc
index 0848f2d8cce..da595e2a5e3 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animated_arrow_container_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animated_arrow_container_element.cc
@@ -37,7 +37,8 @@ void MediaControlAnimatedArrowContainerElement::AnimatedArrow::ShowInternal() {
last_arrow_ = getElementById("arrow-3");
svg_container_ = getElementById("jump");
- event_listener_ = new MediaControlAnimationEventListener(this);
+ event_listener_ =
+ MakeGarbageCollected<MediaControlAnimationEventListener>(this);
}
void MediaControlAnimatedArrowContainerElement::AnimatedArrow::
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animated_arrow_container_element_test.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animated_arrow_container_element_test.cc
index 584e6c168f4..a1d213ab619 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animated_arrow_container_element_test.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animated_arrow_container_element_test.cc
@@ -39,7 +39,7 @@ class MediaControlAnimatedArrowContainerElementTest : public PageTestBase {
void SimulateShow() { arrow_element_->Show(); }
void SimulateAnimationIteration() {
- Event* event = Event::Create(EventTypeNames::animationiteration);
+ Event* event = Event::Create(event_type_names::kAnimationiteration);
GetElementById("arrow-3")->DispatchEvent(*event);
}
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animation_event_listener.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animation_event_listener.cc
index f7443373dc1..f31e1b45fe6 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animation_event_listener.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animation_event_listener.cc
@@ -13,16 +13,16 @@ MediaControlAnimationEventListener::MediaControlAnimationEventListener(
Observer* observer)
: EventListener(EventListener::kCPPEventListenerType), observer_(observer) {
observer_->WatchedAnimationElement().addEventListener(
- EventTypeNames::animationend, this, false);
+ event_type_names::kAnimationend, this, false);
observer_->WatchedAnimationElement().addEventListener(
- EventTypeNames::animationiteration, this, false);
+ event_type_names::kAnimationiteration, this, false);
}
void MediaControlAnimationEventListener::Detach() {
observer_->WatchedAnimationElement().removeEventListener(
- EventTypeNames::animationend, this, false);
+ event_type_names::kAnimationend, this, false);
observer_->WatchedAnimationElement().removeEventListener(
- EventTypeNames::animationiteration, this, false);
+ event_type_names::kAnimationiteration, this, false);
}
bool MediaControlAnimationEventListener::operator==(
@@ -35,13 +35,13 @@ void MediaControlAnimationEventListener::Trace(Visitor* visitor) {
EventListener::Trace(visitor);
}
-void MediaControlAnimationEventListener::handleEvent(ExecutionContext* context,
- Event* event) {
- if (event->type() == EventTypeNames::animationend) {
+void MediaControlAnimationEventListener::Invoke(ExecutionContext* context,
+ Event* event) {
+ if (event->type() == event_type_names::kAnimationend) {
observer_->OnAnimationEnd();
return;
}
- if (event->type() == EventTypeNames::animationiteration) {
+ if (event->type() == event_type_names::kAnimationiteration) {
observer_->OnAnimationIteration();
return;
}
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animation_event_listener.h b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animation_event_listener.h
index 0546d8afc42..987e3ea6ea5 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animation_event_listener.h
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_animation_event_listener.h
@@ -52,7 +52,7 @@ class MODULES_EXPORT MediaControlAnimationEventListener final
void Trace(Visitor*) override;
private:
- void handleEvent(ExecutionContext*, Event*) override;
+ void Invoke(ExecutionContext*, Event*) override;
Member<Observer> observer_;
};
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_cast_button_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_cast_button_element.cc
index ea489594c5b..40f5426e955 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_cast_button_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_cast_button_element.cc
@@ -39,7 +39,7 @@ MediaControlCastButtonElement::MediaControlCastButtonElement(
SetShadowPseudoId(is_overlay_button
? "-internal-media-controls-overlay-cast-button"
: "-internal-media-controls-cast-button");
- setType(InputTypeNames::button);
+ setType(input_type_names::kButton);
UpdateDisplayType();
}
@@ -93,7 +93,7 @@ const char* MediaControlCastButtonElement::GetNameForHistograms() const {
}
void MediaControlCastButtonElement::DefaultEventHandler(Event& event) {
- if (event.type() == EventTypeNames::click) {
+ if (event.type() == event_type_names::kClick) {
if (is_overlay_button_) {
Platform::Current()->RecordAction(
UserMetricsAction("Media.Controls.CastOverlay"));
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_consts.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_consts.cc
new file mode 100644
index 00000000000..4941a77f7cf
--- /dev/null
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_consts.cc
@@ -0,0 +1,11 @@
+// Copyright 2018 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.
+
+#include "third_party/blink/renderer/modules/media_controls/elements/media_control_consts.h"
+
+namespace blink {
+
+const char kClosedCSSClass[] = "closed";
+
+} // namespace blink
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_consts.h b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_consts.h
new file mode 100644
index 00000000000..d1a85779e74
--- /dev/null
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_consts.h
@@ -0,0 +1,14 @@
+// Copyright 2018 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_CONSTS_H_
+#define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_ELEMENTS_MEDIA_CONTROL_CONSTS_H_
+
+namespace blink {
+
+extern const char kClosedCSSClass[];
+
+} // namespace blink
+
+#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_ELEMENTS_MEDIA_CONTROL_CONSTS_H_
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_display_cutout_fullscreen_button_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_display_cutout_fullscreen_button_element.cc
index f284d1737c0..e6646c3e770 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_display_cutout_fullscreen_button_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_display_cutout_fullscreen_button_element.cc
@@ -18,7 +18,7 @@ MediaControlDisplayCutoutFullscreenButtonElement::
MediaControlsImpl& media_controls)
: MediaControlInputElement(media_controls,
kMediaDisplayCutoutFullscreenButton) {
- setType(InputTypeNames::button);
+ setType(input_type_names::kButton);
SetShadowPseudoId(AtomicString(
"-internal-media-controls-display-cutout-fullscreen-button"));
SetIsWanted(false);
@@ -31,7 +31,7 @@ bool MediaControlDisplayCutoutFullscreenButtonElement::
void MediaControlDisplayCutoutFullscreenButtonElement::DefaultEventHandler(
Event& event) {
- if (event.type() == EventTypeNames::click) {
+ if (event.type() == event_type_names::kClick) {
// The button shouldn't be visible if not in fullscreen.
DCHECK(MediaElement().IsFullscreen());
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_display_cutout_fullscreen_button_element_test.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_display_cutout_fullscreen_button_element_test.cc
index 6f9fd45dd93..455234995f4 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_display_cutout_fullscreen_button_element_test.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_display_cutout_fullscreen_button_element_test.cc
@@ -23,7 +23,7 @@ namespace {
class MockDisplayCutoutChromeClient : public EmptyChromeClient {
public:
// ChromeClient overrides:
- void EnterFullscreen(LocalFrame& frame, const FullscreenOptions&) override {
+ void EnterFullscreen(LocalFrame& frame, const FullscreenOptions*) override {
Fullscreen::DidEnterFullscreen(*frame.GetDocument());
}
void ExitFullscreen(LocalFrame& frame) override {
@@ -36,7 +36,9 @@ class MockDisplayCutoutChromeClient : public EmptyChromeClient {
class MediaControlDisplayCutoutFullscreenButtonElementTest
: public PageTestBase {
public:
- static TouchEventInit GetValidTouchEventInit() { return TouchEventInit(); }
+ static TouchEventInit* GetValidTouchEventInit() {
+ return TouchEventInit::Create();
+ }
void SetUp() override {
chrome_client_ = new MockDisplayCutoutChromeClient();
@@ -50,7 +52,7 @@ class MediaControlDisplayCutoutFullscreenButtonElementTest
video_ = HTMLVideoElement::Create(GetDocument());
GetDocument().body()->AppendChild(video_);
- controls_ = new MediaControlsImpl(*video_);
+ controls_ = MakeGarbageCollected<MediaControlsImpl>(*video_);
controls_->InitializeControls();
display_cutout_fullscreen_button_ =
controls_->display_cutout_fullscreen_button_;
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.cc
index a240eac3b84..af3d60a8d98 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.cc
@@ -21,7 +21,7 @@ namespace blink {
MediaControlDownloadButtonElement::MediaControlDownloadButtonElement(
MediaControlsImpl& media_controls)
: MediaControlInputElement(media_controls, kMediaDownloadButton) {
- setType(InputTypeNames::button);
+ setType(input_type_names::kButton);
SetShadowPseudoId(AtomicString("-internal-media-controls-download-button"));
SetIsWanted(false);
}
@@ -71,7 +71,7 @@ void MediaControlDownloadButtonElement::UpdateShownState() {
void MediaControlDownloadButtonElement::DefaultEventHandler(Event& event) {
const KURL& url = MediaElement().currentSrc();
- if (event.type() == EventTypeNames::click &&
+ if (event.type() == event_type_names::kClick &&
!(url.IsNull() || url.IsEmpty())) {
Platform::Current()->RecordAction(
UserMetricsAction("Media.Controls.Download"));
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_elements_helper.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_elements_helper.cc
index 7a6b6ac02f8..93483865e9f 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_elements_helper.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_elements_helper.cc
@@ -19,11 +19,13 @@ namespace blink {
// static
bool MediaControlElementsHelper::IsUserInteractionEvent(const Event& event) {
const AtomicString& type = event.type();
- return type == EventTypeNames::pointerdown ||
- type == EventTypeNames::pointerup ||
- type == EventTypeNames::mousedown || type == EventTypeNames::mouseup ||
- type == EventTypeNames::click || type == EventTypeNames::dblclick ||
- event.IsKeyboardEvent() || event.IsTouchEvent();
+ return type == event_type_names::kPointerdown ||
+ type == event_type_names::kPointerup ||
+ type == event_type_names::kMousedown ||
+ type == event_type_names::kMouseup ||
+ type == event_type_names::kClick ||
+ type == event_type_names::kDblclick || event.IsKeyboardEvent() ||
+ event.IsTouchEvent();
}
// static
@@ -46,12 +48,12 @@ bool MediaControlElementsHelper::IsUserInteractionEventForSlider(
return false;
const AtomicString& type = event.type();
- return type == EventTypeNames::mouseover ||
- type == EventTypeNames::mouseout ||
- type == EventTypeNames::mousemove ||
- type == EventTypeNames::pointerover ||
- type == EventTypeNames::pointerout ||
- type == EventTypeNames::pointermove;
+ return type == event_type_names::kMouseover ||
+ type == event_type_names::kMouseout ||
+ type == event_type_names::kMousemove ||
+ type == event_type_names::kPointerover ||
+ type == event_type_names::kPointerout ||
+ type == event_type_names::kPointermove;
}
// static
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_fullscreen_button_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_fullscreen_button_element.cc
index b3ae69b8ecd..b8368826c34 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_fullscreen_button_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_fullscreen_button_element.cc
@@ -17,7 +17,7 @@ namespace blink {
MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement(
MediaControlsImpl& media_controls)
: MediaControlInputElement(media_controls, kMediaEnterFullscreenButton) {
- setType(InputTypeNames::button);
+ setType(input_type_names::kButton);
SetShadowPseudoId(AtomicString("-webkit-media-controls-fullscreen-button"));
SetIsFullscreen(MediaElement().IsFullscreen());
SetIsWanted(false);
@@ -49,7 +49,7 @@ const char* MediaControlFullscreenButtonElement::GetNameForHistograms() const {
}
void MediaControlFullscreenButtonElement::DefaultEventHandler(Event& event) {
- if (event.type() == EventTypeNames::click) {
+ if (event.type() == event_type_names::kClick) {
RecordClickMetrics();
if (MediaElement().IsFullscreen())
GetMediaControls().ExitFullscreen();
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.cc
index 806b4ea1fe2..db9cb7d426c 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.cc
@@ -199,7 +199,7 @@ void MediaControlInputElement::UpdateShownState() {
}
void MediaControlInputElement::DefaultEventHandler(Event& event) {
- if (event.type() == EventTypeNames::click)
+ if (event.type() == event_type_names::kClick)
MaybeRecordInteracted();
HTMLInputElement::DefaultEventHandler(event);
@@ -272,7 +272,7 @@ WebSize MediaControlInputElement::GetSizeOrDefault() const {
}
bool MediaControlInputElement::IsDisabled() const {
- return hasAttribute(HTMLNames::disabledAttr);
+ return hasAttribute(html_names::kDisabledAttr);
}
void MediaControlInputElement::Trace(blink::Visitor* visitor) {
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element_test.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element_test.cc
index 17a12b2350d..e948fe7222e 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element_test.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element_test.cc
@@ -30,7 +30,7 @@ class MediaControlInputElementImpl final : public MediaControlInputElement {
MediaControlInputElementImpl(MediaControlsImpl& media_controls)
// Using arbitrary MediaControlElementType. It should have no impact.
: MediaControlInputElement(media_controls, kMediaDownloadButton) {
- setType(InputTypeNames::button);
+ setType(input_type_names::kButton);
SetIsWanted(false);
}
@@ -57,7 +57,7 @@ class MediaControlInputElementTest : public PageTestBase {
// Create page and add a video element with controls.
PageTestBase::SetUp();
media_element_ = HTMLVideoElement::Create(GetDocument());
- media_element_->SetBooleanAttribute(HTMLNames::controlsAttr, true);
+ media_element_->SetBooleanAttribute(html_names::kControlsAttr, true);
GetDocument().body()->AppendChild(media_element_);
// Create instance of MediaControlInputElement to run tests on.
@@ -169,7 +169,7 @@ TEST_F(MediaControlInputElementTest, ClickRecordsInteraction) {
ControlInputElement().MaybeRecordDisplayed();
ControlInputElement().DispatchSimulatedClick(
- Event::CreateBubble(EventTypeNames::click), kSendNoEvents);
+ Event::CreateBubble(event_type_names::kClick), kSendNoEvents);
histogram_tester_.ExpectTotalCount(kControlInputElementHistogramName, 2);
histogram_tester_.ExpectBucketCount(kControlInputElementHistogramName, 0, 1);
@@ -236,7 +236,7 @@ TEST_F(MediaControlInputElementTest, OverflowElement_DisplayAfterInline) {
}
TEST_F(MediaControlInputElementTest, ShouldRecordDisplayStates_ReadyState) {
- MediaElement().setAttribute(HTMLNames::preloadAttr, "auto");
+ MediaElement().setAttribute(html_names::kPreloadAttr, "auto");
SetReadyState(HTMLMediaElement::kHaveNothing);
EXPECT_FALSE(
@@ -264,15 +264,15 @@ TEST_F(MediaControlInputElementTest, ShouldRecordDisplayStates_Preload) {
// the result.
SetReadyState(HTMLMediaElement::kHaveNothing);
- MediaElement().setAttribute(HTMLNames::preloadAttr, "none");
+ MediaElement().setAttribute(html_names::kPreloadAttr, "none");
EXPECT_TRUE(
MediaControlInputElement::ShouldRecordDisplayStates(MediaElement()));
- MediaElement().setAttribute(HTMLNames::preloadAttr, "preload");
+ MediaElement().setAttribute(html_names::kPreloadAttr, "preload");
EXPECT_FALSE(
MediaControlInputElement::ShouldRecordDisplayStates(MediaElement()));
- MediaElement().setAttribute(HTMLNames::preloadAttr, "auto");
+ MediaElement().setAttribute(html_names::kPreloadAttr, "auto");
EXPECT_FALSE(
MediaControlInputElement::ShouldRecordDisplayStates(MediaElement()));
}
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_loading_panel_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_loading_panel_element.cc
index dfb4d440740..c8aa69e60b1 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_loading_panel_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_loading_panel_element.cc
@@ -98,7 +98,8 @@ void MediaControlLoadingPanelElement::PopulateShadowDOM() {
"-internal-media-controls-loading-panel-spinner-mask-2-background",
mask2);
- event_listener_ = new MediaControlAnimationEventListener(this);
+ event_listener_ =
+ MakeGarbageCollected<MediaControlAnimationEventListener>(this);
}
void MediaControlLoadingPanelElement::RemovedFrom(
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_loading_panel_element_test.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_loading_panel_element_test.cc
index 813235783e9..36dc379eff4 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_loading_panel_element_test.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_loading_panel_element_test.cc
@@ -24,14 +24,15 @@ class MediaControlLoadingPanelElementTest : public PageTestBase {
// Create page and add a video element with controls.
PageTestBase::SetUp();
media_element_ = HTMLVideoElement::Create(GetDocument());
- media_element_->SetBooleanAttribute(HTMLNames::controlsAttr, true);
+ media_element_->SetBooleanAttribute(html_names::kControlsAttr, true);
GetDocument().body()->AppendChild(media_element_);
// Create instance of MediaControlInputElement to run tests on.
media_controls_ =
static_cast<MediaControlsImpl*>(media_element_->GetMediaControls());
ASSERT_NE(media_controls_, nullptr);
- loading_element_ = new MediaControlLoadingPanelElement(*media_controls_);
+ loading_element_ =
+ MakeGarbageCollected<MediaControlLoadingPanelElement>(*media_controls_);
}
protected:
@@ -90,7 +91,7 @@ class MediaControlLoadingPanelElementTest : public PageTestBase {
void SimulateAnimationIterations(int count) {
for (int i = 0; i < count; i++) {
- TriggerEvent(EventTypeNames::animationiteration);
+ TriggerEvent(event_type_names::kAnimationiteration);
}
}
@@ -103,7 +104,7 @@ class MediaControlLoadingPanelElementTest : public PageTestBase {
ExpectAnimationIterationCount("infinite");
}
- void SimulateAnimationEnd() { TriggerEvent(EventTypeNames::animationend); }
+ void SimulateAnimationEnd() { TriggerEvent(event_type_names::kAnimationend); }
void SimulateControlsHidden() { loading_element_->OnControlsHidden(); }
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_mute_button_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_mute_button_element.cc
index da173711dda..f1c96f981ec 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_mute_button_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_mute_button_element.cc
@@ -15,7 +15,7 @@ namespace blink {
MediaControlMuteButtonElement::MediaControlMuteButtonElement(
MediaControlsImpl& media_controls)
: MediaControlInputElement(media_controls, kMediaMuteButton) {
- setType(InputTypeNames::button);
+ setType(input_type_names::kButton);
SetShadowPseudoId(AtomicString("-webkit-media-controls-mute-button"));
}
@@ -51,7 +51,7 @@ const char* MediaControlMuteButtonElement::GetNameForHistograms() const {
}
void MediaControlMuteButtonElement::DefaultEventHandler(Event& event) {
- if (event.type() == EventTypeNames::click) {
+ if (event.type() == event_type_names::kClick) {
if (MediaElement().muted()) {
Platform::Current()->RecordAction(
UserMetricsAction("Media.Controls.Unmute"));
@@ -65,13 +65,13 @@ void MediaControlMuteButtonElement::DefaultEventHandler(Event& event) {
}
if (!IsOverflowElement()) {
- if (event.type() == EventTypeNames::mouseover ||
- event.type() == EventTypeNames::focus) {
+ if (event.type() == event_type_names::kMouseover ||
+ event.type() == event_type_names::kFocus) {
GetMediaControls().OpenVolumeSliderIfNecessary();
}
- if (event.type() == EventTypeNames::mouseout ||
- event.type() == EventTypeNames::blur) {
+ if (event.type() == event_type_names::kMouseout ||
+ event.type() == event_type_names::kBlur) {
GetMediaControls().CloseVolumeSliderIfNecessary();
}
}
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_button_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_button_element.cc
index cb2ffa7acc1..a33e4b429cc 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_button_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_button_element.cc
@@ -16,7 +16,7 @@ namespace blink {
MediaControlOverflowMenuButtonElement::MediaControlOverflowMenuButtonElement(
MediaControlsImpl& media_controls)
: MediaControlInputElement(media_controls, kMediaOverflowButton) {
- setType(InputTypeNames::button);
+ setType(input_type_names::kButton);
SetShadowPseudoId(AtomicString("-internal-media-controls-overflow-button"));
SetIsWanted(false);
}
@@ -43,8 +43,8 @@ void MediaControlOverflowMenuButtonElement::UpdateShownState() {
void MediaControlOverflowMenuButtonElement::DefaultEventHandler(Event& event) {
// Only respond to a click event if we are not disabled.
- if (!hasAttribute(HTMLNames::disabledAttr) &&
- event.type() == EventTypeNames::click) {
+ if (!hasAttribute(html_names::kDisabledAttr) &&
+ event.type() == event_type_names::kClick) {
if (GetMediaControls().OverflowMenuVisible()) {
Platform::Current()->RecordAction(
UserMetricsAction("Media.Controls.OverflowClose"));
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.cc
index cb7d4e67ef0..710ecb69070 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.cc
@@ -6,10 +6,13 @@
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/renderer/core/dom/document.h"
+#include "third_party/blink/renderer/core/dom/dom_token_list.h"
#include "third_party/blink/renderer/core/dom/events/event.h"
+#include "third_party/blink/renderer/modules/media_controls/elements/media_control_consts.h"
#include "third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_button_element.h"
#include "third_party/blink/renderer/modules/media_controls/media_controls_impl.h"
#include "third_party/blink/renderer/platform/histogram.h"
+#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace blink {
@@ -18,6 +21,15 @@ MediaControlOverflowMenuListElement::MediaControlOverflowMenuListElement(
: MediaControlPopupMenuElement(media_controls, kMediaOverflowList) {
SetShadowPseudoId(
AtomicString("-internal-media-controls-overflow-menu-list"));
+ CloseOverflowMenu();
+}
+
+void MediaControlOverflowMenuListElement::OpenOverflowMenu() {
+ classList().Remove(kClosedCSSClass);
+}
+
+void MediaControlOverflowMenuListElement::CloseOverflowMenu() {
+ classList().Add(kClosedCSSClass);
}
void MediaControlOverflowMenuListElement::MaybeRecordTimeTaken(
@@ -38,7 +50,7 @@ void MediaControlOverflowMenuListElement::MaybeRecordTimeTaken(
}
void MediaControlOverflowMenuListElement::DefaultEventHandler(Event& event) {
- if (event.type() == EventTypeNames::click)
+ if (event.type() == event_type_names::kClick)
event.SetDefaultHandled();
MediaControlPopupMenuElement::DefaultEventHandler(event);
@@ -47,6 +59,11 @@ void MediaControlOverflowMenuListElement::DefaultEventHandler(Event& event) {
void MediaControlOverflowMenuListElement::SetIsWanted(bool wanted) {
MediaControlPopupMenuElement::SetIsWanted(wanted);
+ if (wanted)
+ OpenOverflowMenu();
+ else if (!GetMediaControls().TextTrackListIsWanted())
+ CloseOverflowMenu();
+
// Record the time the overflow menu was shown to a histogram.
if (wanted) {
DCHECK(!time_shown_);
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h
index 4da049d2d2f..3a8d38dabc1 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_list_element.h
@@ -7,7 +7,7 @@
#include "base/optional.h"
#include "third_party/blink/renderer/modules/media_controls/elements/media_control_popup_menu_element.h"
-#include "third_party/blink/renderer/platform/web_task_runner.h"
+#include "third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h"
#include "third_party/blink/renderer/platform/wtf/time.h"
namespace blink {
@@ -21,6 +21,9 @@ class MediaControlOverflowMenuListElement final
public:
explicit MediaControlOverflowMenuListElement(MediaControlsImpl&);
+ void OpenOverflowMenu();
+ void CloseOverflowMenu();
+
// Override MediaControlPopupMenuElement
void SetIsWanted(bool) final;
Element* PopupAnchor() const final;
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_enclosure_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_enclosure_element.cc
index 1e80f7fcd8b..f66633f48e5 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_enclosure_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_enclosure_element.cc
@@ -18,10 +18,10 @@ MediaControlOverlayEnclosureElement::MediaControlOverlayEnclosureElement(
void MediaControlOverlayEnclosureElement::DefaultEventHandler(Event& event) {
// When the user interacts with the media element, the Cast overlay button
// needs to be shown.
- if (event.type() == EventTypeNames::gesturetap ||
- event.type() == EventTypeNames::click ||
- event.type() == EventTypeNames::pointerover ||
- event.type() == EventTypeNames::pointermove) {
+ if (event.type() == event_type_names::kGesturetap ||
+ event.type() == event_type_names::kClick ||
+ event.type() == event_type_names::kPointerover ||
+ event.type() == event_type_names::kPointermove) {
GetMediaControls().ShowOverlayCastButtonIfNeeded();
}
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.cc
index aa454a87048..0c1668197c1 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_overlay_play_button_element.cc
@@ -39,7 +39,7 @@ MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement(
: MediaControlInputElement(media_controls, kMediaPlayButton),
internal_button_(nullptr) {
EnsureUserAgentShadowRoot();
- setType(InputTypeNames::button);
+ setType(input_type_names::kButton);
SetShadowPseudoId(AtomicString("-webkit-media-controls-overlay-play-button"));
if (MediaControlsImpl::IsModern()) {
@@ -76,8 +76,7 @@ void MediaControlOverlayPlayButtonElement::MaybePlayPause() {
// state. This allows potential recovery for transient network and decoder
// resource issues.
const String& url = MediaElement().currentSrc().GetString();
- if (MediaElement().error() && !HTMLMediaElement::IsMediaStreamURL(url) &&
- !HTMLMediaSource::Lookup(url)) {
+ if (MediaElement().error() && !HTMLMediaSource::Lookup(url)) {
MediaElement().load();
}
@@ -92,7 +91,7 @@ void MediaControlOverlayPlayButtonElement::MaybePlayPause() {
}
void MediaControlOverlayPlayButtonElement::DefaultEventHandler(Event& event) {
- if (event.type() == EventTypeNames::click) {
+ if (event.type() == event_type_names::kClick) {
event.SetDefaultHandled();
MaybePlayPause();
}
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.cc
index 22848fc0ddd..2a6da96b45d 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element.cc
@@ -10,6 +10,7 @@
#include "third_party/blink/renderer/core/html/media/html_media_element.h"
#include "third_party/blink/renderer/modules/media_controls/elements/media_control_elements_helper.h"
#include "third_party/blink/renderer/modules/media_controls/media_controls_impl.h"
+#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace blink {
@@ -40,14 +41,15 @@ class MediaControlPanelElement::TransitionEventListener final
DCHECK(!attached_);
attached_ = true;
- element_->addEventListener(EventTypeNames::transitionend, this, false);
+ element_->addEventListener(event_type_names::kTransitionend, this, false);
}
void Detach() {
DCHECK(attached_);
attached_ = false;
- element_->removeEventListener(EventTypeNames::transitionend, this, false);
+ element_->removeEventListener(event_type_names::kTransitionend, this,
+ false);
}
bool IsAttached() const { return attached_; }
@@ -62,8 +64,11 @@ class MediaControlPanelElement::TransitionEventListener final
}
private:
- void handleEvent(ExecutionContext* context, Event* event) override {
- if (event->type() == EventTypeNames::transitionend) {
+ void Invoke(ExecutionContext* context, Event* event) override {
+ if (event->target() != element_)
+ return;
+
+ if (event->type() == event_type_names::kTransitionend) {
callback_.Run();
return;
}
@@ -150,10 +155,11 @@ bool MediaControlPanelElement::EventListenerIsAttachedForTest() const {
void MediaControlPanelElement::EnsureTransitionEventListener() {
// Create the event listener if it doesn't exist.
if (!event_listener_) {
- event_listener_ = new MediaControlPanelElement::TransitionEventListener(
- this,
- WTF::BindRepeating(&MediaControlPanelElement::HandleTransitionEndEvent,
- WrapWeakPersistent(this)));
+ event_listener_ =
+ MakeGarbageCollected<MediaControlPanelElement::TransitionEventListener>(
+ this, WTF::BindRepeating(
+ &MediaControlPanelElement::HandleTransitionEndEvent,
+ WrapWeakPersistent(this)));
}
// Attach the event listener if we are not attached.
@@ -173,7 +179,8 @@ void MediaControlPanelElement::DetachTransitionEventListener() {
void MediaControlPanelElement::DefaultEventHandler(Event& event) {
// Suppress the media element activation behavior (toggle play/pause) when
// any part of the control panel is clicked.
- if (event.type() == EventTypeNames::click && !MediaControlsImpl::IsModern()) {
+ if (event.type() == event_type_names::kClick &&
+ !MediaControlsImpl::IsModern()) {
event.SetDefaultHandled();
return;
}
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element_test.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element_test.cc
index f44fe39f8cb..a6faf0872a9 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element_test.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_panel_element_test.cc
@@ -21,18 +21,21 @@ class MediaControlPanelElementTest : public PageTestBase {
// Create page and add a video element with controls.
PageTestBase::SetUp();
media_element_ = HTMLVideoElement::Create(GetDocument());
- media_element_->SetBooleanAttribute(HTMLNames::controlsAttr, true);
+ media_element_->SetBooleanAttribute(html_names::kControlsAttr, true);
GetDocument().body()->AppendChild(media_element_);
// Create instance of MediaControlInputElement to run tests on.
media_controls_ =
static_cast<MediaControlsImpl*>(media_element_->GetMediaControls());
ASSERT_NE(media_controls_, nullptr);
- panel_element_ = new MediaControlPanelElement(*media_controls_);
+ panel_element_ =
+ MakeGarbageCollected<MediaControlPanelElement>(*media_controls_);
}
protected:
- void SimulateTransitionEnd() { TriggerEvent(EventTypeNames::transitionend); }
+ void SimulateTransitionEnd(Element& element) {
+ TriggerEvent(element, event_type_names::kTransitionend);
+ }
void ExpectPanelIsDisplayed() { EXPECT_TRUE(GetPanel().IsWanted()); }
@@ -52,9 +55,10 @@ class MediaControlPanelElementTest : public PageTestBase {
HTMLMediaElement& GetMediaElement() { return *media_element_.Get(); }
private:
- void TriggerEvent(const AtomicString& name) {
+ void TriggerEvent(Element& element, const AtomicString& name) {
Event* event = Event::Create(name);
- GetPanel().DispatchEvent(*event);
+ event->SetTarget(&element);
+ GetPanel().FireEventListeners(*event);
}
Persistent<HTMLMediaElement> media_element_;
@@ -63,6 +67,9 @@ class MediaControlPanelElementTest : public PageTestBase {
};
TEST_F(MediaControlPanelElementTest, StateTransitions) {
+ Element* child_div = HTMLDivElement::Create(GetPanel().GetDocument());
+ GetPanel().ParserAppendChild(child_div);
+
// Make sure we are displayed (we are already opaque).
GetPanel().SetIsDisplayed(true);
ExpectPanelIsDisplayed();
@@ -72,10 +79,15 @@ TEST_F(MediaControlPanelElementTest, StateTransitions) {
EventListenerNotCreated();
GetPanel().MakeTransparent();
- // The event listener should now be attached so we should simulate the
- // transition end and the panel will be hidden.
+ // The event listener should now be attached
EventListenerAttached();
- SimulateTransitionEnd();
+
+ // Simulate child div transition end and the panel should not be hidden
+ SimulateTransitionEnd(*child_div);
+ ExpectPanelIsDisplayed();
+
+ // Simulate panel transition end and the panel will be hidden
+ SimulateTransitionEnd(GetPanel());
ExpectPanelIsNotDisplayed();
// The event listener should be detached. We should now make the panel
@@ -86,7 +98,7 @@ TEST_F(MediaControlPanelElementTest, StateTransitions) {
// The event listener should now be attached so we should simulate the
// transition end event and the panel will be hidden.
EventListenerAttached();
- SimulateTransitionEnd();
+ SimulateTransitionEnd(GetPanel());
ExpectPanelIsDisplayed();
}
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.cc
index 3c6c79872a8..7e1968d6860 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.cc
@@ -18,7 +18,7 @@ namespace blink {
MediaControlPictureInPictureButtonElement::
MediaControlPictureInPictureButtonElement(MediaControlsImpl& media_controls)
: MediaControlInputElement(media_controls, kMediaPlayButton) {
- setType(InputTypeNames::button);
+ setType(input_type_names::kButton);
SetShadowPseudoId(
AtomicString("-internal-media-controls-picture-in-picture-button"));
SetIsWanted(false);
@@ -66,7 +66,7 @@ const char* MediaControlPictureInPictureButtonElement::GetNameForHistograms()
void MediaControlPictureInPictureButtonElement::DefaultEventHandler(
Event& event) {
- if (event.type() == EventTypeNames::click) {
+ if (event.type() == event_type_names::kClick) {
PictureInPictureControllerImpl& controller =
PictureInPictureControllerImpl::From(MediaElement().GetDocument());
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_play_button_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_play_button_element.cc
index e358f0005b7..843c19eb35c 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_play_button_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_play_button_element.cc
@@ -16,7 +16,7 @@ namespace blink {
MediaControlPlayButtonElement::MediaControlPlayButtonElement(
MediaControlsImpl& media_controls)
: MediaControlInputElement(media_controls, kMediaPlayButton) {
- setType(InputTypeNames::button);
+ setType(input_type_names::kButton);
SetShadowPseudoId(AtomicString("-webkit-media-controls-play-button"));
}
@@ -49,7 +49,7 @@ const char* MediaControlPlayButtonElement::GetNameForHistograms() const {
}
void MediaControlPlayButtonElement::DefaultEventHandler(Event& event) {
- if (event.type() == EventTypeNames::click) {
+ if (event.type() == event_type_names::kClick) {
if (MediaElement().paused()) {
Platform::Current()->RecordAction(
UserMetricsAction("Media.Controls.Play"));
@@ -62,8 +62,7 @@ void MediaControlPlayButtonElement::DefaultEventHandler(Event& event) {
// state. This allows potential recovery for transient network and decoder
// resource issues.
const String& url = MediaElement().currentSrc().GetString();
- if (MediaElement().error() && !HTMLMediaElement::IsMediaStreamURL(url) &&
- !HTMLMediaSource::Lookup(url))
+ if (MediaElement().error() && !HTMLMediaSource::Lookup(url))
MediaElement().load();
MediaElement().TogglePlayState();
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_popup_menu_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_popup_menu_element.cc
index 0cb0d29c3a1..95aace33bc7 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_popup_menu_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_popup_menu_element.cc
@@ -17,6 +17,7 @@
#include "third_party/blink/renderer/modules/media_controls/elements/media_control_overflow_menu_button_element.h"
#include "third_party/blink/renderer/modules/media_controls/media_controls_impl.h"
#include "third_party/blink/renderer/platform/keyboard_codes.h"
+#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace blink {
@@ -47,26 +48,28 @@ class MediaControlPopupMenuElement::EventListener final
~EventListener() final = default;
void StartListening() {
- popup_menu_->addEventListener(EventTypeNames::keydown, this, false);
+ popup_menu_->addEventListener(event_type_names::kKeydown, this, false);
LocalDOMWindow* window = popup_menu_->GetDocument().domWindow();
- window->addEventListener(EventTypeNames::scroll, this, true);
+ window->addEventListener(event_type_names::kScroll, this, true);
if (DOMWindow* outer_window = window->top()) {
if (outer_window != window)
- outer_window->addEventListener(EventTypeNames::scroll, this, true);
- outer_window->addEventListener(EventTypeNames::resize, this, true);
+ outer_window->addEventListener(event_type_names::kScroll, this, true);
+ outer_window->addEventListener(event_type_names::kResize, this, true);
}
}
void StopListening() {
- popup_menu_->removeEventListener(EventTypeNames::keydown, this, false);
+ popup_menu_->removeEventListener(event_type_names::kKeydown, this, false);
LocalDOMWindow* window = popup_menu_->GetDocument().domWindow();
- window->removeEventListener(EventTypeNames::scroll, this, true);
+ window->removeEventListener(event_type_names::kScroll, this, true);
if (DOMWindow* outer_window = window->top()) {
- if (outer_window != window)
- outer_window->removeEventListener(EventTypeNames::scroll, this, true);
- outer_window->removeEventListener(EventTypeNames::resize, this, true);
+ if (outer_window != window) {
+ outer_window->removeEventListener(event_type_names::kScroll, this,
+ true);
+ }
+ outer_window->removeEventListener(event_type_names::kResize, this, true);
}
}
@@ -80,8 +83,9 @@ class MediaControlPopupMenuElement::EventListener final
}
private:
- void handleEvent(ExecutionContext*, Event* event) final {
- if (event->type() == EventTypeNames::keydown && event->IsKeyboardEvent()) {
+ void Invoke(ExecutionContext*, Event* event) final {
+ if (event->type() == event_type_names::kKeydown &&
+ event->IsKeyboardEvent()) {
KeyboardEvent* keyboard_event = ToKeyboardEvent(event);
bool handled = true;
@@ -111,8 +115,8 @@ class MediaControlPopupMenuElement::EventListener final
event->stopPropagation();
event->SetDefaultHandled();
}
- } else if (event->type() == EventTypeNames::resize ||
- event->type() == EventTypeNames::scroll) {
+ } else if (event->type() == event_type_names::kResize ||
+ event->type() == event_type_names::kScroll) {
popup_menu_->SetIsWanted(false);
}
}
@@ -131,7 +135,7 @@ void MediaControlPopupMenuElement::SetIsWanted(bool wanted) {
SelectFirstItem();
if (!event_listener_)
- event_listener_ = new EventListener(this);
+ event_listener_ = MakeGarbageCollected<EventListener>(this);
event_listener_->StartListening();
} else {
if (event_listener_)
@@ -144,15 +148,15 @@ void MediaControlPopupMenuElement::OnItemSelected() {
}
void MediaControlPopupMenuElement::DefaultEventHandler(Event& event) {
- if (event.type() == EventTypeNames::pointermove) {
+ if (event.type() == event_type_names::kPointermove) {
ToElement(event.target()->ToNode())->focus();
- } else if (event.type() == EventTypeNames::focusout) {
+ } else if (event.type() == event_type_names::kFocusout) {
GetDocument()
.GetTaskRunner(TaskType::kMediaElementEvent)
->PostTask(FROM_HERE,
WTF::Bind(&MediaControlPopupMenuElement::HideIfNotFocused,
WrapWeakPersistent(this)));
- } else if (event.type() == EventTypeNames::click) {
+ } else if (event.type() == event_type_names::kClick) {
OnItemSelected();
event.stopPropagation();
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_scrubbing_message_element_test.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_scrubbing_message_element_test.cc
index 127612e505b..b2a1718ab1a 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_scrubbing_message_element_test.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_scrubbing_message_element_test.cc
@@ -26,7 +26,7 @@ class MediaControlScrubbingMessageElementTest : public PageTestBase {
// Create page and add a video element with controls.
PageTestBase::SetUp();
media_element_ = HTMLVideoElement::Create(GetDocument());
- media_element_->SetBooleanAttribute(HTMLNames::controlsAttr, true);
+ media_element_->SetBooleanAttribute(html_names::kControlsAttr, true);
GetDocument().body()->AppendChild(media_element_);
// Create instance of MediaControlScrubbingMessageElement to run tests on.
@@ -34,7 +34,8 @@ class MediaControlScrubbingMessageElementTest : public PageTestBase {
static_cast<MediaControlsImpl*>(media_element_->GetMediaControls());
ASSERT_NE(nullptr, media_controls_);
message_element_ =
- new MediaControlScrubbingMessageElement(*media_controls_);
+ MakeGarbageCollected<MediaControlScrubbingMessageElement>(
+ *media_controls_);
}
protected:
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_slider_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_slider_element.cc
index e1f55e00caf..e587c04e10c 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_slider_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_slider_element.cc
@@ -88,9 +88,10 @@ MediaControlSliderElement::MediaControlSliderElement(
segment_highlight_after_(nullptr),
resize_observer_(ResizeObserver::Create(
GetDocument(),
- new MediaControlSliderElementResizeObserverDelegate(this))) {
- setType(InputTypeNames::range);
- setAttribute(HTMLNames::stepAttr, "any");
+ MakeGarbageCollected<MediaControlSliderElementResizeObserverDelegate>(
+ this))) {
+ setType(input_type_names::kRange);
+ setAttribute(html_names::kStepAttr, "any");
resize_observer_->observe(this);
}
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_text_track_list_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_text_track_list_element.cc
index c04a9512b28..ec67e954426 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_text_track_list_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_text_track_list_element.cc
@@ -63,6 +63,9 @@ void MediaControlTextTrackListElement::SetIsWanted(bool wanted) {
if (wanted)
RefreshTextTrackListMenu();
+ if (!wanted && !GetMediaControls().OverflowMenuIsWanted())
+ GetMediaControls().CloseOverflowMenu();
+
MediaControlPopupMenuElement::SetIsWanted(wanted);
}
@@ -71,12 +74,12 @@ Element* MediaControlTextTrackListElement::PopupAnchor() const {
}
void MediaControlTextTrackListElement::DefaultEventHandler(Event& event) {
- if (event.type() == EventTypeNames::click) {
+ if (event.type() == event_type_names::kClick) {
// This handles the back button click. Clicking on a menu item triggers the
// change event instead.
GetMediaControls().ToggleOverflowMenu();
event.SetDefaultHandled();
- } else if (event.type() == EventTypeNames::change) {
+ } else if (event.type() == event_type_names::kChange) {
// Identify which input element was selected and set track to showing
Node* target = event.target()->ToNode();
if (!target || !target->IsElementNode())
@@ -108,7 +111,7 @@ Element* MediaControlTextTrackListElement::CreateTextTrackListItem(
HTMLInputElement::Create(GetDocument(), CreateElementFlags());
track_item_input->SetShadowPseudoId(
AtomicString("-internal-media-controls-text-track-list-item-input"));
- track_item_input->setType(InputTypeNames::checkbox);
+ track_item_input->setType(input_type_names::kCheckbox);
track_item_input->SetIntegralAttribute(TrackIndexAttrName(), track_index);
if (!MediaElement().TextTracksVisible()) {
if (!track)
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc
index 456171e86fd..9679e4a3bdc 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element.cc
@@ -34,6 +34,7 @@
namespace {
const double kCurrentTimeBufferedDelta = 1.0;
+const int kThumbRadius = 6;
// Only respond to main button of primary pointer(s).
bool IsValidPointerEvent(const blink::Event& event) {
@@ -81,13 +82,13 @@ bool MediaControlTimelineElement::WillRespondToMouseClickEvents() {
void MediaControlTimelineElement::SetPosition(double current_time) {
setValue(String::Number(current_time));
setAttribute(
- HTMLNames::aria_valuetextAttr,
+ html_names::kAriaValuetextAttr,
AtomicString(GetMediaControls().CurrentTimeDisplay().textContent(true)));
RenderBarSegments();
}
void MediaControlTimelineElement::SetDuration(double duration) {
- SetFloatingPointAttribute(HTMLNames::maxAttr,
+ SetFloatingPointAttribute(html_names::kMaxAttr,
std::isfinite(duration) ? duration : 0);
RenderBarSegments();
}
@@ -116,7 +117,7 @@ void MediaControlTimelineElement::DefaultEventHandler(Event& event) {
UserMetricsAction("Media.Controls.ScrubbingBegin"));
GetMediaControls().BeginScrubbing(MediaControlsImpl::IsTouchEvent(&event));
Element* thumb = UserAgentShadowRoot()->getElementById(
- ShadowElementNames::SliderThumb());
+ shadow_element_names::SliderThumb());
bool started_from_thumb = thumb && thumb == event.target()->ToNode();
metrics_.StartGesture(started_from_thumb);
} else if (EndScrubbingEvent(event)) {
@@ -126,10 +127,10 @@ void MediaControlTimelineElement::DefaultEventHandler(Event& event) {
metrics_.RecordEndGesture(TrackWidth(), MediaElement().duration());
}
- if (event.type() == EventTypeNames::keydown) {
+ if (event.type() == event_type_names::kKeydown) {
metrics_.StartKey();
}
- if (event.type() == EventTypeNames::keyup && event.IsKeyboardEvent()) {
+ if (event.type() == event_type_names::kKeyup && event.IsKeyboardEvent()) {
metrics_.RecordEndKey(TrackWidth(), ToKeyboardEvent(event).keyCode());
}
@@ -141,7 +142,7 @@ void MediaControlTimelineElement::DefaultEventHandler(Event& event) {
}
// Update the value based on the touchmove event.
- if (is_touching_ && event.type() == EventTypeNames::touchmove) {
+ if (is_touching_ && event.type() == event_type_names::kTouchmove) {
auto& touch_event = ToTouchEvent(event);
if (touch_event.touches()->length() != 1)
return;
@@ -150,7 +151,7 @@ void MediaControlTimelineElement::DefaultEventHandler(Event& event) {
double position =
max(0.0, fmin(1.0, touch->clientX() / TrackWidth() * ZoomFactor()));
SetPosition(position * MediaElement().duration());
- } else if (event.type() != EventTypeNames::input) {
+ } else if (event.type() != event_type_names::kInput) {
return;
}
@@ -198,6 +199,18 @@ void MediaControlTimelineElement::RenderBarSegments() {
}
double current_position = current_time / duration;
+
+ // Transform the current_position to always align with the center of thumb
+ // At time 0, the thumb's center is 6px away from beginning of progress bar
+ // At the end of video, thumb's center is -6px away from end of progress bar
+ // Convert 6px into ratio respect to progress bar width since
+ // current_position is range from 0 to 1
+ double width = TrackWidth() / ZoomFactor();
+ if (width != 0) {
+ double offset = kThumbRadius / width;
+ current_position += offset - 2 * offset * current_position;
+ }
+
MediaControlSliderElement::Position before_segment(0, 0);
MediaControlSliderElement::Position after_segment(0, 0);
@@ -259,11 +272,11 @@ void MediaControlTimelineElement::Trace(blink::Visitor* visitor) {
}
bool MediaControlTimelineElement::BeginScrubbingEvent(Event& event) {
- if (event.type() == EventTypeNames::touchstart) {
+ if (event.type() == event_type_names::kTouchstart) {
is_touching_ = true;
return true;
}
- if (event.type() == EventTypeNames::pointerdown)
+ if (event.type() == event_type_names::kPointerdown)
return IsValidPointerEvent(event);
return false;
@@ -282,14 +295,14 @@ void MediaControlTimelineElement::OnControlsShown() {
bool MediaControlTimelineElement::EndScrubbingEvent(Event& event) {
if (is_touching_) {
- if (event.type() == EventTypeNames::touchend ||
- event.type() == EventTypeNames::touchcancel ||
- event.type() == EventTypeNames::change) {
+ if (event.type() == event_type_names::kTouchend ||
+ event.type() == event_type_names::kTouchcancel ||
+ event.type() == event_type_names::kChange) {
is_touching_ = false;
return true;
}
- } else if (event.type() == EventTypeNames::pointerup ||
- event.type() == EventTypeNames::pointercancel) {
+ } else if (event.type() == event_type_names::kPointerup ||
+ event.type() == event_type_names::kPointercancel) {
return IsValidPointerEvent(event);
}
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element_test.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element_test.cc
index b0697b0be55..9e1eb2d0d8b 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element_test.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_element_test.cc
@@ -17,21 +17,23 @@ namespace blink {
class MediaControlTimelineElementTest : public PageTestBase {
public:
- static PointerEventInit GetValidPointerEventInit() {
- PointerEventInit init;
- init.setIsPrimary(true);
- init.setButton(static_cast<int>(WebPointerProperties::Button::kLeft));
+ static PointerEventInit* GetValidPointerEventInit() {
+ PointerEventInit* init = PointerEventInit::Create();
+ init->setIsPrimary(true);
+ init->setButton(static_cast<int>(WebPointerProperties::Button::kLeft));
return init;
}
- static TouchEventInit GetValidTouchEventInit() { return TouchEventInit(); }
+ static TouchEventInit* GetValidTouchEventInit() {
+ return TouchEventInit::Create();
+ }
void SetUp() override {
PageTestBase::SetUp(IntSize(100, 100));
video_ = HTMLVideoElement::Create(GetDocument());
- controls_ = new MediaControlsImpl(*video_);
- timeline_ = new MediaControlTimelineElement(*controls_);
+ controls_ = MakeGarbageCollected<MediaControlsImpl>(*video_);
+ timeline_ = MakeGarbageCollected<MediaControlTimelineElement>(*controls_);
controls_->InitializeControls();
@@ -63,8 +65,8 @@ TEST_F(MediaControlTimelineElementTest, PointerDownRightClickNoOp) {
Video()->Play();
ASSERT_FALSE(Video()->paused());
- PointerEventInit init = GetValidPointerEventInit();
- init.setButton(static_cast<int>(WebPointerProperties::Button::kRight));
+ PointerEventInit* init = GetValidPointerEventInit();
+ init->setButton(static_cast<int>(WebPointerProperties::Button::kRight));
Timeline()->DispatchEvent(*PointerEvent::Create("pointerdown", init));
EXPECT_FALSE(Video()->paused());
}
@@ -73,8 +75,8 @@ TEST_F(MediaControlTimelineElementTest, PointerDownNotPrimaryNoOp) {
Video()->Play();
ASSERT_FALSE(Video()->paused());
- PointerEventInit init = GetValidPointerEventInit();
- init.setIsPrimary(false);
+ PointerEventInit* init = GetValidPointerEventInit();
+ init->setIsPrimary(false);
Timeline()->DispatchEvent(*PointerEvent::Create("pointerdown", init));
EXPECT_FALSE(Video()->paused());
}
@@ -97,8 +99,8 @@ TEST_F(MediaControlTimelineElementTest, PointerUpRightClickNoOp) {
Timeline()->DispatchEvent(
*PointerEvent::Create("pointerdown", GetValidPointerEventInit()));
- PointerEventInit init = GetValidPointerEventInit();
- init.setButton(static_cast<int>(WebPointerProperties::Button::kRight));
+ PointerEventInit* init = GetValidPointerEventInit();
+ init->setButton(static_cast<int>(WebPointerProperties::Button::kRight));
Timeline()->DispatchEvent(*PointerEvent::Create("pointerup", init));
EXPECT_TRUE(Video()->paused());
}
@@ -110,8 +112,8 @@ TEST_F(MediaControlTimelineElementTest, PointerUpNotPrimaryNoOp) {
Timeline()->DispatchEvent(
*PointerEvent::Create("pointerdown", GetValidPointerEventInit()));
- PointerEventInit init = GetValidPointerEventInit();
- init.setIsPrimary(false);
+ PointerEventInit* init = GetValidPointerEventInit();
+ init->setIsPrimary(false);
Timeline()->DispatchEvent(*PointerEvent::Create("pointerup", init));
EXPECT_TRUE(Video()->paused());
}
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element.cc
index fae04b5917a..3b9c4470345 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element.cc
@@ -46,7 +46,7 @@ MediaControlToggleClosedCaptionsButtonElement::
MediaControlToggleClosedCaptionsButtonElement(
MediaControlsImpl& media_controls)
: MediaControlInputElement(media_controls, kMediaShowClosedCaptionsButton) {
- setType(InputTypeNames::button);
+ setType(input_type_names::kButton);
SetShadowPseudoId(
AtomicString("-webkit-media-controls-toggle-closed-captions-button"));
SetClass(kClosedCaptionClass, UseClosedCaptionsIcon());
@@ -104,7 +104,7 @@ MediaControlToggleClosedCaptionsButtonElement::GetNameForHistograms() const {
void MediaControlToggleClosedCaptionsButtonElement::DefaultEventHandler(
Event& event) {
- if (event.type() == EventTypeNames::click) {
+ if (event.type() == event_type_names::kClick) {
if (MediaElement().textTracks()->length() == 1) {
// If only one track exists, toggle it on/off
if (MediaElement().textTracks()->HasShowingTracks())
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element_test.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element_test.cc
index 76086f07951..aa591e2fd23 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element_test.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element_test.cc
@@ -39,7 +39,8 @@ class MediaControlToggleClosedCaptionsButtonElementTest : public PageTestBase {
media_controls_ =
static_cast<MediaControlsImpl*>(media_element_->GetMediaControls());
captions_overflow_button_ =
- new MediaControlToggleClosedCaptionsButtonElement(*media_controls_);
+ MakeGarbageCollected<MediaControlToggleClosedCaptionsButtonElement>(
+ *media_controls_);
}
protected:
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_volume_slider_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_volume_slider_element.cc
index 2ffacc5f603..c5dc536c6d0 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_volume_slider_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/elements/media_control_volume_slider_element.cc
@@ -10,21 +10,16 @@
#include "third_party/blink/renderer/core/html/media/html_media_element.h"
#include "third_party/blink/renderer/core/html_names.h"
#include "third_party/blink/renderer/core/layout/layout_object.h"
+#include "third_party/blink/renderer/modules/media_controls/elements/media_control_consts.h"
#include "third_party/blink/renderer/modules/media_controls/elements/media_control_elements_helper.h"
#include "third_party/blink/renderer/modules/media_controls/media_controls_impl.h"
namespace blink {
-namespace {
-
-const char kClosedCSSClass[] = "closed";
-
-} // anonymous namespace
-
MediaControlVolumeSliderElement::MediaControlVolumeSliderElement(
MediaControlsImpl& media_controls)
: MediaControlSliderElement(media_controls, kMediaVolumeSlider) {
- setAttribute(HTMLNames::maxAttr, "1");
+ setAttribute(html_names::kMaxAttr, "1");
SetShadowPseudoId(AtomicString("-webkit-media-controls-volume-slider"));
SetVolumeInternal(MediaElement().volume());
@@ -78,30 +73,30 @@ void MediaControlVolumeSliderElement::DefaultEventHandler(Event& event) {
MaybeRecordInteracted();
}
- if (event.type() == EventTypeNames::pointerdown) {
+ if (event.type() == event_type_names::kPointerdown) {
Platform::Current()->RecordAction(
UserMetricsAction("Media.Controls.VolumeChangeBegin"));
}
- if (event.type() == EventTypeNames::pointerup) {
+ if (event.type() == event_type_names::kPointerup) {
Platform::Current()->RecordAction(
UserMetricsAction("Media.Controls.VolumeChangeEnd"));
}
- if (event.type() == EventTypeNames::input) {
+ if (event.type() == event_type_names::kInput) {
double volume = value().ToDouble();
MediaElement().setVolume(volume);
MediaElement().setMuted(false);
SetVolumeInternal(volume);
}
- if (event.type() == EventTypeNames::mouseover ||
- event.type() == EventTypeNames::focus) {
+ if (event.type() == event_type_names::kMouseover ||
+ event.type() == event_type_names::kFocus) {
GetMediaControls().OpenVolumeSliderIfNecessary();
}
- if (event.type() == EventTypeNames::mouseout ||
- event.type() == EventTypeNames::blur) {
+ if (event.type() == event_type_names::kMouseout ||
+ event.type() == event_type_names::kBlur) {
GetMediaControls().CloseVolumeSliderIfNecessary();
}
}