Chromium Code Reviews| Index: third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp |
| diff --git a/third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp b/third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp |
| index e1ed80c3699d370c24aa5d41402d28839550eef8..b1110471c2a102548bd6c74ee72c9b130b9d9fc4 100644 |
| --- a/third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp |
| +++ b/third_party/WebKit/Source/core/html/shadow/MediaControlElements.cpp |
| @@ -36,6 +36,7 @@ |
| #include "core/dom/shadow/ShadowRoot.h" |
| #include "core/events/MouseEvent.h" |
| #include "core/frame/LocalFrame.h" |
| +#include "core/html/HTMLAnchorElement.h" |
| #include "core/html/HTMLLabelElement.h" |
| #include "core/html/HTMLMediaSource.h" |
| #include "core/html/HTMLSpanElement.h" |
| @@ -632,7 +633,7 @@ MediaControlDownloadButtonElement::MediaControlDownloadButtonElement(MediaContro |
| { |
| } |
| -MediaControlDownloadButtonElement* MediaControlDownloadButtonElement::create(MediaControls& mediaControls, Document* document) |
| +MediaControlDownloadButtonElement* MediaControlDownloadButtonElement::create(MediaControls& mediaControls) |
| { |
| MediaControlDownloadButtonElement* button = new MediaControlDownloadButtonElement(mediaControls); |
| button->ensureUserAgentShadowRoot(); |
| @@ -658,8 +659,23 @@ bool MediaControlDownloadButtonElement::shouldDisplayDownloadButton() |
| void MediaControlDownloadButtonElement::defaultEventHandler(Event* event) |
| { |
| - // TODO(kdsilva): The implementation will be finished as part of |
| - // https://crbug.com/601247 |
| + const KURL& url = mediaElement().currentSrc(); |
| + if (event->type() == EventTypeNames::click && url != KURL()) { |
|
whywhat
2016/09/13 15:52:16
nit: perhaps replace url != KURL() with !(url.IsNu
kdsilva
2016/09/13 17:33:01
Done.
|
| + if (!m_anchor) { |
| + HTMLAnchorElement* anchor = HTMLAnchorElement::create(document()); |
| + anchor->setAttribute(HTMLNames::downloadAttr, ""); |
| + m_anchor = anchor; |
| + } |
| + m_anchor->setURL(url); |
| + m_anchor->dispatchSimulatedClick(event); |
| + } |
| + MediaControlInputElement::defaultEventHandler(event); |
| +} |
| + |
| +DEFINE_TRACE(MediaControlDownloadButtonElement) |
| +{ |
| + visitor->trace(m_anchor); |
| + MediaControlInputElement::trace(visitor); |
| } |
| // ---------------------------- |