From 6cd0bf07c34234a53f9ae5a062283edc89022d3b Mon Sep 17 00:00:00 2001 From: Jan-Ivar Bruaroey Date: Thu, 5 May 2016 17:11:53 -0400 Subject: [PATCH] Bug 802326 - make getUserMedia fail audio+video request unless user has both. r=jesup MozReview-Commit-ID: 8o7p3B6fD5r --HG-- extra : rebase_source : efe99cfeb7c99c53d3840292a61acc484414d116 --- dom/media/MediaManager.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/dom/media/MediaManager.cpp b/dom/media/MediaManager.cpp index a57b3cf4b197..60820f05fa48 100644 --- a/dom/media/MediaManager.cpp +++ b/dom/media/MediaManager.cpp @@ -1091,16 +1091,20 @@ MediaManager::SelectSettings( } sources.Clear(); const char* badConstraint = nullptr; + bool needVideo = IsOn(aConstraints.mVideo); + bool needAudio = IsOn(aConstraints.mAudio); - if (videos.Length() && IsOn(aConstraints.mVideo)) { + if (needVideo && videos.Length()) { badConstraint = MediaConstraintsHelper::SelectSettings( GetInvariant(aConstraints.mVideo), videos); } - if (!badConstraint && audios.Length() && IsOn(aConstraints.mAudio)) { + if (!badConstraint && needAudio && audios.Length()) { badConstraint = MediaConstraintsHelper::SelectSettings( GetInvariant(aConstraints.mAudio), audios); } - if (!badConstraint) { + if (!badConstraint && + !needVideo == !videos.Length() && + !needAudio == !audios.Length()) { for (auto& video : videos) { sources.AppendElement(video); }