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

Unified Diff: Source/core/html/HTMLMediaElement.cpp

Issue 20123003: [oilpan] The Node hierarchy should have correct accept method chains (Closed) Base URL: svn://svn.chromium.org/blink/branches/oilpan
Patch Set: Created 7 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/html/HTMLMediaElement.cpp
diff --git a/Source/core/html/HTMLMediaElement.cpp b/Source/core/html/HTMLMediaElement.cpp
index 42cc83a9bf4b607fcb738555d6388a217896763d..d7d2c21be9277d6f340824ee9458cbb4980c5119 100644
--- a/Source/core/html/HTMLMediaElement.cpp
+++ b/Source/core/html/HTMLMediaElement.cpp
@@ -664,7 +664,7 @@ void HTMLMediaElement::prepareForLoad()
// 1 - Abort any already-running instance of the resource selection algorithm for this element.
m_loadState = WaitingForSource;
- m_currentSourceNode = 0;
+ m_currentSourceNode = nullptr;
// 2 - If there are any tasks from the media element's media element event task source in
// one of the task queues, then remove those tasks.
@@ -781,8 +781,8 @@ void HTMLMediaElement::selectMediaResource()
// source element child in tree order.
if (node) {
mode = children;
- m_nextChildNodeToConsider = node;
- m_currentSourceNode = 0;
+ m_nextChildNodeToConsider = adoptRawResult(node);
+ m_currentSourceNode = nullptr;
} else {
// Otherwise the media element has neither a src attribute nor a source element
// child: set the networkState to NETWORK_EMPTY, and abort these steps; the
@@ -1381,7 +1381,7 @@ void HTMLMediaElement::noneSupported()
stopPeriodicTimers();
m_loadState = WaitingForSource;
- m_currentSourceNode = 0;
+ m_currentSourceNode = nullptr;
// 4.8.10.5
// 6 - Reaching this step indicates that the media resource failed to load or that the given
@@ -1439,7 +1439,7 @@ void HTMLMediaElement::mediaEngineError(PassRefPtr<MediaError> err)
setShouldDelayLoadEvent(false);
// 6 - Abort the overall resource selection algorithm.
- m_currentSourceNode = 0;
+ m_currentSourceNode = nullptr;
}
void HTMLMediaElement::cancelPendingEventsAndCallbacks()
@@ -3027,8 +3027,8 @@ bool HTMLMediaElement::havePotentialSourceChild()
{
// Stash the current <source> node and next nodes so we can restore them after checking
// to see there is another potential.
- RefPtr<HTMLSourceElement> currentSourceNode = m_currentSourceNode;
- RefPtr<Node> nextNode = m_nextChildNodeToConsider;
+ Handle<HTMLSourceElement> currentSourceNode = m_currentSourceNode;
+ Handle<Node> nextNode = m_nextChildNodeToConsider;
KURL nextURL = selectNextSourceChild(0, 0, DoNothing);
@@ -3069,7 +3069,7 @@ KURL HTMLMediaElement::selectNextSourceChild(ContentType* contentType, String* k
for (unsigned i = 0; !canUseSourceElement && i < potentialSourceNodes.size(); ++i) {
Mads Ager (chromium) 2013/07/25 13:35:12 HandleScope?
haraken 2013/07/25 13:44:49 Done.
node = potentialSourceNodes[i].get();
- if (lookingForStartNode && m_nextChildNodeToConsider != node)
+ if (lookingForStartNode && Handle<Node>(m_nextChildNodeToConsider).raw() != node)
continue;
lookingForStartNode = false;
@@ -3138,16 +3138,16 @@ check_again:
*contentType = ContentType(type);
if (keySystem)
*keySystem = system;
- m_currentSourceNode = source;
- m_nextChildNodeToConsider = source->nextSibling();
+ m_currentSourceNode = adoptRawResult(source);
+ m_nextChildNodeToConsider = adoptRawResult(source->nextSibling());
} else {
- m_currentSourceNode = 0;
- m_nextChildNodeToConsider = 0;
+ m_currentSourceNode = nullptr;
+ m_nextChildNodeToConsider = nullptr;
}
#if !LOG_DISABLED
if (shouldLog)
- LOG(Media, "HTMLMediaElement::selectNextSourceChild -> %p, %s", m_currentSourceNode.get(), canUseSourceElement ? urlForLoggingMedia(mediaURL).utf8().data() : "");
+ LOG(Media, "HTMLMediaElement::selectNextSourceChild -> %p, %s", Handle<HTMLSourceElement>(m_currentSourceNode).raw(), canUseSourceElement ? urlForLoggingMedia(mediaURL).utf8().data() : "");
#endif
return canUseSourceElement ? mediaURL : KURL();
}
@@ -3172,13 +3172,13 @@ void HTMLMediaElement::sourceWasAdded(HTMLSourceElement* source)
// the media element's resource selection algorithm.
if (networkState() == HTMLMediaElement::NETWORK_EMPTY) {
scheduleDelayedAction(LoadMediaResource);
- m_nextChildNodeToConsider = source;
+ m_nextChildNodeToConsider = adoptRawResult(source);
return;
}
if (m_currentSourceNode && source == m_currentSourceNode->nextSibling()) {
LOG(Media, "HTMLMediaElement::sourceWasAdded - <source> inserted immediately after current source");
- m_nextChildNodeToConsider = source;
+ m_nextChildNodeToConsider = adoptRawResult(source);
return;
}
@@ -3196,7 +3196,7 @@ void HTMLMediaElement::sourceWasAdded(HTMLSourceElement* source)
m_networkState = NETWORK_LOADING;
// 25. Jump back to the find next candidate step above.
- m_nextChildNodeToConsider = source;
+ m_nextChildNodeToConsider = adoptRawResult(source);
scheduleNextSourceChild();
}
@@ -3211,18 +3211,18 @@ void HTMLMediaElement::sourceWasRemoved(HTMLSourceElement* source)
}
#endif
- if (source != m_currentSourceNode && source != m_nextChildNodeToConsider)
+ if (source != Handle<HTMLSourceElement>(m_currentSourceNode).raw() && source != Handle<Node>(m_nextChildNodeToConsider).raw())
Mads Ager (chromium) 2013/07/25 13:35:12 Do you need the handle wrapping followed by raw()
haraken 2013/07/25 13:44:49 I reverted the members to RefPtrs (and remove thes
return;
- if (source == m_nextChildNodeToConsider) {
+ if (source == Handle<Node>(m_nextChildNodeToConsider).raw()) {
if (m_currentSourceNode)
- m_nextChildNodeToConsider = m_currentSourceNode->nextSibling();
- LOG(Media, "HTMLMediaElement::sourceRemoved - m_nextChildNodeToConsider set to %p", m_nextChildNodeToConsider.get());
- } else if (source == m_currentSourceNode) {
+ m_nextChildNodeToConsider = adoptRawResult(m_currentSourceNode->nextSibling());
+ LOG(Media, "HTMLMediaElement::sourceRemoved - m_nextChildNodeToConsider set to %p", Handle<Node>(m_nextChildNodeToConsider).raw());
+ } else if (source == Handle<HTMLSourceElement>(m_currentSourceNode).raw()) {
// Clear the current source node pointer, but don't change the movie as the spec says:
// 4.8.8 - Dynamically modifying a source element and its attribute when the element is already
// inserted in a video or audio element will have no effect.
- m_currentSourceNode = 0;
+ m_currentSourceNode = nullptr;
LOG(Media, "HTMLMediaElement::sourceRemoved - m_currentSourceNode set to 0");
}
}
@@ -3679,7 +3679,7 @@ void HTMLMediaElement::userCancelledLoad()
setShouldDelayLoadEvent(false);
// 6 - Abort the overall resource selection algorithm.
- m_currentSourceNode = 0;
+ m_currentSourceNode = nullptr;
// Reset m_readyState since m_player is gone.
m_readyState = HAVE_NOTHING;
@@ -4458,4 +4458,11 @@ void HTMLMediaElement::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) con
}
+void HTMLMediaElement::acceptHeapVisitor(Visitor* visitor) const
+{
+ visitor->visit(m_currentSourceNode);
+ visitor->visit(m_nextChildNodeToConsider);
+ HTMLElement::acceptHeapVisitor(visitor);
+}
+
}

Powered by Google App Engine
This is Rietveld 408576698