Diff
Modified: trunk/LayoutTests/ChangeLog (138319 => 138320)
--- trunk/LayoutTests/ChangeLog 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/LayoutTests/ChangeLog 2012-12-21 00:23:01 UTC (rev 138320)
@@ -1,3 +1,27 @@
+2012-12-20 Sheriff Bot <[email protected]>
+
+ Unreviewed, rolling out r138270.
+ http://trac.webkit.org/changeset/138270
+ https://bugs.webkit.org/show_bug.cgi?id=105589
+
+ Many media tests are failing/crashing intermittently, often
+ pointing at WebCore::HTMLTrackElement::didCompleteLoad as
+ culprit (Requested by dino_ on #webkit).
+
+ * fast/events/constructors/track-event-constructor.html:
+ * http/tests/security/text-track-crossorigin.html:
+ * media/track/track-add-track-expected.txt:
+ * media/track/track-add-track.html:
+ * media/track/track-element-load-event-expected.txt: Removed.
+ * media/track/track-element-load-event.html: Removed.
+ * media/track/track-load-from-src-readyState.html:
+ * platform/chromium/TestExpectations:
+ * platform/efl/TestExpectations:
+ * platform/gtk/TestExpectations:
+ * platform/mac/TestExpectations:
+ * platform/qt/TestExpectations:
+ * platform/win/TestExpectations:
+
2012-12-20 Ryosuke Niwa <[email protected]>
Add a crash test expectation on Mac. ap is looking into the problem as we speak.
Modified: trunk/LayoutTests/fast/events/constructors/track-event-constructor.html (138319 => 138320)
--- trunk/LayoutTests/fast/events/constructors/track-event-constructor.html 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/LayoutTests/fast/events/constructors/track-event-constructor.html 2012-12-21 00:23:01 UTC (rev 138320)
@@ -55,7 +55,6 @@
trackElement = document.createElement('track');
video.appendChild(trackElement);
- trackElement.track.mode = "hidden";
trackElement.addEventListener('load', test);
trackElement.src='';
Modified: trunk/LayoutTests/http/tests/security/text-track-crossorigin.html (138319 => 138320)
--- trunk/LayoutTests/http/tests/security/text-track-crossorigin.html 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/LayoutTests/http/tests/security/text-track-crossorigin.html 2012-12-21 00:23:01 UTC (rev 138320)
@@ -79,7 +79,6 @@
function start()
{
trackElement = document.querySelectorAll('track')[0];
- trackElement.track.mode = "hidden";
log('Loading <b>without</b> Access-Control-Allow-Origin header, no "crossorigin" attribute on <video>');
var url = ""
trackElement.setAttribute('src', url);
Modified: trunk/LayoutTests/media/track/track-add-track-expected.txt (138319 => 138320)
--- trunk/LayoutTests/media/track/track-add-track-expected.txt 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/LayoutTests/media/track/track-add-track-expected.txt 2012-12-21 00:23:01 UTC (rev 138320)
@@ -4,9 +4,8 @@
RUN(trackElement = document.createElement('track'))
RUN(video.appendChild(trackElement))
RUN(trackElement.src = '')
-RUN(trackElement.track.mode = 'hidden')
EXPECTED (video.textTracks.length == '1') OK
-EXPECTED (trackElement.readyState == '0') OK
+EXPECTED (trackElement.readyState == '1') OK
EVENT(addtrack)
EXPECTED (event.target == '[object TextTrackList]') OK
EXPECTED (event instanceof window.TrackEvent == 'true') OK
Modified: trunk/LayoutTests/media/track/track-add-track.html (138319 => 138320)
--- trunk/LayoutTests/media/track/track-add-track.html 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/LayoutTests/media/track/track-add-track.html 2012-12-21 00:23:01 UTC (rev 138320)
@@ -41,9 +41,8 @@
video.textTracks.addEventListener("addtrack", trackAdded);
run("trackElement.src = ''");
- run("trackElement.track.mode = 'hidden'");
testExpected("video.textTracks.length", 1);
- testExpected("trackElement.readyState", HTMLTrackElement.NONE);
+ testExpected("trackElement.readyState", HTMLTrackElement.LOADING);
}
</script>
Deleted: trunk/LayoutTests/media/track/track-element-load-event-expected.txt (138319 => 138320)
--- trunk/LayoutTests/media/track/track-element-load-event-expected.txt 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/LayoutTests/media/track/track-element-load-event-expected.txt 2012-12-21 00:23:01 UTC (rev 138320)
@@ -1,8 +0,0 @@
-
-PASS Load event on the track element, src / mode / append
-PASS Load event on the track element, src / append / mode
-PASS Load event on the track element, mode / append / src
-PASS Load event on the track element, mode / src / append
-PASS Load event on the track element, append / src / mode
-PASS Load event on the track element, append / mode / src
-
Deleted: trunk/LayoutTests/media/track/track-element-load-event.html (138319 => 138320)
--- trunk/LayoutTests/media/track/track-element-load-event.html 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/LayoutTests/media/track/track-element-load-event.html 2012-12-21 00:23:01 UTC (rev 138320)
@@ -1,73 +0,0 @@
-<!doctype html>
-<html>
- <head>
- <title>Load event on the track element</title>
- <script src=""
- <script src=""
- </head>
- <body>
- <div id="log"></div>
- <script type="text/_javascript_">
-
- var video;
-
- // Setup
-
- setup(function(){
- video = document.createElement('video');
- document.body.appendChild(video);
- }, {timeout: 5000});
-
- // Tests
- testCommands(["src", "mode", "append"]);
- testCommands(["src", "append", "mode"]);
- testCommands(["mode", "append", "src"]);
- testCommands(["mode", "src", "append"]);
- testCommands(["append", "src", "mode"]);
- testCommands(["append", "mode", "src"]);
-
- // Utilities
-
- function testCommands(commands)
- {
- var t = async_test(document.title + ", " + commands.join(" / "));
- t.step(function()
- {
- var count = 0;
- // Create the default <track> element.
- var track = document.createElement('track');
- track.kind = "subtitles";
- // Add the "load" event listener.
- track.addEventListener("load", t.step_func(function(event)
- {
- // Clean up for next test.
- video.removeChild(track);
-
- // Ensure we only got the event after all commands ran.
- if (count === commands.length)
- t.done();
- }));
- // Run each command.
- commands.forEach(function(command)
- {
- count++;
- runCommand(track, command);
- });
- });
- };
-
- function runCommand(track, command)
- {
- if (command === "src")
- track.src = "" + encodeURIComponent("WEBVTT\n\n00:00:00.000 --> 00:00:01.000\ntest\n");
-
- if (command === "mode")
- track.track.mode = 'hidden';
-
- if (command === "append")
- video.appendChild(track);
- };
-
- </script>
- </body>
-</html>
Modified: trunk/LayoutTests/media/track/track-load-from-src-readyState.html (138319 => 138320)
--- trunk/LayoutTests/media/track/track-load-from-src-readyState.html 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/LayoutTests/media/track/track-load-from-src-readyState.html 2012-12-21 00:23:01 UTC (rev 138320)
@@ -24,7 +24,7 @@
testExpected("track.readyState", HTMLTrackElement.NONE);
track.addEventListener("load", function () { trackLoaded(); }, true);
track.src = ""
- track.track.mode = "hidden";
+ track.mode = "hidden";
</script>
</body>
Modified: trunk/LayoutTests/platform/chromium/TestExpectations (138319 => 138320)
--- trunk/LayoutTests/platform/chromium/TestExpectations 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/LayoutTests/platform/chromium/TestExpectations 2012-12-21 00:23:01 UTC (rev 138320)
@@ -3008,12 +3008,6 @@
webkit.org/b/103926 media/track/opera/track/webvtt/rendering/adhoc/cue_font_size_transition.html [ Skip ]
webkit.org/b/103926 media/track/opera/track/webvtt/rendering/adhoc/voice_with_evil_timestamp.html [ Skip ]
-# After fixing webkit.org/b/103258, these tests fail when they used to simply timeout.
-# At any rate, there is no regression, just a different type of failure.
-webkit.org/b/105536 media/track/opera/interfaces/TextTrack/addCue.html [ Failure ]
-webkit.org/b/105536 media/track/opera/interfaces/TextTrackCue/endTime.html [ Failure ]
-webkit.org/b/105536 media/track/opera/interfaces/TextTrackCue/startTime.html [ Failure ]
-
webkit.org/b/72271 [ SnowLeopard Debug ] fast/dom/node-iterator-reference-node-moved-crash.html [ Crash Pass ]
webkit.org/b/72376 [ Win ] fast/forms/file/input-file-label.html [ Failure Pass ]
Modified: trunk/LayoutTests/platform/efl/TestExpectations (138319 => 138320)
--- trunk/LayoutTests/platform/efl/TestExpectations 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/LayoutTests/platform/efl/TestExpectations 2012-12-21 00:23:01 UTC (rev 138320)
@@ -790,12 +790,6 @@
webkit.org/b/103926 media/track/opera/track/webvtt/rendering/adhoc/cue_font_size_transition.html [ Skip ]
webkit.org/b/103926 media/track/opera/track/webvtt/rendering/adhoc/voice_with_evil_timestamp.html [ Skip ]
-# After fixing webkit.org/b/103258, these tests fail when they used to simply timeout.
-# At any rate, there is no regression, just a different type of failure.
-webkit.org/b/105536 media/track/opera/interfaces/TextTrack/addCue.html [ Failure ]
-webkit.org/b/105536 media/track/opera/interfaces/TextTrackCue/endTime.html [ Failure ]
-webkit.org/b/105536 media/track/opera/interfaces/TextTrackCue/startTime.html [ Failure ]
-
webkit.org/b/100636 [ Debug ] jquery/traversing.html [ Failure Crash Pass ]
webkit.org/b/102928 svg/foreignObject/viewport-foreignobject-crash.html [ Crash Failure Pass ]
Modified: trunk/LayoutTests/platform/gtk/TestExpectations (138319 => 138320)
--- trunk/LayoutTests/platform/gtk/TestExpectations 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/LayoutTests/platform/gtk/TestExpectations 2012-12-21 00:23:01 UTC (rev 138320)
@@ -493,12 +493,6 @@
webkit.org/b/103926 media/track/opera/track/webvtt/rendering/adhoc/cue_font_size_transition.html [ Skip ]
webkit.org/b/103926 media/track/opera/track/webvtt/rendering/adhoc/voice_with_evil_timestamp.html [ Skip ]
-# After fixing webkit.org/b/103258, these tests fail when they used to simply timeout.
-# At any rate, there is no regression, just a different type of failure.
-webkit.org/b/105536 media/track/opera/interfaces/TextTrack/addCue.html [ Failure ]
-webkit.org/b/105536 media/track/opera/interfaces/TextTrackCue/endTime.html [ Failure ]
-webkit.org/b/105536 media/track/opera/interfaces/TextTrackCue/startTime.html [ Failure ]
-
# No support for exposing in-band text tracks
webkit.org/b/103771 media/track/track-in-band.html [ Failure ]
webkit.org/b/103771 media/track/track-in-band-cues-added-once.html [ Timeout ]
Modified: trunk/LayoutTests/platform/mac/TestExpectations (138319 => 138320)
--- trunk/LayoutTests/platform/mac/TestExpectations 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/LayoutTests/platform/mac/TestExpectations 2012-12-21 00:23:01 UTC (rev 138320)
@@ -471,6 +471,7 @@
media/track/track-webvtt-tc028-unsupported-markup.html
# Opera-submitted tests to W3C for <track>, a lot of failures still.
+# Opera-submitted tests to W3C for <track>, a lot of failures still.
webkit.org/b/103926 media/track/opera/idl/media-idl-tests.html [ Skip ]
webkit.org/b/103926 media/track/opera/interfaces/HTMLElement/HTMLMediaElement/crossOrigin.html [ Skip ]
webkit.org/b/103926 media/track/opera/interfaces/HTMLElement/HTMLTrackElement/kind.html [ Skip ]
@@ -504,12 +505,6 @@
webkit.org/b/103926 media/track/opera/track/webvtt/rendering/adhoc/cue_font_size_transition.html [ Skip ]
webkit.org/b/103926 media/track/opera/track/webvtt/rendering/adhoc/voice_with_evil_timestamp.html [ Skip ]
-# After fixing webkit.org/b/103258, these tests fail when they used to simply timeout.
-# At any rate, there is no regression, just a different type of failure.
-webkit.org/b/105536 media/track/opera/interfaces/TextTrack/addCue.html [ Failure ]
-webkit.org/b/105536 media/track/opera/interfaces/TextTrackCue/endTime.html [ Failure ]
-webkit.org/b/105536 media/track/opera/interfaces/TextTrackCue/startTime.html [ Failure ]
-
# Tests for MediaSource API. Feature is not yet functional.
# https://bugs.webkit.org/show_bug.cgi?id=64731
http/tests/media/media-source/
Modified: trunk/LayoutTests/platform/qt/TestExpectations (138319 => 138320)
--- trunk/LayoutTests/platform/qt/TestExpectations 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/LayoutTests/platform/qt/TestExpectations 2012-12-21 00:23:01 UTC (rev 138320)
@@ -927,12 +927,6 @@
webkit.org/b/103926 media/track/opera/track/webvtt/rendering/adhoc/cue_font_size_transition.html [ Skip ]
webkit.org/b/103926 media/track/opera/track/webvtt/rendering/adhoc/voice_with_evil_timestamp.html [ Skip ]
-# After fixing webkit.org/b/103258, these tests fail when they used to simply timeout.
-# At any rate, there is no regression, just a different type of failure.
-webkit.org/b/105536 media/track/opera/interfaces/TextTrack/addCue.html [ Failure ]
-webkit.org/b/105536 media/track/opera/interfaces/TextTrackCue/endTime.html [ Failure ]
-webkit.org/b/105536 media/track/opera/interfaces/TextTrackCue/startTime.html [ Failure ]
-
# https://bugs.webkit.org/show_bug.cgi?id=38376
media/media-document-audio-size.html
Modified: trunk/LayoutTests/platform/win/TestExpectations (138319 => 138320)
--- trunk/LayoutTests/platform/win/TestExpectations 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/LayoutTests/platform/win/TestExpectations 2012-12-21 00:23:01 UTC (rev 138320)
@@ -1585,12 +1585,6 @@
webkit.org/b/103926 media/track/opera/track/webvtt/rendering/adhoc/cue_font_size_transition.html [ Skip ]
webkit.org/b/103926 media/track/opera/track/webvtt/rendering/adhoc/voice_with_evil_timestamp.html [ Skip ]
-# After fixing webkit.org/b/103258, these tests fail when they used to simply timeout.
-# At any rate, there is no regression, just a different type of failure.
-webkit.org/b/105536 media/track/opera/interfaces/TextTrack/addCue.html [ Failure ]
-webkit.org/b/105536 media/track/opera/interfaces/TextTrackCue/endTime.html [ Failure ]
-webkit.org/b/105536 media/track/opera/interfaces/TextTrackCue/startTime.html [ Failure ]
-
# Tests for MediaSource API. Feature is not yet functional.
# https://bugs.webkit.org/show_bug.cgi?id=64731
http/tests/media/media-source/
Modified: trunk/Source/WebCore/ChangeLog (138319 => 138320)
--- trunk/Source/WebCore/ChangeLog 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/Source/WebCore/ChangeLog 2012-12-21 00:23:01 UTC (rev 138320)
@@ -1,3 +1,25 @@
+2012-12-20 Sheriff Bot <[email protected]>
+
+ Unreviewed, rolling out r138270.
+ http://trac.webkit.org/changeset/138270
+ https://bugs.webkit.org/show_bug.cgi?id=105589
+
+ Many media tests are failing/crashing intermittently, often
+ pointing at WebCore::HTMLTrackElement::didCompleteLoad as
+ culprit (Requested by dino_ on #webkit).
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::textTrackModeChanged):
+ * html/HTMLTrackElement.cpp:
+ (WebCore::HTMLTrackElement::HTMLTrackElement):
+ (WebCore::HTMLTrackElement::insertedInto):
+ (WebCore::HTMLTrackElement::parseAttribute):
+ (WebCore::HTMLTrackElement::scheduleLoad):
+ (WebCore::HTMLTrackElement::textTrackModeChanged):
+ * html/HTMLTrackElement.h:
+ * html/track/TextTrack.cpp:
+ * html/track/TextTrack.h:
+
2012-12-20 Pratik Solanki <[email protected]>
Rename HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) to USE(NETWORK_CFDATA_ARRAY_CALLBACK)
Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (138319 => 138320)
--- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2012-12-21 00:23:01 UTC (rev 138320)
@@ -1351,6 +1351,8 @@
if (track->mode() != TextTrack::disabledKeyword()) {
if (trackElement->readyState() == HTMLTrackElement::LOADED)
textTrackAddCues(track, track->cues());
+ else if (trackElement->readyState() == HTMLTrackElement::NONE)
+ trackElement->scheduleLoad();
// If this is the first added track, create the list of text tracks.
if (!m_textTracks)
Modified: trunk/Source/WebCore/html/HTMLTrackElement.cpp (138319 => 138320)
--- trunk/Source/WebCore/html/HTMLTrackElement.cpp 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/Source/WebCore/html/HTMLTrackElement.cpp 2012-12-21 00:23:01 UTC (rev 138320)
@@ -56,7 +56,6 @@
inline HTMLTrackElement::HTMLTrackElement(const QualifiedName& tagName, Document* document)
: HTMLElement(tagName, document)
- , m_loadTimer(this, &HTMLTrackElement::loadTimerFired)
{
LOG(Media, "HTMLTrackElement::HTMLTrackElement - %p", this);
ASSERT(hasTagName(trackTag));
@@ -75,9 +74,6 @@
Node::InsertionNotificationRequest HTMLTrackElement::insertedInto(ContainerNode* insertionPoint)
{
- // Since we've moved to a new parent, we may now be able to load.
- scheduleLoad();
-
HTMLElement::insertedInto(insertionPoint);
HTMLMediaElement* parent = mediaElement();
if (insertionPoint == parent)
@@ -96,13 +92,10 @@
{
if (RuntimeEnabledFeatures::webkitVideoTrackEnabled()) {
if (name == srcAttr) {
- if (!value.isEmpty())
+ if (!value.isEmpty() && mediaElement())
scheduleLoad();
- else if (m_track)
- m_track->removeAllCues();
-
- // 4.8.10.12.3 Sourcing out-of-band text tracks
- // As the kind, label, and srclang attributes are set, changed, or removed, the text track must update accordingly...
+ // 4.8.10.12.3 Sourcing out-of-band text tracks
+ // As the kind, label, and srclang attributes are set, changed, or removed, the text track must update accordingly...
} else if (name == kindAttr)
track()->setKind(value.lower());
else if (name == labelAttr)
@@ -195,39 +188,21 @@
void HTMLTrackElement::scheduleLoad()
{
- // 1. If another occurrence of this algorithm is already running for this text track and its track element,
- // abort these steps, letting that other algorithm take care of this element.
- if (m_loadTimer.isActive())
- return;
-
if (!RuntimeEnabledFeatures::webkitVideoTrackEnabled())
return;
- // 2. If the text track's text track mode is not set to one of hidden or showing, abort these steps.
- if (ensureTrack()->mode() != TextTrack::hiddenKeyword() && ensureTrack()->mode() != TextTrack::showingKeyword())
- return;
-
- // 3. If the text track's track element does not have a media element as a parent, abort these steps.
if (!mediaElement())
return;
- // 4. Run the remainder of these steps asynchronously, allowing whatever caused these steps to run to continue.
- m_loadTimer.startOneShot(0);
-}
-
-void HTMLTrackElement::loadTimerFired(Timer<HTMLTrackElement>*)
-{
if (!fastHasAttribute(srcAttr))
return;
- // 6. Set the text track readiness state to loading.
+ // 4.8.10.12.3 Sourcing out-of-band text tracks
+
+ // 1. Set the text track readiness state to loading.
setReadyState(HTMLTrackElement::LOADING);
- // 7. Let URL be the track URL of the track element.
KURL url = ""
-
- // 8. If the track element's parent is a media element then let CORS mode be the state of the parent media
- // element's crossorigin content attribute. Otherwise, let CORS mode be No CORS.
if (!canLoadUrl(url)) {
didCompleteLoad(ensureTrack(), HTMLTrackElement::Failure);
return;
@@ -327,10 +302,6 @@
void HTMLTrackElement::textTrackModeChanged(TextTrack* track)
{
- // Since we've moved to a new parent, we may now be able to load.
- if (readyState() == HTMLTrackElement::NONE)
- scheduleLoad();
-
if (HTMLMediaElement* parent = mediaElement())
return parent->textTrackModeChanged(track);
}
Modified: trunk/Source/WebCore/html/HTMLTrackElement.h (138319 => 138320)
--- trunk/Source/WebCore/html/HTMLTrackElement.h 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/Source/WebCore/html/HTMLTrackElement.h 2012-12-21 00:23:01 UTC (rev 138320)
@@ -79,8 +79,6 @@
virtual void removedFrom(ContainerNode*) OVERRIDE;
virtual bool isURLAttribute(const Attribute&) const OVERRIDE;
- void loadTimerFired(Timer<HTMLTrackElement>*);
-
#if ENABLE(MICRODATA)
virtual String itemValueText() const OVERRIDE;
virtual void setItemValueText(const String&, ExceptionCode&) OVERRIDE;
@@ -100,7 +98,6 @@
virtual bool canLoadUrl(const KURL&);
RefPtr<LoadableTextTrack> m_track;
- Timer<HTMLTrackElement> m_loadTimer;
};
}
Modified: trunk/Source/WebCore/html/track/TextTrack.cpp (138319 => 138320)
--- trunk/Source/WebCore/html/track/TextTrack.cpp 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/Source/WebCore/html/track/TextTrack.cpp 2012-12-21 00:23:01 UTC (rev 138320)
@@ -201,20 +201,6 @@
return 0;
}
-void TextTrack::removeAllCues()
-{
- if (!m_cues)
- return;
-
- if (m_client)
- m_client->textTrackRemoveCues(this, m_cues.get());
-
- for (size_t i = 0; i < m_cues->length(); ++i)
- m_cues->item(i)->setTrack(0);
-
- m_cues = 0;
-}
-
TextTrackCueList* TextTrack::activeCues() const
{
// 4.8.10.12.5 If the text track mode ... is not the text track disabled mode,
Modified: trunk/Source/WebCore/html/track/TextTrack.h (138319 => 138320)
--- trunk/Source/WebCore/html/track/TextTrack.h 2012-12-21 00:21:04 UTC (rev 138319)
+++ trunk/Source/WebCore/html/track/TextTrack.h 2012-12-21 00:23:01 UTC (rev 138320)
@@ -123,8 +123,6 @@
virtual bool isDefault() const { return false; }
virtual void setIsDefault(bool) { }
- void removeAllCues();
-
protected:
TextTrack(ScriptExecutionContext*, TextTrackClient*, const AtomicString& kind, const AtomicString& label, const AtomicString& language, TextTrackType);