Bug 802326 - make getUserMedia fail if required video constraints aren't met, regardless of audio.
MozReview-Commit-ID: BVT7vyNbatH
--- 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) {