commit bc25ea10e67818e1927e20961551178d12ac8f1d
parent df89bb1185976b0a05196a19500f550aa261e27f
Author: Andreas Pehrson <apehrson@mozilla.com>
Date: Tue, 7 Oct 2025 16:29:33 +0000
Bug 1991492 - Add WPT for impossible constraints in gDM-applyConstraints. r=jib
Differential Revision: https://phabricator.services.mozilla.com/D267751
Diffstat:
1 file changed, 24 insertions(+), 0 deletions(-)
diff --git a/testing/web-platform/tests/screen-capture/getdisplaymedia.https.html b/testing/web-platform/tests/screen-capture/getdisplaymedia.https.html
@@ -164,6 +164,30 @@ promise_test(async t => {
assert_unreached('getDisplayMedia should have failed');
}, `getDisplayMedia(${j(constraints)}) must fail with OverconstrainedError`));
+[
+ {width: {max: 0}},
+ {height: {max: 0}},
+ {frameRate: {max: 0}},
+ {width: {max: -1}},
+ {height: {max: -1}},
+ {frameRate: {max: -1}},
+ {width: {min: 100, max: 10}},
+ {height: {min: 100, max: 10}},
+ {frameRate: {min: 100, max: 10}},
+].forEach(constraints => promise_test(async t => {
+ const stream = await getDisplayMedia();
+ t.add_cleanup(() => stopTracks(stream));
+ const [track] = stream.getTracks();
+ try {
+ await track.applyConstraints(constraints);
+ } catch (err) {
+ assert_equals(err.name, 'OverconstrainedError', err.message);
+ assert_equals(err.constraint, Object.keys(constraints)[0], "Constraint is set");
+ return;
+ }
+ assert_unreached('applyConstraints hould have failed');
+}, `applyConstraints(${j(constraints)}) for display media must fail with OverconstrainedError`));
+
// Content shell picks a fake desktop device by default.
promise_test(async t => {
const stream = await getDisplayMedia({video: true});