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

Side by Side Diff: Source/core/html/track/LoadableTextTrack.cpp

Issue 244493002: Oilpan: add transition types to track interface objects. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Add crbug.com/365260 crashing test + expectation Created 6 years, 8 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
« no previous file with comments | « Source/core/html/track/LoadableTextTrack.h ('k') | Source/core/html/track/TextTrack.h » ('j') | 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) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. 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 28 matching lines...) Expand all
39 LoadableTextTrack::LoadableTextTrack(HTMLTrackElement* track) 39 LoadableTextTrack::LoadableTextTrack(HTMLTrackElement* track)
40 : TextTrack(track->document(), emptyAtom, emptyAtom, emptyAtom, emptyAtom, T rackElement) 40 : TextTrack(track->document(), emptyAtom, emptyAtom, emptyAtom, emptyAtom, T rackElement)
41 , m_trackElement(track) 41 , m_trackElement(track)
42 , m_loadTimer(this, &LoadableTextTrack::loadTimerFired) 42 , m_loadTimer(this, &LoadableTextTrack::loadTimerFired)
43 , m_isDefault(false) 43 , m_isDefault(false)
44 { 44 {
45 } 45 }
46 46
47 LoadableTextTrack::~LoadableTextTrack() 47 LoadableTextTrack::~LoadableTextTrack()
48 { 48 {
49 #if !ENABLE(OILPAN)
49 ASSERT(!m_trackElement); 50 ASSERT(!m_trackElement);
51 #endif
50 } 52 }
51 53
54 #if !ENABLE(OILPAN)
52 void LoadableTextTrack::clearTrackElement() 55 void LoadableTextTrack::clearTrackElement()
53 { 56 {
54 m_trackElement = 0; 57 m_trackElement = nullptr;
55 } 58 }
59 #endif
56 60
57 void LoadableTextTrack::setMode(const AtomicString& mode) 61 void LoadableTextTrack::setMode(const AtomicString& mode)
58 { 62 {
59 TextTrack::setMode(mode); 63 TextTrack::setMode(mode);
60 if (!m_trackElement) 64 if (!m_trackElement)
61 return; 65 return;
62 66
63 if (m_trackElement->readyState() == HTMLTrackElement::NONE) 67 if (m_trackElement->readyState() == HTMLTrackElement::NONE)
64 m_trackElement->scheduleLoad(); 68 m_trackElement->scheduleLoad();
65 } 69 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 // origin of the media element's Document, and the default origin behaviour set to fail. 108 // origin of the media element's Document, and the default origin behaviour set to fail.
105 m_loader = TextTrackLoader::create(*this, m_trackElement->document()); 109 m_loader = TextTrackLoader::create(*this, m_trackElement->document());
106 if (!m_loader->load(m_url, m_trackElement->mediaElementCrossOriginAttribute( ))) 110 if (!m_loader->load(m_url, m_trackElement->mediaElementCrossOriginAttribute( )))
107 m_trackElement->didCompleteLoad(HTMLTrackElement::Failure); 111 m_trackElement->didCompleteLoad(HTMLTrackElement::Failure);
108 } 112 }
109 113
110 void LoadableTextTrack::newCuesAvailable(TextTrackLoader* loader) 114 void LoadableTextTrack::newCuesAvailable(TextTrackLoader* loader)
111 { 115 {
112 ASSERT_UNUSED(loader, m_loader == loader); 116 ASSERT_UNUSED(loader, m_loader == loader);
113 117
114 Vector<RefPtr<VTTCue> > newCues; 118 WillBeHeapVector<RefPtrWillBeMember<VTTCue> > newCues;
115 m_loader->getNewCues(newCues); 119 m_loader->getNewCues(newCues);
116 120
117 if (!m_cues) 121 if (!m_cues)
118 m_cues = TextTrackCueList::create(); 122 m_cues = TextTrackCueList::create();
119 123
120 for (size_t i = 0; i < newCues.size(); ++i) { 124 for (size_t i = 0; i < newCues.size(); ++i) {
121 newCues[i]->setTrack(this); 125 newCues[i]->setTrack(this);
122 m_cues->add(newCues[i]); 126 m_cues->add(newCues[i].release());
123 } 127 }
124 128
125 if (mediaElement()) 129 if (mediaElement())
126 mediaElement()->textTrackAddCues(this, m_cues.get()); 130 mediaElement()->textTrackAddCues(this, m_cues.get());
127 } 131 }
128 132
129 void LoadableTextTrack::cueLoadingCompleted(TextTrackLoader* loader, bool loadin gFailed) 133 void LoadableTextTrack::cueLoadingCompleted(TextTrackLoader* loader, bool loadin gFailed)
130 { 134 {
131 ASSERT_UNUSED(loader, m_loader == loader); 135 ASSERT_UNUSED(loader, m_loader == loader);
132 136
133 if (!m_trackElement) 137 if (!m_trackElement)
134 return; 138 return;
135 139
136 m_trackElement->didCompleteLoad(loadingFailed ? HTMLTrackElement::Failure : HTMLTrackElement::Success); 140 m_trackElement->didCompleteLoad(loadingFailed ? HTMLTrackElement::Failure : HTMLTrackElement::Success);
137 } 141 }
138 142
139 void LoadableTextTrack::newRegionsAvailable(TextTrackLoader* loader) 143 void LoadableTextTrack::newRegionsAvailable(TextTrackLoader* loader)
140 { 144 {
141 ASSERT_UNUSED(loader, m_loader == loader); 145 ASSERT_UNUSED(loader, m_loader == loader);
142 146
143 Vector<RefPtr<VTTRegion> > newRegions; 147 WillBeHeapVector<RefPtrWillBeMember<VTTRegion> > newRegions;
144 m_loader->getNewRegions(newRegions); 148 m_loader->getNewRegions(newRegions);
145 149
146 for (size_t i = 0; i < newRegions.size(); ++i) { 150 for (size_t i = 0; i < newRegions.size(); ++i) {
147 newRegions[i]->setTrack(this); 151 newRegions[i]->setTrack(this);
148 regions()->add(newRegions[i]); 152 regions()->add(newRegions[i]);
149 } 153 }
150 } 154 }
151 155
152 size_t LoadableTextTrack::trackElementIndex() 156 size_t LoadableTextTrack::trackElementIndex()
153 { 157 {
154 ASSERT(m_trackElement); 158 ASSERT(m_trackElement);
155 ASSERT(m_trackElement->parentNode()); 159 ASSERT(m_trackElement->parentNode());
156 160
157 size_t index = 0; 161 size_t index = 0;
158 for (HTMLTrackElement* track = Traversal<HTMLTrackElement>::firstChild(*m_tr ackElement->parentNode()); track; track = Traversal<HTMLTrackElement>::nextSibli ng(*track)) { 162 for (HTMLTrackElement* track = Traversal<HTMLTrackElement>::firstChild(*m_tr ackElement->parentNode()); track; track = Traversal<HTMLTrackElement>::nextSibli ng(*track)) {
159 if (!track->parentNode()) 163 if (!track->parentNode())
160 continue; 164 continue;
161 if (track == m_trackElement) 165 if (track == m_trackElement)
162 return index; 166 return index;
163 ++index; 167 ++index;
164 } 168 }
165 ASSERT_NOT_REACHED(); 169 ASSERT_NOT_REACHED();
166 170
167 return 0; 171 return 0;
168 } 172 }
169 173
174 void LoadableTextTrack::trace(Visitor* visitor)
175 {
176 visitor->trace(m_trackElement);
177 visitor->trace(m_loader);
178 TextTrack::trace(visitor);
179 }
180
170 } // namespace WebCore 181 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/html/track/LoadableTextTrack.h ('k') | Source/core/html/track/TextTrack.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698