| Index: third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
|
| diff --git a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
|
| index b20a17edb06b0a4bee5031030d34d2891a6fd04a..7baca6a7afa57ce30160e885acfa2c1eaf10f626 100644
|
| --- a/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
|
| +++ b/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
|
| @@ -464,7 +464,8 @@ HTMLMediaElement::HTMLMediaElement(const QualifiedName& tagName,
|
| m_autoplayUmaHelper(AutoplayUmaHelper::create(this)),
|
| m_remotePlaybackClient(nullptr),
|
| m_autoplayVisibilityObserver(nullptr),
|
| - m_mediaControls(nullptr) {
|
| + m_mediaControls(nullptr),
|
| + m_controlsList(HTMLMediaElementControlsList::create(this)) {
|
| BLINK_MEDIA_LOG << "HTMLMediaElement(" << (void*)this << ")";
|
|
|
| m_lockedPendingUserGesture = computeLockedPendingUserGesture(document);
|
| @@ -597,6 +598,8 @@ void HTMLMediaElement::parseAttribute(
|
| } else if (name == controlsAttr) {
|
| UseCounter::count(document(),
|
| UseCounter::HTMLMediaElementControlsAttribute);
|
| + if (m_controlsList->value() != fastGetAttribute(controlsAttr))
|
| + m_controlsList->setValue(fastGetAttribute(controlsAttr));
|
| updateControlsVisibility();
|
| } else if (name == preloadAttr) {
|
| setPlayerPreload();
|
| @@ -2437,6 +2440,16 @@ bool HTMLMediaElement::shouldShowControls(
|
| return false;
|
| }
|
|
|
| +DOMTokenList* HTMLMediaElement::controlsList() const {
|
| + return m_controlsList.get();
|
| +}
|
| +
|
| +void HTMLMediaElement::controlsListValueWasSet() {
|
| + // Update the attribute value which will update the controls visibility.
|
| + if (fastGetAttribute(controlsAttr) != m_controlsList->value())
|
| + setAttribute(controlsAttr, m_controlsList->value());
|
| +}
|
| +
|
| double HTMLMediaElement::volume() const {
|
| return m_volume;
|
| }
|
| @@ -3823,6 +3836,7 @@ DEFINE_TRACE(HTMLMediaElement) {
|
| visitor->trace(m_srcObject);
|
| visitor->trace(m_autoplayVisibilityObserver);
|
| visitor->trace(m_mediaControls);
|
| + visitor->trace(m_controlsList);
|
| visitor->template registerWeakMembers<HTMLMediaElement,
|
| &HTMLMediaElement::clearWeakMembers>(
|
| this);
|
|
|