Index: third_party/WebKit/LayoutTests/external/wpt/mediacapture-image/idlharness.html |
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mediacapture-image/idlharness.html b/third_party/WebKit/LayoutTests/external/wpt/mediacapture-image/idlharness.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..146e0e85c8e876509ee9375fdcdbf5c69b171ee7 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/external/wpt/mediacapture-image/idlharness.html |
@@ -0,0 +1,185 @@ |
+<!DOCTYPE html> |
+<html> |
+<head> |
+ <meta charset=utf-8> |
+ <title>Image Capture IDL test</title> |
+ <link rel="help" href="https://w3c.github.io/mediacapture-image"> |
+ <link rel="idl" href="https://w3c.github.io/mediacapture-image/#idl-index"> |
+ <script src="/resources/testharness.js"></script> |
+ <script src="/resources/testharnessreport.js"></script> |
+ <script src="/resources/WebIDLParser.js"></script> |
+ <script src="/resources/idlharness.js"></script> |
+</head> |
+<body> |
+ <canvas id='canvas' width=10 height=10/> |
+ |
+ <pre id="untested_idl" style="display: none"> |
+ interface Event {}; |
+ interface EventHandler {}; |
+ interface EventTarget {}; |
+ interface MediaStreamTrack {}; |
+ </pre> |
+ <pre id="idl" style="display: none"> |
+ // https://w3c.github.io/mediacapture-image |
+ |
+ [Constructor(MediaStreamTrack videoTrack)] |
+ interface ImageCapture { |
+ Promise<Blob> takePhoto(optional PhotoSettings photoSettings); |
+ Promise<PhotoCapabilities> getPhotoCapabilities(); |
+ |
+ Promise<ImageBitmap> grabFrame(); |
+ |
+ readonly attribute MediaStreamTrack track; |
+ }; |
+ |
+ interface PhotoCapabilities { |
+ readonly attribute RedEyeReduction redEyeReduction; |
+ readonly attribute MediaSettingsRange imageHeight; |
+ readonly attribute MediaSettingsRange imageWidth; |
+ readonly attribute FrozenArray<FillLightMode> fillLightMode; |
+ }; |
+ |
+ dictionary PhotoSettings { |
+ FillLightMode fillLightMode; |
+ double imageHeight; |
+ double imageWidth; |
+ boolean redEyeReduction; |
+ }; |
+ |
+ interface MediaSettingsRange { |
+ readonly attribute double max; |
+ readonly attribute double min; |
+ readonly attribute double step; |
+ }; |
+ |
+ enum RedEyeReduction { |
+ "never", |
+ "always", |
+ "controllable", |
+ }; |
+ |
+ enum FillLightMode { |
+ "auto", |
+ "off", |
+ "flash", |
+ }; |
+ |
+ // Partial dictionaries are unsupported, see |
+ // https://github.com/w3c/testharness.js/issues/84 |
+ |
+ partial dictionary MediaTrackSupportedConstraints { |
+ boolean whiteBalanceMode = true; |
+ boolean exposureMode = true; |
+ boolean focusMode = true; |
+ boolean pointsOfInterest = true; |
+ |
+ boolean exposureCompensation = true; |
+ boolean colorTemperature = true; |
+ boolean iso = true; |
+ |
+ boolean brightness = true; |
+ boolean contrast = true; |
+ boolean saturation = true; |
+ boolean sharpness = true; |
+ boolean zoom = true; |
+ boolean torch = true; |
+ }; |
+ |
+ partial dictionary MediaTrackCapabilities { |
+ sequence<DOMString> whiteBalanceMode; |
+ sequence<DOMString> exposureMode; |
+ sequence<DOMString> focusMode; |
+ |
+ MediaSettingsRange exposureCompensation; |
+ MediaSettingsRange colorTemperature; |
+ MediaSettingsRange iso; |
+ |
+ MediaSettingsRange brightness; |
+ MediaSettingsRange contrast; |
+ MediaSettingsRange saturation; |
+ MediaSettingsRange sharpness; |
+ |
+ MediaSettingsRange zoom; |
+ |
+ boolean torch; |
+ }; |
+ |
+ partial dictionary MediaTrackConstraintSet { |
+ ConstrainDOMString whiteBalanceMode; |
+ ConstrainDOMString exposureMode; |
+ ConstrainDOMString focusMode; |
+ ConstrainPoint2D pointsOfInterest; |
+ |
+ ConstrainDouble exposureCompensation; |
+ ConstrainDouble colorTemperature; |
+ ConstrainDouble iso; |
+ |
+ ConstrainDouble brightness; |
+ ConstrainDouble contrast; |
+ ConstrainDouble saturation; |
+ ConstrainDouble sharpness; |
+ |
+ ConstrainDouble zoom; |
+ |
+ ConstrainBoolean torch; |
+ }; |
+ |
+ partial dictionary MediaTrackSettings { |
+ DOMString whiteBalanceMode; |
+ DOMString exposureMode; |
+ DOMString focusMode; |
+ sequence<Point2D> pointsOfInterest; |
+ |
+ double exposureCompensation; |
+ double colorTemperature; |
+ double iso; |
+ |
+ double brightness; |
+ double contrast; |
+ double saturation; |
+ double sharpness; |
+ |
+ double zoom; |
+ |
+ boolean torch; |
+ }; |
+ |
+ dictionary ConstrainPoint2DParameters { |
+ sequence<Point2D> exact; |
+ sequence<Point2D> ideal; |
+ }; |
+ |
+ typedef (sequence<Point2D> or ConstrainPoint2DParameters) ConstrainPoint2D; |
+ |
+ enum MeteringMode { |
+ "none", |
+ "manual", |
+ "single-shot", |
+ "continuous" |
+ }; |
+ |
+ dictionary Point2D { |
+ double x = 0.0; |
+ double y = 0.0; |
+ }; |
+ |
+ </pre> |
+ <script> |
+ var canvas = document.getElementById('canvas'); |
+ var context = canvas.getContext("2d"); |
+ context.fillStyle = "red"; |
+ context.fillRect(0, 0, 10, 10); |
+ var track = canvas.captureStream().getVideoTracks()[0]; |
+ |
+ var idl_array = new IdlArray(); |
+ idl_array.add_untested_idls( |
+ document.getElementById("untested_idl").textContent); |
+ idl_array.add_idls(document.getElementById("idl").textContent); |
+ idl_array.add_objects({ |
+ ImageCapturer : [new ImageCapture(track)] |
+ }); |
+ idl_array.test(); |
+ </script> |
+ <div id="log"></div> |
+</body> |
+</html> |