Chromium Code Reviews| 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..c390c8399f71dafe2ff1f80bfeef6aac72d475c1 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); |
| @@ -598,6 +599,13 @@ void HTMLMediaElement::parseAttribute( |
| UseCounter::count(document(), |
| UseCounter::HTMLMediaElementControlsAttribute); |
| updateControlsVisibility(); |
| + } else if (name == controlslistAttr) { |
| + UseCounter::count(document(), |
| + UseCounter::HTMLMediaElementControlsListAttribute); |
| + if (params.oldValue != params.newValue) { |
| + m_controlsList->setValue(params.newValue); |
| + updateControlsVisibility(); |
|
mlamouri (slow - plz ping)
2017/03/09 16:45:45
should this be:
```
if (mediaControls())
mediaCo
whywhat
2017/03/09 16:59:42
Done.
|
| + } |
| } else if (name == preloadAttr) { |
| setPlayerPreload(); |
| } else if (name == disableremoteplaybackAttr) { |
| @@ -2437,6 +2445,19 @@ 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(controlslistAttr) != m_controlsList->value()) { |
|
mlamouri (slow - plz ping)
2017/03/09 16:45:45
nit: early return is da best :)
whywhat
2017/03/09 16:59:43
Done.
|
| + setSynchronizedLazyAttribute(controlslistAttr, m_controlsList->value()); |
| + if (mediaControls()) |
| + mediaControls()->onControlsListUpdated(); |
| + } |
| +} |
| + |
| double HTMLMediaElement::volume() const { |
| return m_volume; |
| } |
| @@ -3823,6 +3844,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); |