summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/media_controls/touchless/elements')
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_bottom_container_element.cc30
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_bottom_container_element.h7
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.cc8
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.h3
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_overlay_element.cc10
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.cc16
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.h1
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.cc5
-rw-r--r--chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.h1
9 files changed, 77 insertions, 4 deletions
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_bottom_container_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_bottom_container_element.cc
index 4542382a807..d70899258eb 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_bottom_container_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_bottom_container_element.cc
@@ -4,8 +4,10 @@
#include "third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_bottom_container_element.h"
+#include "third_party/blink/renderer/core/html/media/html_media_element.h"
#include "third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.h"
#include "third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.h"
+#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace blink {
@@ -25,6 +27,14 @@ MediaControlsTouchlessBottomContainerElement::
ParserAppendChild(time_display_element_);
ParserAppendChild(timeline_element_);
+
+ event_listener_ =
+ MakeGarbageCollected<MediaControlsSharedHelpers::TransitionEventListener>(
+ this,
+ WTF::BindRepeating(&MediaControlsTouchlessBottomContainerElement::
+ HandleTransitionEndEvent,
+ WrapWeakPersistent(this)));
+ event_listener_->Attach();
}
LayoutObject*
@@ -37,10 +47,30 @@ MediaControlsTouchlessBottomContainerElement::TimeDisplayLayoutObject() {
return time_display_element_->GetLayoutObject();
}
+void MediaControlsTouchlessBottomContainerElement::MakeOpaque(
+ bool should_hide) {
+ SetDisplayed(true);
+ MediaElement().MediaControlsDidBecomeVisible();
+ MediaControlsTouchlessElement::MakeOpaque(should_hide);
+}
+
+void MediaControlsTouchlessBottomContainerElement::HandleTransitionEndEvent() {
+ SetDisplayed(false);
+}
+
+void MediaControlsTouchlessBottomContainerElement::SetDisplayed(
+ bool displayed) {
+ if (displayed)
+ RemoveInlineStyleProperty(CSSPropertyID::kDisplay);
+ else
+ SetInlineStyleProperty(CSSPropertyID::kDisplay, CSSValueID::kNone);
+}
+
void MediaControlsTouchlessBottomContainerElement::Trace(
blink::Visitor* visitor) {
visitor->Trace(timeline_element_);
visitor->Trace(time_display_element_);
+ visitor->Trace(event_listener_);
MediaControlsTouchlessElement::Trace(visitor);
}
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_bottom_container_element.h b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_bottom_container_element.h
index 34d04de3191..e23acc51a24 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_bottom_container_element.h
+++ b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_bottom_container_element.h
@@ -5,6 +5,7 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_TOUCHLESS_ELEMENTS_MEDIA_CONTROLS_TOUCHLESS_BOTTOM_CONTAINER_ELEMENT_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_TOUCHLESS_ELEMENTS_MEDIA_CONTROLS_TOUCHLESS_BOTTOM_CONTAINER_ELEMENT_H_
+#include "third_party/blink/renderer/modules/media_controls/media_controls_shared_helper.h"
#include "third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.h"
namespace blink {
@@ -20,11 +21,17 @@ class MediaControlsTouchlessBottomContainerElement
MediaControlsTouchlessBottomContainerElement(MediaControlsTouchlessImpl&);
LayoutObject* TimelineLayoutObject();
LayoutObject* TimeDisplayLayoutObject();
+
+ void MakeOpaque(bool);
void Trace(blink::Visitor*) override;
private:
+ void HandleTransitionEndEvent();
+ void SetDisplayed(bool);
+
Member<MediaControlsTouchlessTimelineElement> timeline_element_;
Member<MediaControlsTouchlessTimeDisplayElement> time_display_element_;
+ Member<MediaControlsSharedHelpers::TransitionEventListener> event_listener_;
};
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.cc
index cbbac960438..4c2c2137a2d 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.cc
@@ -17,6 +17,7 @@ namespace {
constexpr WTF::TimeDelta kTimeToHideControl = TimeDelta::FromMilliseconds(3000);
const char kTransparentCSSClass[] = "transparent";
+const char kTransparentImmediateCSSClass[] = "transparent-immediate";
} // namespace
@@ -34,7 +35,7 @@ HTMLMediaElement& MediaControlsTouchlessElement::MediaElement() const {
void MediaControlsTouchlessElement::MakeOpaque(bool should_hide) {
EnsureHideControlTimer();
- classList().Remove(kTransparentCSSClass);
+ removeAttribute("class");
if (hide_control_timer_->IsActive())
StopHideControlTimer();
@@ -43,8 +44,9 @@ void MediaControlsTouchlessElement::MakeOpaque(bool should_hide) {
StartHideControlTimer();
}
-void MediaControlsTouchlessElement::MakeTransparent() {
- classList().Add(kTransparentCSSClass);
+void MediaControlsTouchlessElement::MakeTransparent(bool hide_immediate) {
+ classList().Add(hide_immediate ? kTransparentImmediateCSSClass
+ : kTransparentCSSClass);
}
void MediaControlsTouchlessElement::EnsureHideControlTimer() {
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.h b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.h
index b43c44d21db..f5463bbf466 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.h
+++ b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.h
@@ -27,12 +27,13 @@ class MediaControlsTouchlessElement
void Trace(blink::Visitor* visitor) override;
void MakeOpaque(bool /** True if control should hide after timer fired */);
- void MakeTransparent();
+ void MakeTransparent(bool = false /** True if hide immediately */);
// Non-touch media event listener observer implementation.
void OnFocusIn() override {}
void OnTimeUpdate() override {}
void OnDurationChange() override {}
+ void OnSeeking() override {}
void OnLoadingProgress() override {}
void OnPlay() override {}
void OnPause() override {}
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_overlay_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_overlay_element.cc
index 5e008b0b004..7ac1f447124 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_overlay_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_overlay_element.cc
@@ -8,6 +8,8 @@
#include "third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_seek_button_element.h"
#include "third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_volume_button_element.h"
#include "third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_impl.h"
+#include "third_party/blink/renderer/platform/text/platform_locale.h"
+#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
namespace blink {
@@ -39,6 +41,14 @@ MediaControlsTouchlessOverlayElement::MediaControlsTouchlessOverlayElement(
ParserAppendChild(play_button);
ParserAppendChild(seek_forward_button);
ParserAppendChild(volume_down_button);
+
+ StringBuilder aria_label;
+ aria_label.Append(
+ GetLocale().QueryString(WebLocalizedString::kAXMediaTouchLessSeekAction));
+ aria_label.Append(" ");
+ aria_label.Append(GetLocale().QueryString(
+ WebLocalizedString::kAXMediaTouchLessVolumeAction));
+ setAttribute(html_names::kAriaLabelAttr, aria_label.ToAtomicString());
}
void MediaControlsTouchlessOverlayElement::Trace(blink::Visitor* visitor) {
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.cc
index 261f52bb2d8..5c6db6bfa01 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.cc
@@ -7,6 +7,7 @@
#include "third_party/blink/renderer/core/html/media/html_media_element.h"
#include "third_party/blink/renderer/modules/media_controls/media_controls_shared_helper.h"
#include "third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_impl.h"
+#include "third_party/blink/renderer/platform/text/platform_locale.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
namespace blink {
@@ -27,6 +28,11 @@ void MediaControlsTouchlessTimeDisplayElement::OnTimeUpdate() {
UpdateTimeDisplay();
}
+void MediaControlsTouchlessTimeDisplayElement::OnSeeking() {
+ current_time_ = MediaElement().currentTime();
+ UpdateTimeDisplay();
+}
+
void MediaControlsTouchlessTimeDisplayElement::OnDurationChange() {
duration_ = MediaElement().duration();
UpdateTimeDisplay();
@@ -42,6 +48,16 @@ void MediaControlsTouchlessTimeDisplayElement::UpdateTimeDisplay() {
builder.Append(" / ");
builder.Append(MediaControlsSharedHelpers::FormatTime(duration_));
setInnerText(builder.ToAtomicString(), ASSERT_NO_EXCEPTION);
+
+ StringBuilder aria_label;
+ aria_label.Append(GetLocale().QueryString(
+ WebLocalizedString::kAXMediaCurrentTimeDisplay,
+ MediaControlsSharedHelpers::FormatTime(current_time_)));
+ aria_label.Append(" ");
+ aria_label.Append(GetLocale().QueryString(
+ WebLocalizedString::kAXMediaTimeRemainingDisplay,
+ MediaControlsSharedHelpers::FormatTime(duration_)));
+ setAttribute(html_names::kAriaLabelAttr, aria_label.ToAtomicString());
}
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.h b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.h
index 6a8455a559e..0134b091c4c 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.h
+++ b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.h
@@ -18,6 +18,7 @@ class MediaControlsTouchlessTimeDisplayElement
// MediaControlsTouchlessMediaEventListenerObserver overrides
void OnTimeUpdate() override;
+ void OnSeeking() override;
void OnDurationChange() override;
void Trace(blink::Visitor* visitor) override;
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.cc b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.cc
index 57bd4a639c8..413ae227057 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.cc
+++ b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.cc
@@ -34,6 +34,11 @@ void MediaControlsTouchlessTimelineElement::OnTimeUpdate() {
UpdateBars();
}
+void MediaControlsTouchlessTimelineElement::OnSeeking() {
+ current_time_ = MediaElement().currentTime();
+ UpdateBars();
+}
+
void MediaControlsTouchlessTimelineElement::OnDurationChange() {
duration_ = MediaElement().duration();
UpdateBars();
diff --git a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.h b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.h
index b1416ce9ae2..c8a17e7ac55 100644
--- a/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.h
+++ b/chromium/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.h
@@ -17,6 +17,7 @@ class MediaControlsTouchlessTimelineElement
// MediaControlsTouchlessMediaEventListenerObserver overrides
void OnTimeUpdate() override;
+ void OnSeeking() override;
void OnDurationChange() override;
void OnLoadingProgress() override;