Bug 802326 - make getUserMedia fail audio+video request unless user has both. r=jesup

MozReview-Commit-ID: 8o7p3B6fD5r

--HG--
extra : rebase_source : efe99cfeb7c99c53d3840292a61acc484414d116
This commit is contained in:
Jan-Ivar Bruaroey 2016-05-05 17:11:53 -04:00
Родитель c0d9a22841
Коммит 6cd0bf07c3
1 изменённых файлов: 7 добавлений и 3 удалений

Просмотреть файл

@ -1091,16 +1091,20 @@ MediaManager::SelectSettings(
} }
sources.Clear(); sources.Clear();
const char* badConstraint = nullptr; 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( badConstraint = MediaConstraintsHelper::SelectSettings(
GetInvariant(aConstraints.mVideo), videos); GetInvariant(aConstraints.mVideo), videos);
} }
if (!badConstraint && audios.Length() && IsOn(aConstraints.mAudio)) { if (!badConstraint && needAudio && audios.Length()) {
badConstraint = MediaConstraintsHelper::SelectSettings( badConstraint = MediaConstraintsHelper::SelectSettings(
GetInvariant(aConstraints.mAudio), audios); GetInvariant(aConstraints.mAudio), audios);
} }
if (!badConstraint) { if (!badConstraint &&
!needVideo == !videos.Length() &&
!needAudio == !audios.Length()) {
for (auto& video : videos) { for (auto& video : videos) {
sources.AppendElement(video); sources.AppendElement(video);
} }