PassRefPtrWillBeRawPtr<VTTCueBox> VTTCue::getDisplayTree() { ASSERT(track() && track()->isRendered() && isActive()); if (!m_displayTree) { m_displayTree = VTTCueBox::create(document(), this); m_displayTree->appendChild(m_cueBackgroundBox); } ASSERT(m_displayTree->firstChild() == m_cueBackgroundBox); if (!m_displayTreeShouldChange) { // Apply updated user style overrides for text tracks when display tree doesn't change. // This ensures that the track settings are refreshed when the video is // replayed or when the user slides back to an already rendered track. applyUserOverrideCSSProperties(); return m_displayTree; } createVTTNodeTree(); m_cueBackgroundBox->removeChildren(); m_vttNodeTree->cloneChildNodes(m_cueBackgroundBox.get()); VTTDisplayParameters displayParameters = calculateDisplayParameters(); m_displayTree->applyCSSProperties(displayParameters); // Apply user override settings for text tracks applyUserOverrideCSSProperties(); m_displayTreeShouldChange = false; return m_displayTree; }
VTTCueBox* VTTCue::getDisplayTree() { ASSERT(track() && track()->isRendered() && isActive()); if (!m_displayTree) { m_displayTree = VTTCueBox::create(document()); m_displayTree->appendChild(m_cueBackgroundBox); } ASSERT(m_displayTree->firstChild() == m_cueBackgroundBox); if (!m_displayTreeShouldChange) { // Apply updated user style overrides for text tracks when display tree doesn't change. // This ensures that the track settings are refreshed when the video is // replayed or when the user slides back to an already rendered track. applyUserOverrideCSSProperties(); return m_displayTree; } createVTTNodeTree(); m_cueBackgroundBox->removeChildren(); m_vttNodeTree->cloneChildNodes(m_cueBackgroundBox.get()); // TODO(philipj): The region identifier may be non-empty without there being // a corresponding region, in which case this VTTCueBox will be added // directly to the text track container in updateDisplay(). if (regionId().isEmpty()) { VTTDisplayParameters displayParameters = calculateDisplayParameters(); m_displayTree->applyCSSProperties(displayParameters); } else { m_displayTree->setInlineStyleProperty(CSSPropertyPosition, CSSValueRelative); } // Apply user override settings for text tracks applyUserOverrideCSSProperties(); m_displayTreeShouldChange = false; return m_displayTree; }