Bug 1361944. P1 - add a crash test. draft
authorJW Wang <jwwang@mozilla.com>
Thu, 04 May 2017 14:23:23 +0800
changeset 572441 38018e6eda8d6248035c51b289a3630f160e5448
parent 572402 4108aa23cffe9adbc50241b5eb3ecae317273cc2
child 572442 b9151926f9cf72eec5dc8da45ecbdbcbee271508
push id57073
push userjwwang@mozilla.com
push dateThu, 04 May 2017 06:39:24 +0000
bugs1361944
milestone55.0a1
Bug 1361944. P1 - add a crash test. The crash happens when: 1. there are multiple <source> children. 2. decode error happens on the 1st child. MozReview-Commit-ID: 60UXaQ475Nh
dom/html/HTMLMediaElement.cpp
dom/media/test/crashtests/1361944.html
dom/media/test/crashtests/bogus.ogv
dom/media/test/crashtests/crashtests.list
dom/media/test/crashtests/small-shot.m4a
--- a/dom/html/HTMLMediaElement.cpp
+++ b/dom/html/HTMLMediaElement.cpp
@@ -4575,18 +4575,18 @@ nsresult HTMLMediaElement::InitializeDec
   }
 
   return FinishDecoderSetup(decoder, resource, nullptr);
 }
 
 nsresult HTMLMediaElement::InitializeDecoderForChannel(nsIChannel* aChannel,
                                                        nsIStreamListener** aListener)
 {
-  NS_ASSERTION(mLoadingSrc, "mLoadingSrc must already be set");
-  NS_ASSERTION(mDecoder == nullptr, "Shouldn't have a decoder");
+  MOZ_DIAGNOSTIC_ASSERT(mLoadingSrc, "mLoadingSrc must already be set");
+  MOZ_DIAGNOSTIC_ASSERT(!mDecoder, "Shouldn't have a decoder");
 
   nsAutoCString mimeType;
 
   aChannel->GetContentType(mimeType);
   NS_ASSERTION(!mimeType.IsEmpty(), "We should have the Content-Type.");
 
   DecoderDoctorDiagnostics diagnostics;
   RefPtr<MediaDecoder> decoder =
new file mode 100644
--- /dev/null
+++ b/dom/media/test/crashtests/1361944.html
@@ -0,0 +1,15 @@
+<html class="reftest-wait">
+<body>
+
+<video id="v1">
+  <source src="bogus.ogv">
+  <source src="small-shot.m4a">
+</video>
+
+<script type="text/javascript">
+v1.onloadedmetadata = () => {
+  document.documentElement.removeAttribute("class");
+}
+</script>
+</body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/dom/media/test/crashtests/bogus.ogv
@@ -0,0 +1,45 @@
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
+bogus bogus bogus
--- a/dom/media/test/crashtests/crashtests.list
+++ b/dom/media/test/crashtests/crashtests.list
@@ -97,8 +97,9 @@ load doppler-1.html
 HTTP load media-element-source-seek-1.html
 load offline-buffer-source-ended-1.html
 load oscillator-ended-1.html
 load oscillator-ended-2.html
 skip-if(Android&&AndroidVersion=='22') load video-replay-after-audio-end.html # bug 1315125, bug 1358876
 # This needs to run at the end to avoid leaking busted state into other tests.
 load 691096-1.html
 load 1236639.html
+load 1361944.html
\ No newline at end of file
new file mode 100644
index 0000000000000000000000000000000000000000..51a23c5b490ac54af4eb7b9e66eacdc8c999d7ca
GIT binary patch
literal 2710
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
G+y4v4);q%h