Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(62)

Side by Side Diff: Source/core/html/track/vtt/VTTCue.cpp

Issue 939193002: Remove TextTrackCue::notifyRegionWhenRemovingDisplayTree (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Hoist removeDisplayTree-call from setIsActive. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/html/track/vtt/VTTCue.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013, Opera Software ASA. All rights reserved. 2 * Copyright (c) 2013, Opera Software ASA. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 , m_text(text) 222 , m_text(text)
223 , m_linePosition(std::numeric_limits<float>::quiet_NaN()) 223 , m_linePosition(std::numeric_limits<float>::quiet_NaN())
224 , m_textPosition(std::numeric_limits<float>::quiet_NaN()) 224 , m_textPosition(std::numeric_limits<float>::quiet_NaN())
225 , m_cueSize(100) 225 , m_cueSize(100)
226 , m_writingDirection(Horizontal) 226 , m_writingDirection(Horizontal)
227 , m_cueAlignment(Middle) 227 , m_cueAlignment(Middle)
228 , m_vttNodeTree(nullptr) 228 , m_vttNodeTree(nullptr)
229 , m_cueBackgroundBox(HTMLDivElement::create(document)) 229 , m_cueBackgroundBox(HTMLDivElement::create(document))
230 , m_snapToLines(true) 230 , m_snapToLines(true)
231 , m_displayTreeShouldChange(true) 231 , m_displayTreeShouldChange(true)
232 , m_notifyRegion(true)
233 { 232 {
234 UseCounter::count(document, UseCounter::VTTCue); 233 UseCounter::count(document, UseCounter::VTTCue);
235 } 234 }
236 235
237 VTTCue::~VTTCue() 236 VTTCue::~VTTCue()
238 { 237 {
239 // Using oilpan, if m_displayTree is in the document it will strongly keep 238 // Using oilpan, if m_displayTree is in the document it will strongly keep
240 // the cue alive. Thus, if the cue is dead, either m_displayTree is not in 239 // the cue alive. Thus, if the cue is dead, either m_displayTree is not in
241 // the document or the entire document is dead too. 240 // the document or the entire document is dead too.
242 #if !ENABLE(OILPAN) 241 #if !ENABLE(OILPAN)
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 void VTTCue::setRegionId(const String& regionId) 492 void VTTCue::setRegionId(const String& regionId)
494 { 493 {
495 if (m_regionId == regionId) 494 if (m_regionId == regionId)
496 return; 495 return;
497 496
498 cueWillChange(); 497 cueWillChange();
499 m_regionId = regionId; 498 m_regionId = regionId;
500 cueDidChange(); 499 cueDidChange();
501 } 500 }
502 501
503 void VTTCue::notifyRegionWhenRemovingDisplayTree(bool notifyRegion)
504 {
505 m_notifyRegion = notifyRegion;
506 }
507
508 float VTTCue::calculateComputedLinePosition() const 502 float VTTCue::calculateComputedLinePosition() const
509 { 503 {
510 // http://dev.w3.org/html5/webvtt/#dfn-text-track-cue-computed-line-position 504 // http://dev.w3.org/html5/webvtt/#dfn-text-track-cue-computed-line-position
511 // A text track cue has a text track cue computed line position whose value 505 // A text track cue has a text track cue computed line position whose value
512 // is that returned by the following algorithm, which is defined in terms 506 // is that returned by the following algorithm, which is defined in terms
513 // of the other aspects of the cue: 507 // of the other aspects of the cue:
514 508
515 // 1. If the text track cue line position is numeric, the text track cue 509 // 1. If the text track cue line position is numeric, the text track cue
516 // snap-to-lines flag of the text track cue is not set, and the text 510 // snap-to-lines flag of the text track cue is not set, and the text
517 // track cue line position is negative or greater than 100, then return 511 // track cue line position is negative or greater than 100, then return
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
842 // normally would in CSS, it is instead forcibly wrapped at the box's edge.) 836 // normally would in CSS, it is instead forcibly wrapped at the box's edge.)
843 displayTree->applyCSSProperties(displayParameters); 837 displayTree->applyCSSProperties(displayParameters);
844 838
845 m_displayTreeShouldChange = false; 839 m_displayTreeShouldChange = false;
846 840
847 // 10.15. Let cue's text track cue display state have the CSS boxes in 841 // 10.15. Let cue's text track cue display state have the CSS boxes in
848 // boxes. 842 // boxes.
849 return displayTree.release(); 843 return displayTree.release();
850 } 844 }
851 845
852 void VTTCue::removeDisplayTree() 846 void VTTCue::removeDisplayTree(RemovalNotification removalNotification)
853 { 847 {
854 if (m_notifyRegion && track()->regions()) { 848 if (removalNotification == NotifyRegion && track()->regions()) {
855 // The region needs to be informed about the cue removal. 849 // The region needs to be informed about the cue removal.
856 VTTRegion* region = track()->regions()->getRegionById(m_regionId); 850 VTTRegion* region = track()->regions()->getRegionById(m_regionId);
857 if (region) 851 if (region)
858 region->willRemoveVTTCueBox(m_displayTree.get()); 852 region->willRemoveVTTCueBox(m_displayTree.get());
859 } 853 }
860 854
861 if (m_displayTree) 855 if (m_displayTree)
862 m_displayTree->remove(ASSERT_NO_EXCEPTION); 856 m_displayTree->remove(ASSERT_NO_EXCEPTION);
863 } 857 }
864 858
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
1128 1122
1129 DEFINE_TRACE(VTTCue) 1123 DEFINE_TRACE(VTTCue)
1130 { 1124 {
1131 visitor->trace(m_vttNodeTree); 1125 visitor->trace(m_vttNodeTree);
1132 visitor->trace(m_cueBackgroundBox); 1126 visitor->trace(m_cueBackgroundBox);
1133 visitor->trace(m_displayTree); 1127 visitor->trace(m_displayTree);
1134 TextTrackCue::trace(visitor); 1128 TextTrackCue::trace(visitor);
1135 } 1129 }
1136 1130
1137 } // namespace blink 1131 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/html/track/vtt/VTTCue.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698