Title: [171148] trunk
- Revision
- 171148
- Author
- [email protected]
- Date
- 2014-07-16 11:05:09 -0700 (Wed, 16 Jul 2014)
Log Message
[MSE] REGRESSION(r171033): ASSERT in WebCore::MediaSource::onReadyStateChange()
https://bugs.webkit.org/show_bug.cgi?id=134941
Reviewed by Eric Carlson.
Source/WebCore:
Only do our modified-order change of the readyState if the error parameter is empty,
as that's the only case where a duration change will cause an inadvertant readyState
change.
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::streamEndedWithError):
LayoutTests:
Update media/media-source/media-source-end-of-stream.html to use an empty parameter, rather
than an empty string parameter, to endOfStream().
* media/media-source/media-source-end-of-stream-expected.txt:
* media/media-source/media-source-end-of-stream.html:
Modified Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (171147 => 171148)
--- trunk/LayoutTests/ChangeLog 2014-07-16 16:42:00 UTC (rev 171147)
+++ trunk/LayoutTests/ChangeLog 2014-07-16 18:05:09 UTC (rev 171148)
@@ -1,3 +1,16 @@
+2014-07-16 Jer Noble <[email protected]>
+
+ [MSE] REGRESSION(r171033): ASSERT in WebCore::MediaSource::onReadyStateChange()
+ https://bugs.webkit.org/show_bug.cgi?id=134941
+
+ Reviewed by Eric Carlson.
+
+ Update media/media-source/media-source-end-of-stream.html to use an empty parameter, rather
+ than an empty string parameter, to endOfStream().
+
+ * media/media-source/media-source-end-of-stream-expected.txt:
+ * media/media-source/media-source-end-of-stream.html:
+
2014-07-16 Jinwoo Song <[email protected]>
[EFL] Unreviewed EFL gardening.
Modified: trunk/LayoutTests/media/media-source/media-source-end-of-stream-expected.txt (171147 => 171148)
--- trunk/LayoutTests/media/media-source/media-source-end-of-stream-expected.txt 2014-07-16 16:42:00 UTC (rev 171147)
+++ trunk/LayoutTests/media/media-source/media-source-end-of-stream-expected.txt 2014-07-16 18:05:09 UTC (rev 171148)
@@ -30,7 +30,7 @@
RUN(sourceBuffer = source.addSourceBuffer("video/mock; codecs=mock"))
RUN(sourceBuffer.appendBuffer(initSegment))
EVENT(updateend)
-RUN(source.endOfStream(""))
+RUN(source.endOfStream())
EVENT(suspend)
EXPECTED (video.networkState == '1') OK
END OF TEST
Modified: trunk/LayoutTests/media/media-source/media-source-end-of-stream.html (171147 => 171148)
--- trunk/LayoutTests/media/media-source/media-source-end-of-stream.html 2014-07-16 16:42:00 UTC (rev 171147)
+++ trunk/LayoutTests/media/media-source/media-source-end-of-stream.html 2014-07-16 18:05:09 UTC (rev 171148)
@@ -95,7 +95,7 @@
function updateEnd5() {
waitForEventOnce('suspend', videoSuspend5);
- run('source.endOfStream("")');
+ run('source.endOfStream()');
}
function videoSuspend5() {
Modified: trunk/Source/WebCore/ChangeLog (171147 => 171148)
--- trunk/Source/WebCore/ChangeLog 2014-07-16 16:42:00 UTC (rev 171147)
+++ trunk/Source/WebCore/ChangeLog 2014-07-16 18:05:09 UTC (rev 171148)
@@ -1,3 +1,17 @@
+2014-07-16 Jer Noble <[email protected]>
+
+ [MSE] REGRESSION(r171033): ASSERT in WebCore::MediaSource::onReadyStateChange()
+ https://bugs.webkit.org/show_bug.cgi?id=134941
+
+ Reviewed by Eric Carlson.
+
+ Only do our modified-order change of the readyState if the error parameter is empty,
+ as that's the only case where a duration change will cause an inadvertant readyState
+ change.
+
+ * Modules/mediasource/MediaSource.cpp:
+ (WebCore::MediaSource::streamEndedWithError):
+
2014-07-16 Alexey Proskuryakov <[email protected]>
Remove svn:executable property erroneously added in <http://trac.webkit.org/changeset/171144> somehow.
Modified: trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp (171147 => 171148)
--- trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp 2014-07-16 16:42:00 UTC (rev 171147)
+++ trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp 2014-07-16 18:05:09 UTC (rev 171148)
@@ -453,7 +453,16 @@
// 2. Notify the media element that it now has all of the media data.
m_private->markEndOfStream(MediaSourcePrivate::EosNoError);
- } else if (error == network) {
+ }
+
+ // NOTE: Do steps 1 & 2 after step 3 (with an empty error) to avoid the MediaSource's readyState being re-opened by a
+ // remove() operation resulting from a duration change.
+ // FIXME: Re-number or update this section once <https://www.w3.org/Bugs/Public/show_bug.cgi?id=26316> is resolved.
+ // 1. Change the readyState attribute value to "ended".
+ // 2. Queue a task to fire a simple event named sourceended at the MediaSource.
+ setReadyState(endedKeyword());
+
+ if (error == network) {
// ↳ If error is set to "network"
ASSERT(m_mediaElement);
if (m_mediaElement->readyState() == HTMLMediaElement::HAVE_NOTHING) {
@@ -484,18 +493,11 @@
// NOTE: This step is handled by HTMLMediaElement::mediaLoadingFailedFatally().
m_mediaElement->mediaLoadingFailedFatally(MediaPlayer::DecodeError);
}
- } else {
+ } else if (!error.isEmpty()) {
// ↳ Otherwise
// Throw an INVALID_ACCESS_ERR exception.
ec = INVALID_ACCESS_ERR;
}
-
- // NOTE: Do steps 1 & 2 after step 3 to avoid the MediaSource's readyState being re-opened by a
- // remove() operation resulting from a duration change.
- // FIXME: Re-number or update this section once <https://www.w3.org/Bugs/Public/show_bug.cgi?id=26316> is resolved.
- // 1. Change the readyState attribute value to "ended".
- // 2. Queue a task to fire a simple event named sourceended at the MediaSource.
- setReadyState(endedKeyword());
}
SourceBuffer* MediaSource::addSourceBuffer(const String& type, ExceptionCode& ec)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes