зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
c0d9a22841
Коммит
6cd0bf07c3
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче