Click here to download the Blitz Browser!

WPT

wpt / screen-capture / getdisplaymedia.https.html

Spec: Screen Capture ↗

Runs: Chrome 155.0.8039.0 (wpt@6ec9fd59f, 2026-09-03) | Firefox 157.0a1 (wpt@6ec9fd59f, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-795e1 (wpt@7e3d005d7, 2026-09-03) | Servo Servo 0.6 (wpt@09159dcb3, 2026-09-02) | Blitz 188486089 (wpt@a95401e4e, 2026-09-02)

View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi

ChromeFirefoxSafariLadybirdServoBlitz
Total77/7861/783/780/780/78NOT RUN
SubtestChromeFirefoxSafariLadybirdServoBlitz
getDisplayMedia in navigator.mediaDevicesPASSPASSPASSFAILFAIL
getDisplayMedia() must require user activationFAILPASSPASSFAILFAIL
getDisplayMedia({"video":true}) must succeed with videoPASSPASSFAILFAILFAIL
getDisplayMedia({"video":true,"audio":false}) must succeed with videoPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{}}) must succeed with videoPASSPASSFAILFAILFAIL
getDisplayMedia({"audio":false}) must succeed with videoPASSPASSFAILFAILFAIL
getDisplayMedia({}) must succeed with videoPASSPASSFAILFAILFAIL
getDisplayMedia(undefined) must succeed with videoPASSPASSFAILFAILFAIL
getDisplayMedia({"video":false}) must fail with TypeErrorPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{"advanced":[{"width":320}]}}) must fail with TypeErrorPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{"width":{"min":320}}}) must fail with TypeErrorPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{"width":{"exact":320}}}) must fail with TypeErrorPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{"height":{"min":240}}}) must fail with TypeErrorPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{"height":{"exact":240}}}) must fail with TypeErrorPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{"frameRate":{"min":4}}}) must fail with TypeErrorPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{"frameRate":{"exact":4}}}) must fail with TypeErrorPASSPASSFAILFAILFAIL
getDisplayMedia({"video":true,"audio":true}) must succeed with video maybe audioPASSPASSFAILFAILFAIL
getDisplayMedia({"audio":true}) must succeed with video maybe audioPASSPASSFAILFAILFAIL
getDisplayMedia({video: {"width":{"max":360}}}) must be constrainedPASSPASSFAILFAILFAIL
getDisplayMedia({video: {"height":{"max":240}}}) must be constrainedPASSPASSFAILFAILFAIL
getDisplayMedia({video: {"width":{"max":360},"height":{"max":240}}}) must be constrainedPASSPASSFAILFAILFAIL
getDisplayMedia({video: {"frameRate":{"max":4}}}) must be constrainedPASSPASSFAILFAILFAIL
getDisplayMedia({video: {"frameRate":{"max":4},"width":{"max":360}}}) must be constrainedPASSPASSFAILFAILFAIL
getDisplayMedia({video: {"frameRate":{"max":4},"height":{"max":240}}}) must be constrainedPASSPASSFAILFAILFAIL
getDisplayMedia({video: {"frameRate":{"max":4},"width":{"max":360},"height":{"max":240}}}) must be constrainedPASSPASSFAILFAILFAIL
getDisplayMedia({video: {"width":160}}) must be downscaled preciselyPASSPASSFAILFAILFAIL
getDisplayMedia({video: {"height":120}}) must be downscaled preciselyPASSPASSFAILFAILFAIL
getDisplayMedia({video: {"width":80}}) must be downscaled preciselyPASSPASSFAILFAILFAIL
getDisplayMedia({video: {"height":60}}) must be downscaled preciselyPASSPASSFAILFAILFAIL
getDisplayMedia({video: {"width":158}}) must be downscaled preciselyPASSPASSFAILFAILFAIL
getDisplayMedia({video: {"height":118}}) must be downscaled preciselyPASSPASSFAILFAILFAIL
applyConstraints(width or height) must downscale preciselyPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{"width":{"max":0}}}) must fail with OverconstrainedErrorPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{"height":{"max":0}}}) must fail with OverconstrainedErrorPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{"frameRate":{"max":0}}}) must fail with OverconstrainedErrorPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{"width":{"max":-1}}}) must fail with OverconstrainedErrorPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{"height":{"max":-1}}}) must fail with OverconstrainedErrorPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{"frameRate":{"max":-1}}}) must fail with OverconstrainedErrorPASSPASSFAILFAILFAIL
applyConstraints({"width":{"max":0}}) for display media must fail with OverconstrainedErrorPASSPASSFAILFAILFAIL
applyConstraints({"height":{"max":0}}) for display media must fail with OverconstrainedErrorPASSPASSFAILFAILFAIL
applyConstraints({"frameRate":{"max":0}}) for display media must fail with OverconstrainedErrorPASSPASSFAILFAILFAIL
applyConstraints({"width":{"max":-1}}) for display media must fail with OverconstrainedErrorPASSPASSFAILFAILFAIL
applyConstraints({"height":{"max":-1}}) for display media must fail with OverconstrainedErrorPASSPASSFAILFAILFAIL
applyConstraints({"frameRate":{"max":-1}}) for display media must fail with OverconstrainedErrorPASSPASSFAILFAILFAIL
applyConstraints({"width":{"min":100,"max":10}}) for display media must fail with OverconstrainedErrorPASSPASSFAILFAILFAIL
applyConstraints({"height":{"min":100,"max":10}}) for display media must fail with OverconstrainedErrorPASSPASSFAILFAILFAIL
applyConstraints({"frameRate":{"min":100,"max":10}}) for display media must fail with OverconstrainedErrorPASSPASSFAILFAILFAIL
getDisplayMedia() resolves with stream with video trackPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{"displaySurface":"monitor"}}) with getSettingsPASSFAILFAILFAILFAIL
getDisplayMedia({"video":{"displaySurface":"window"}}) with getSettingsPASSFAILFAILFAILFAIL
getDisplayMedia({"video":{"displaySurface":"browser"}}) with getSettingsPASSFAILFAILFAILFAIL
displaySurface is supportedPASSFAILPASSFAILFAIL
getDisplayMedia({"video":{"displaySurface":"monitor"}}) must succeedPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{"displaySurface":"window"}}) must succeedPASSPASSFAILFAILFAIL
getDisplayMedia({"video":{"displaySurface":"browser"}}) must succeedPASSPASSFAILFAILFAIL
getDisplayMedia({"selfBrowserSurface":"include"}) must succeedPASSPASSFAILFAILFAIL
getDisplayMedia({"selfBrowserSurface":"exclude"}) must succeedPASSPASSFAILFAILFAIL
getDisplayMedia({"surfaceSwitching":"include"}) must succeedPASSPASSFAILFAILFAIL
getDisplayMedia({"surfaceSwitching":"exclude"}) must succeedPASSPASSFAILFAILFAIL
getDisplayMedia({"systemAudio":"include"}) must succeedPASSPASSFAILFAILFAIL
getDisplayMedia({"systemAudio":"exclude"}) must succeedPASSPASSFAILFAILFAIL
getDisplayMedia({"windowAudio":"exclude"}) must succeedPASSPASSFAILFAILFAIL
getDisplayMedia({"windowAudio":"window"}) must succeedPASSPASSFAILFAILFAIL
getDisplayMedia({"windowAudio":"system"}) must succeedPASSPASSFAILFAILFAIL
getDisplayMedia({"audioSelection":"preferred"}) must succeedPASSPASSFAILFAILFAIL
getDisplayMedia({"selfBrowserSurface":"invalid"}) must fail with TypeErrorPASSFAILFAILFAILFAIL
getDisplayMedia({"surfaceSwitching":"invalid"}) must fail with TypeErrorPASSFAILFAILFAILFAIL
getDisplayMedia({"systemAudio":"invalid"}) must fail with TypeErrorPASSFAILFAILFAILFAIL
getDisplayMedia({"windowAudio":"invalid"}) must fail with TypeErrorPASSFAILFAILFAILFAIL
getDisplayMedia({"monitorTypeSurfaces":"invalid"}) must fail with TypeErrorPASSFAILFAILFAILFAIL
getDisplayMedia({"audioSelection":"invalid"}) must fail with TypeErrorPASSFAILFAILFAILFAIL
suppressLocalAudioPlayback is supportedPASSFAILFAILFAILFAIL
getDisplayMedia({"audio":{"suppressLocalAudioPlayback":true}}) with getSettingsPASSFAILFAILFAILFAIL
getDisplayMedia({"audio":{"suppressLocalAudioPlayback":false}}) with getSettingsPASSFAILFAILFAILFAIL
getDisplayMedia() with getCapabilitiesPASSFAILFAILFAILFAIL
getDisplayMedia({"video":{"displaySurface":"monitor"},"monitorTypeSurfaces":"exclude"}) rejects with TypeErrorPASSFAILFAILFAILFAIL
getDisplayMedia({"video":{"displaySurface":"monitor"},"monitorTypeSurfaces":"include"}) resolves with a monitor trackPASSFAILFAILFAILFAIL
getDisplayMedia({"monitorTypeSurfaces":"exclude"}) resolves with a non monitor trackPASSFAILFAILFAILFAIL