Bug 802326 - make getUserMedia fail if required video constraints aren't met, regardless of audio. draft
authorJan-Ivar Bruaroey <jib@mozilla.com>
Thu, 05 May 2016 15:46:04 -0400
changeset 364175 81137a888d3e8fb5349236ffee5de618424b43c6
parent 363790 29662e28a9c93ac67ee0b8ddfb65a9f29bbf73f5
child 364176 656a2913153dbc47903132e5e12b39ed6693c099
push id17378
push userjbruaroey@mozilla.com
push dateFri, 06 May 2016 02:41:52 +0000
bugs802326
milestone49.0a1
Bug 802326 - make getUserMedia fail if required video constraints aren't met, regardless of audio. MozReview-Commit-ID: BVT7vyNbatH
dom/media/MediaManager.cpp
--- a/dom/media/MediaManager.cpp
+++ b/dom/media/MediaManager.cpp
@@ -1091,23 +1091,25 @@ MediaManager::SelectSettings(
       }
     }
     sources.Clear();
     const char* badConstraint = nullptr;
 
     if (videos.Length() && IsOn(aConstraints.mVideo)) {
       badConstraint = MediaConstraintsHelper::SelectSettings(
           GetInvariant(aConstraints.mVideo), videos);
+    }
+    if (!badConstraint && audios.Length() && IsOn(aConstraints.mAudio)) {
+      badConstraint = MediaConstraintsHelper::SelectSettings(
+          GetInvariant(aConstraints.mAudio), audios);
+    }
+    if (!badConstraint) {
       for (auto& video : videos) {
         sources.AppendElement(video);
       }
-    }
-    if (audios.Length() && IsOn(aConstraints.mAudio)) {
-      badConstraint = MediaConstraintsHelper::SelectSettings(
-          GetInvariant(aConstraints.mAudio), audios);
       for (auto& audio : audios) {
         sources.AppendElement(audio);
       }
     }
     NS_DispatchToMainThread(NewRunnableFrom([id, badConstraint]() mutable {
       RefPtr<MediaManager> mgr = MediaManager_GetInstance();
       RefPtr<PledgeChar> p = mgr->mOutstandingCharPledges.Remove(id);
       if (p) {