Index: third_party/WebKit/Source/core/html/shadow/MediaControlElementTypes.cpp |
diff --git a/third_party/WebKit/Source/core/html/shadow/MediaControlElementTypes.cpp b/third_party/WebKit/Source/core/html/shadow/MediaControlElementTypes.cpp |
index 45baeee686422bc5e60875db56b63dcc492aa276..465ed99e1186edcc2b2ee5ec437f5577696fedbf 100644 |
--- a/third_party/WebKit/Source/core/html/shadow/MediaControlElementTypes.cpp |
+++ b/third_party/WebKit/Source/core/html/shadow/MediaControlElementTypes.cpp |
@@ -33,9 +33,12 @@ |
#include "core/CSSValueKeywords.h" |
#include "core/HTMLNames.h" |
#include "core/css/StylePropertySet.h" |
+#include "core/dom/Text.h" |
#include "core/events/MouseEvent.h" |
+#include "core/html/HTMLLabelElement.h" |
#include "core/html/HTMLMediaElement.h" |
#include "core/html/shadow/MediaControls.h" |
+#include "platform/text/PlatformLocale.h" |
namespace blink { |
@@ -116,10 +119,30 @@ void MediaControlElement::setDisplayType(MediaControlElementType displayType) |
object->setShouldDoFullPaintInvalidation(); |
} |
+void MediaControlElement::shouldShowButtonInOverflowMenu(bool shouldShow) |
+{ |
+ if (!hasOverflowButton()) |
+ return; |
+ |
+ // TODO: It's not clear to me what the best way is to change the visibility |
+ // is of an Element. Changing the CSS like this seems to work, but I would |
+ // think there'd be a better way to only change the visibility. |
+ if (shouldShow) |
+ m_overflowMenuElement->setShadowPseudoId("-internal-media-controls-overflow-menu-list-item"); |
+ else |
+ m_overflowMenuElement->setShadowPseudoId("-internal-media-controls-overflow-menu-list-item-hidden"); |
+} |
+ |
+String MediaControlElement::getText() |
+{ |
+ return mediaElement().locale().queryString(getOverflowStringName()); |
+} |
+ |
DEFINE_TRACE(MediaControlElement) |
{ |
visitor->trace(m_mediaControls); |
visitor->trace(m_element); |
+ visitor->trace(m_overflowMenuElement); |
} |
// ---------------------------- |
@@ -149,6 +172,15 @@ bool MediaControlInputElement::isMouseFocusable() const |
return false; |
} |
+HTMLLabelElement* MediaControlInputElement::createOverflowMenuElement(MediaControls& mediaControls, MediaControlInputElement* child) |
+{ |
+ HTMLLabelElement* element = HTMLLabelElement::create(mediaControls.document()); |
+ element->setShadowPseudoId(AtomicString("-internal-media-controls-overflow-menu-list-item")); |
+ element->appendChild(child); |
+ element->appendChild(Text::create(mediaControls.document(), child->getText())); |
+ return element; |
+} |
+ |
DEFINE_TRACE(MediaControlInputElement) |
{ |
MediaControlElement::trace(visitor); |