| Index: third_party/WebKit/Source/core/html/track/vtt/VTTRegion.cpp
|
| diff --git a/third_party/WebKit/Source/core/html/track/vtt/VTTRegion.cpp b/third_party/WebKit/Source/core/html/track/vtt/VTTRegion.cpp
|
| index 1333aa4b7ebd613eb368c84716c549ae86400bc2..bf9b0addd00e247e7956e12fe32ff423a8cddc72 100644
|
| --- a/third_party/WebKit/Source/core/html/track/vtt/VTTRegion.cpp
|
| +++ b/third_party/WebKit/Source/core/html/track/vtt/VTTRegion.cpp
|
| @@ -40,7 +40,6 @@
|
| #include "core/html/track/vtt/VTTParser.h"
|
| #include "core/html/track/vtt/VTTScanner.h"
|
| #include "wtf/MathExtras.h"
|
| -#include "wtf/text/StringBuilder.h"
|
|
|
| #define VTT_LOG_LEVEL 3
|
|
|
| @@ -54,7 +53,7 @@ namespace blink {
|
| static const float defaultWidth = 100;
|
|
|
| // The region has, by default, 3 lines of text.
|
| -static const long defaultHeightInLines = 3;
|
| +static const int defaultHeightInLines = 3;
|
|
|
| // The region and viewport are anchored in the bottom left corner.
|
| static const float defaultAnchorPointX = 0;
|
| @@ -106,7 +105,7 @@ void VTTRegion::setWidth(double value, ExceptionState& exceptionState) {
|
| m_width = value;
|
| }
|
|
|
| -void VTTRegion::setLines(long value, ExceptionState& exceptionState) {
|
| +void VTTRegion::setLines(int value, ExceptionState& exceptionState) {
|
| if (value < 0) {
|
| exceptionState.throwDOMException(
|
| IndexSizeError,
|
| @@ -156,20 +155,7 @@ void VTTRegion::setScroll(const AtomicString& value) {
|
| m_scroll = value != emptyAtom;
|
| }
|
|
|
| -void VTTRegion::updateParametersFromRegion(VTTRegion* region) {
|
| - m_lines = region->lines();
|
| - m_width = region->width();
|
| -
|
| - m_regionAnchor = FloatPoint(region->regionAnchorX(), region->regionAnchorY());
|
| - m_viewportAnchor =
|
| - FloatPoint(region->viewportAnchorX(), region->viewportAnchorY());
|
| -
|
| - setScroll(region->scroll());
|
| -}
|
| -
|
| void VTTRegion::setRegionSettings(const String& inputString) {
|
| - m_settings = inputString;
|
| -
|
| VTTScanner input(inputString);
|
|
|
| while (!input.isAtEnd()) {
|
| @@ -274,13 +260,6 @@ void VTTRegion::parseSettingValue(RegionSetting setting, VTTScanner& input) {
|
| input.skipRun(valueRun);
|
| }
|
|
|
| -const AtomicString& VTTRegion::textTrackCueContainerShadowPseudoId() {
|
| - DEFINE_STATIC_LOCAL(const AtomicString, trackRegionCueContainerPseudoId,
|
| - ("-webkit-media-text-track-region-container"));
|
| -
|
| - return trackRegionCueContainerPseudoId;
|
| -}
|
| -
|
| const AtomicString& VTTRegion::textTrackCueContainerScrollingClass() {
|
| DEFINE_STATIC_LOCAL(const AtomicString, trackRegionCueContainerScrollingClass,
|
| ("scrolling"));
|
| @@ -288,13 +267,6 @@ const AtomicString& VTTRegion::textTrackCueContainerScrollingClass() {
|
| return trackRegionCueContainerScrollingClass;
|
| }
|
|
|
| -const AtomicString& VTTRegion::textTrackRegionShadowPseudoId() {
|
| - DEFINE_STATIC_LOCAL(const AtomicString, trackRegionShadowPseudoId,
|
| - ("-webkit-media-text-track-region"));
|
| -
|
| - return trackRegionShadowPseudoId;
|
| -}
|
| -
|
| HTMLDivElement* VTTRegion::getDisplayTree(Document& document) {
|
| if (!m_regionDisplayTree) {
|
| m_regionDisplayTree = HTMLDivElement::create(document);
|
| @@ -308,8 +280,7 @@ void VTTRegion::willRemoveVTTCueBox(VTTCueBox* box) {
|
| DVLOG(VTT_LOG_LEVEL) << "willRemoveVTTCueBox";
|
| DCHECK(m_cueContainer->contains(box));
|
|
|
| - double boxHeight = box->getBoundingClientRect()->bottom() -
|
| - box->getBoundingClientRect()->top();
|
| + double boxHeight = box->getBoundingClientRect()->height();
|
|
|
| m_cueContainer->classList().remove(textTrackCueContainerScrollingClass(),
|
| ASSERT_NO_EXCEPTION);
|
| @@ -348,23 +319,19 @@ void VTTRegion::displayLastVTTCueBox() {
|
| float regionBottom = m_regionDisplayTree->getBoundingClientRect()->bottom();
|
|
|
| // Find first cue that is not entirely displayed and scroll it upwards.
|
| - for (Element* child = ElementTraversal::firstChild(*m_cueContainer);
|
| - child && !m_scrollTimer.isActive();
|
| - child = ElementTraversal::nextSibling(*child)) {
|
| - ClientRect* clientRect = child->getBoundingClientRect();
|
| - float childTop = clientRect->top();
|
| + for (Element& child : ElementTraversal::childrenOf(*m_cueContainer)) {
|
| + ClientRect* clientRect = child.getBoundingClientRect();
|
| float childBottom = clientRect->bottom();
|
|
|
| if (regionBottom >= childBottom)
|
| continue;
|
|
|
| - float height = childBottom - childTop;
|
| -
|
| - m_currentTop -= std::min(height, childBottom - regionBottom);
|
| + m_currentTop -= std::min(clientRect->height(), childBottom - regionBottom);
|
| m_cueContainer->setInlineStyleProperty(CSSPropertyTop, m_currentTop,
|
| CSSPrimitiveValue::UnitType::Pixels);
|
|
|
| startTimer();
|
| + break;
|
| }
|
| }
|
|
|
| @@ -412,11 +379,13 @@ void VTTRegion::prepareRegionDisplayTree() {
|
| m_cueContainer->setInlineStyleProperty(CSSPropertyTop, 0.0,
|
| CSSPrimitiveValue::UnitType::Pixels);
|
|
|
| - m_cueContainer->setShadowPseudoId(textTrackCueContainerShadowPseudoId());
|
| + m_cueContainer->setShadowPseudoId(
|
| + AtomicString("-webkit-media-text-track-region-container"));
|
| m_regionDisplayTree->appendChild(m_cueContainer);
|
|
|
| // 7.5 Every WebVTT region object is initialised with the following CSS
|
| - m_regionDisplayTree->setShadowPseudoId(textTrackRegionShadowPseudoId());
|
| + m_regionDisplayTree->setShadowPseudoId(
|
| + AtomicString("-webkit-media-text-track-region"));
|
| }
|
|
|
| void VTTRegion::startTimer() {
|
|
|