Commit eb9e3371 authored by Francois Beaufort's avatar Francois Beaufort Committed by Commit Bot

Change MediaSettingsRange & PhotoCapabilities interfaces to dictionaries

This CL changes MediaSettingsRange and PhotoCapabilities interfaces to
dictionaries for logging purposes. This way, web developers will be able
to simply call JSON.stringify(myTrack.getCapabilities()).

Spec: https://github.com/w3c/mediacapture-image/pull/238
Intent to ship: https://groups.google.com/a/chromium.org/g/blink-dev/c/QI8BS5bL5CQ

Bug: 934063
Change-Id: I604d3b119b0e3e8bff48d86b87ea4213325b8a10
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2317186Reviewed-by: default avatarEero Häkkinen <eero.hakkinen@intel.com>
Reviewed-by: default avatarReilly Grant <reillyg@chromium.org>
Reviewed-by: default avatarMike West <mkwst@chromium.org>
Commit-Queue: François Beaufort <beaufort.francois@gmail.com>
Cr-Commit-Position: refs/heads/master@{#795858}
parent ece426d2
...@@ -1567,8 +1567,6 @@ generated_interface_sources_in_modules = [ ...@@ -1567,8 +1567,6 @@ generated_interface_sources_in_modules = [
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_recorder.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_recorder.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_session.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_session.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_session.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_session.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_settings_range.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_settings_range.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_source.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_source.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_source.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_source.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_stream.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_stream.cc",
...@@ -1709,8 +1707,6 @@ generated_interface_sources_in_modules = [ ...@@ -1709,8 +1707,6 @@ generated_interface_sources_in_modules = [
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_permission_status.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_permission_status.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_permissions.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_permissions.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_permissions.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_permissions.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_photo_capabilities.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_photo_capabilities.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_picture_in_picture_event.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_picture_in_picture_event.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_picture_in_picture_event.h", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_picture_in_picture_event.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_picture_in_picture_window.cc", "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_picture_in_picture_window.cc",
......
...@@ -10,9 +10,6 @@ blink_modules_sources("imagecapture") { ...@@ -10,9 +10,6 @@ blink_modules_sources("imagecapture") {
"image_capture.h", "image_capture.h",
"image_capture_frame_grabber.cc", "image_capture_frame_grabber.cc",
"image_capture_frame_grabber.h", "image_capture_frame_grabber.h",
"media_settings_range.h",
"photo_capabilities.cc",
"photo_capabilities.h",
] ]
deps = [ deps = [
......
...@@ -2,14 +2,12 @@ ...@@ -2,14 +2,12 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
modules_idl_files = [ modules_idl_files = [ "image_capture.idl" ]
"image_capture.idl",
"media_settings_range.idl",
"photo_capabilities.idl",
]
modules_dictionary_idl_files = [ modules_dictionary_idl_files = [
"constrain_point_2d_parameters.idl", "constrain_point_2d_parameters.idl",
"media_settings_range.idl",
"photo_capabilities.idl",
"photo_settings.idl", "photo_settings.idl",
"point_2d.idl", "point_2d.idl",
] ]
...@@ -13,16 +13,16 @@ ...@@ -13,16 +13,16 @@
#include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/renderer/bindings/core/v8/callback_promise_adapter.h" #include "third_party/blink/renderer/bindings/core/v8/callback_promise_adapter.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_media_settings_range.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_media_track_capabilities.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_media_track_capabilities.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_media_track_constraints.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_media_track_constraints.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_photo_capabilities.h"
#include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/dom/dom_exception.h"
#include "third_party/blink/renderer/core/fileapi/blob.h" #include "third_party/blink/renderer/core/fileapi/blob.h"
#include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/imagebitmap/image_bitmap.h" #include "third_party/blink/renderer/core/imagebitmap/image_bitmap.h"
#include "third_party/blink/renderer/modules/event_target_modules.h" #include "third_party/blink/renderer/modules/event_target_modules.h"
#include "third_party/blink/renderer/modules/imagecapture/image_capture_frame_grabber.h" #include "third_party/blink/renderer/modules/imagecapture/image_capture_frame_grabber.h"
#include "third_party/blink/renderer/modules/imagecapture/media_settings_range.h"
#include "third_party/blink/renderer/modules/imagecapture/photo_capabilities.h"
#include "third_party/blink/renderer/modules/mediastream/media_stream_track.h" #include "third_party/blink/renderer/modules/mediastream/media_stream_track.h"
#include "third_party/blink/renderer/modules/mediastream/media_stream_video_track.h" #include "third_party/blink/renderer/modules/mediastream/media_stream_video_track.h"
#include "third_party/blink/renderer/modules/permissions/permission_utils.h" #include "third_party/blink/renderer/modules/permissions/permission_utils.h"
...@@ -36,6 +36,7 @@ namespace blink { ...@@ -36,6 +36,7 @@ namespace blink {
using FillLightMode = media::mojom::blink::FillLightMode; using FillLightMode = media::mojom::blink::FillLightMode;
using MeteringMode = media::mojom::blink::MeteringMode; using MeteringMode = media::mojom::blink::MeteringMode;
using RedEyeReduction = media::mojom::blink::RedEyeReduction;
namespace { namespace {
...@@ -81,10 +82,38 @@ WebString ToString(MeteringMode value) { ...@@ -81,10 +82,38 @@ WebString ToString(MeteringMode value) {
return WebString::FromUTF8("single-shot"); return WebString::FromUTF8("single-shot");
case MeteringMode::CONTINUOUS: case MeteringMode::CONTINUOUS:
return WebString::FromUTF8("continuous"); return WebString::FromUTF8("continuous");
default:
NOTREACHED() << "Unknown MeteringMode";
} }
return WebString(); }
WebString ToString(FillLightMode value) {
switch (value) {
case FillLightMode::OFF:
return WebString::FromUTF8("off");
case FillLightMode::AUTO:
return WebString::FromUTF8("auto");
case FillLightMode::FLASH:
return WebString::FromUTF8("flash");
}
}
WebString ToString(RedEyeReduction value) {
switch (value) {
case RedEyeReduction::NEVER:
return WebString::FromUTF8("never");
case RedEyeReduction::ALWAYS:
return WebString::FromUTF8("always");
case RedEyeReduction::CONTROLLABLE:
return WebString::FromUTF8("controllable");
}
}
MediaSettingsRange* ToMediaSettingsRange(
const media::mojom::blink::Range& range) {
MediaSettingsRange* result = MediaSettingsRange::Create();
result->setMax(range.max);
result->setMin(range.min);
result->setStep(range.step);
return result;
} }
} // anonymous namespace } // anonymous namespace
...@@ -241,7 +270,7 @@ ScriptPromise ImageCapture::setOptions(ScriptState* script_state, ...@@ -241,7 +270,7 @@ ScriptPromise ImageCapture::setOptions(ScriptState* script_state,
settings->has_red_eye_reduction = photo_settings->hasRedEyeReduction(); settings->has_red_eye_reduction = photo_settings->hasRedEyeReduction();
if (settings->has_red_eye_reduction) { if (settings->has_red_eye_reduction) {
if (photo_capabilities_ && if (photo_capabilities_ &&
!photo_capabilities_->IsRedEyeReductionControllable()) { photo_capabilities_->redEyeReduction() != "controllable") {
resolver->Reject(MakeGarbageCollected<DOMException>( resolver->Reject(MakeGarbageCollected<DOMException>(
DOMExceptionCode::kNotSupportedError, DOMExceptionCode::kNotSupportedError,
"redEyeReduction is not controllable.")); "redEyeReduction is not controllable."));
...@@ -926,20 +955,22 @@ void ImageCapture::OnMojoGetPhotoState( ...@@ -926,20 +955,22 @@ void ImageCapture::OnMojoGetPhotoState(
// TODO(mcasas): collect the remaining two entries https://crbug.com/732521. // TODO(mcasas): collect the remaining two entries https://crbug.com/732521.
photo_capabilities_ = MakeGarbageCollected<PhotoCapabilities>(); photo_capabilities_ = MakeGarbageCollected<PhotoCapabilities>();
photo_capabilities_->SetRedEyeReduction(photo_state->red_eye_reduction); photo_capabilities_->setRedEyeReduction(
// TODO(mcasas): Remove the explicit MediaSettingsRange::create() when ToString(photo_state->red_eye_reduction));
// mojo::StructTraits supports garbage-collected mappings,
// https://crbug.com/700180.
if (photo_state->height->min != 0 || photo_state->height->max != 0) { if (photo_state->height->min != 0 || photo_state->height->max != 0) {
photo_capabilities_->SetImageHeight( photo_capabilities_->setImageHeight(
MediaSettingsRange::Create(std::move(photo_state->height))); ToMediaSettingsRange(*photo_state->height));
} }
if (photo_state->width->min != 0 || photo_state->width->max != 0) { if (photo_state->width->min != 0 || photo_state->width->max != 0) {
photo_capabilities_->SetImageWidth( photo_capabilities_->setImageWidth(
MediaSettingsRange::Create(std::move(photo_state->width))); ToMediaSettingsRange(*photo_state->width));
}
WTF::Vector<WTF::String> fill_light_mode;
for (const auto& mode : photo_state->fill_light_mode) {
fill_light_mode.push_back(ToString(mode));
} }
if (!photo_state->fill_light_mode.IsEmpty()) if (!fill_light_mode.IsEmpty())
photo_capabilities_->SetFillLightMode(photo_state->fill_light_mode); photo_capabilities_->setFillLightMode(fill_light_mode);
// Update the local track photo_state cache. // Update the local track photo_state cache.
UpdateMediaTrackCapabilities(base::DoNothing(), std::move(photo_state)); UpdateMediaTrackCapabilities(base::DoNothing(), std::move(photo_state));
...@@ -1051,72 +1082,67 @@ void ImageCapture::UpdateMediaTrackCapabilities( ...@@ -1051,72 +1082,67 @@ void ImageCapture::UpdateMediaTrackCapabilities(
} }
settings_->setPointsOfInterest(current_points_of_interest); settings_->setPointsOfInterest(current_points_of_interest);
// TODO(mcasas): Remove the explicit MediaSettingsRange::create() when
// mojo::StructTraits supports garbage-collected mappings,
// https://crbug.com/700180.
if (photo_state->exposure_compensation->max != if (photo_state->exposure_compensation->max !=
photo_state->exposure_compensation->min) { photo_state->exposure_compensation->min) {
capabilities_->setExposureCompensation( capabilities_->setExposureCompensation(
MediaSettingsRange::Create(*photo_state->exposure_compensation)); ToMediaSettingsRange(*photo_state->exposure_compensation));
settings_->setExposureCompensation( settings_->setExposureCompensation(
photo_state->exposure_compensation->current); photo_state->exposure_compensation->current);
} }
if (photo_state->exposure_time->max != photo_state->exposure_time->min) { if (photo_state->exposure_time->max != photo_state->exposure_time->min) {
capabilities_->setExposureTime( capabilities_->setExposureTime(
MediaSettingsRange::Create(*photo_state->exposure_time)); ToMediaSettingsRange(*photo_state->exposure_time));
settings_->setExposureTime(photo_state->exposure_time->current); settings_->setExposureTime(photo_state->exposure_time->current);
} }
if (photo_state->color_temperature->max != if (photo_state->color_temperature->max !=
photo_state->color_temperature->min) { photo_state->color_temperature->min) {
capabilities_->setColorTemperature( capabilities_->setColorTemperature(
MediaSettingsRange::Create(*photo_state->color_temperature)); ToMediaSettingsRange(*photo_state->color_temperature));
settings_->setColorTemperature(photo_state->color_temperature->current); settings_->setColorTemperature(photo_state->color_temperature->current);
} }
if (photo_state->iso->max != photo_state->iso->min) { if (photo_state->iso->max != photo_state->iso->min) {
capabilities_->setIso(MediaSettingsRange::Create(*photo_state->iso)); capabilities_->setIso(ToMediaSettingsRange(*photo_state->iso));
settings_->setIso(photo_state->iso->current); settings_->setIso(photo_state->iso->current);
} }
if (photo_state->brightness->max != photo_state->brightness->min) { if (photo_state->brightness->max != photo_state->brightness->min) {
capabilities_->setBrightness( capabilities_->setBrightness(
MediaSettingsRange::Create(*photo_state->brightness)); ToMediaSettingsRange(*photo_state->brightness));
settings_->setBrightness(photo_state->brightness->current); settings_->setBrightness(photo_state->brightness->current);
} }
if (photo_state->contrast->max != photo_state->contrast->min) { if (photo_state->contrast->max != photo_state->contrast->min) {
capabilities_->setContrast( capabilities_->setContrast(ToMediaSettingsRange(*photo_state->contrast));
MediaSettingsRange::Create(*photo_state->contrast));
settings_->setContrast(photo_state->contrast->current); settings_->setContrast(photo_state->contrast->current);
} }
if (photo_state->saturation->max != photo_state->saturation->min) { if (photo_state->saturation->max != photo_state->saturation->min) {
capabilities_->setSaturation( capabilities_->setSaturation(
MediaSettingsRange::Create(*photo_state->saturation)); ToMediaSettingsRange(*photo_state->saturation));
settings_->setSaturation(photo_state->saturation->current); settings_->setSaturation(photo_state->saturation->current);
} }
if (photo_state->sharpness->max != photo_state->sharpness->min) { if (photo_state->sharpness->max != photo_state->sharpness->min) {
capabilities_->setSharpness( capabilities_->setSharpness(ToMediaSettingsRange(*photo_state->sharpness));
MediaSettingsRange::Create(*photo_state->sharpness));
settings_->setSharpness(photo_state->sharpness->current); settings_->setSharpness(photo_state->sharpness->current);
} }
if (photo_state->focus_distance->max != photo_state->focus_distance->min) { if (photo_state->focus_distance->max != photo_state->focus_distance->min) {
capabilities_->setFocusDistance( capabilities_->setFocusDistance(
MediaSettingsRange::Create(*photo_state->focus_distance)); ToMediaSettingsRange(*photo_state->focus_distance));
settings_->setFocusDistance(photo_state->focus_distance->current); settings_->setFocusDistance(photo_state->focus_distance->current);
} }
if (HasPanTiltZoomPermissionGranted()) { if (HasPanTiltZoomPermissionGranted()) {
if (photo_state->pan->max != photo_state->pan->min) { if (photo_state->pan->max != photo_state->pan->min) {
capabilities_->setPan(MediaSettingsRange::Create(*photo_state->pan)); capabilities_->setPan(ToMediaSettingsRange(*photo_state->pan));
settings_->setPan(photo_state->pan->current); settings_->setPan(photo_state->pan->current);
} }
if (photo_state->tilt->max != photo_state->tilt->min) { if (photo_state->tilt->max != photo_state->tilt->min) {
capabilities_->setTilt(MediaSettingsRange::Create(*photo_state->tilt)); capabilities_->setTilt(ToMediaSettingsRange(*photo_state->tilt));
settings_->setTilt(photo_state->tilt->current); settings_->setTilt(photo_state->tilt->current);
} }
} }
if (HasZoomPermissionGranted()) { if (HasZoomPermissionGranted()) {
if (photo_state->zoom->max != photo_state->zoom->min) { if (photo_state->zoom->max != photo_state->zoom->min) {
capabilities_->setZoom(MediaSettingsRange::Create(*photo_state->zoom)); capabilities_->setZoom(ToMediaSettingsRange(*photo_state->zoom));
settings_->setZoom(photo_state->zoom->current); settings_->setZoom(photo_state->zoom->current);
} }
} }
......
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_IMAGECAPTURE_MEDIA_SETTINGS_RANGE_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_IMAGECAPTURE_MEDIA_SETTINGS_RANGE_H_
#include "media/capture/mojom/image_capture.mojom-blink.h"
#include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
namespace blink {
class MediaSettingsRange final : public ScriptWrappable {
DEFINE_WRAPPERTYPEINFO();
public:
static MediaSettingsRange* Create(double max, double min, double step) {
return MakeGarbageCollected<MediaSettingsRange>(max, min, step);
}
static MediaSettingsRange* Create(media::mojom::blink::RangePtr range) {
return MediaSettingsRange::Create(*range);
}
static MediaSettingsRange* Create(const media::mojom::blink::Range& range) {
return MediaSettingsRange::Create(range.max, range.min, range.step);
}
MediaSettingsRange(double max, double min, double step)
: max_(max), min_(min), step_(step) {}
double max() const { return max_; }
double min() const { return min_; }
double step() const { return step_; }
private:
double max_;
double min_;
double step_;
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_IMAGECAPTURE_MEDIA_SETTINGS_RANGE_H_
...@@ -4,9 +4,8 @@ ...@@ -4,9 +4,8 @@
// https://w3c.github.io/mediacapture-image/#mediasettingsrange // https://w3c.github.io/mediacapture-image/#mediasettingsrange
[Exposed=Window] dictionary MediaSettingsRange {
interface MediaSettingsRange { double max;
readonly attribute double max; double min;
readonly attribute double min; double step;
readonly attribute double step;
}; };
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/modules/imagecapture/photo_capabilities.h"
namespace blink {
Vector<String> PhotoCapabilities::fillLightMode() const {
Vector<String> fill_light_modes;
for (const auto& mode : fill_light_modes_) {
switch (mode) {
case media::mojom::blink::FillLightMode::OFF:
fill_light_modes.push_back("off");
break;
case media::mojom::blink::FillLightMode::AUTO:
fill_light_modes.push_back("auto");
break;
case media::mojom::blink::FillLightMode::FLASH:
fill_light_modes.push_back("flash");
break;
default:
NOTREACHED();
}
}
return fill_light_modes;
}
String PhotoCapabilities::redEyeReduction() const {
switch (red_eye_reduction_) {
case media::mojom::blink::RedEyeReduction::NEVER:
return "never";
case media::mojom::blink::RedEyeReduction::ALWAYS:
return "always";
case media::mojom::blink::RedEyeReduction::CONTROLLABLE:
return "controllable";
default:
NOTREACHED();
}
return "";
}
bool PhotoCapabilities::IsRedEyeReductionControllable() const {
return red_eye_reduction_ ==
media::mojom::blink::RedEyeReduction::CONTROLLABLE;
}
void PhotoCapabilities::Trace(Visitor* visitor) const {
visitor->Trace(image_height_);
visitor->Trace(image_width_);
ScriptWrappable::Trace(visitor);
}
} // namespace blink
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_IMAGECAPTURE_PHOTO_CAPABILITIES_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_IMAGECAPTURE_PHOTO_CAPABILITIES_H_
#include "media/capture/mojom/image_capture.mojom-blink-forward.h"
#include "third_party/blink/renderer/modules/imagecapture/media_settings_range.h"
#include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
#include "third_party/blink/renderer/platform/wtf/vector.h"
namespace blink {
class PhotoCapabilities final : public ScriptWrappable {
DEFINE_WRAPPERTYPEINFO();
public:
PhotoCapabilities() = default;
~PhotoCapabilities() override = default;
MediaSettingsRange* imageHeight() const { return image_height_; }
void SetImageHeight(MediaSettingsRange* value) { image_height_ = value; }
MediaSettingsRange* imageWidth() const { return image_width_; }
void SetImageWidth(MediaSettingsRange* value) { image_width_ = value; }
Vector<String> fillLightMode() const;
void SetFillLightMode(Vector<media::mojom::blink::FillLightMode> modes) {
fill_light_modes_ = modes;
}
String redEyeReduction() const;
void SetRedEyeReduction(
media::mojom::blink::RedEyeReduction red_eye_reduction) {
red_eye_reduction_ = red_eye_reduction;
}
bool IsRedEyeReductionControllable() const;
void Trace(Visitor*) const override;
private:
Member<MediaSettingsRange> image_height_;
Member<MediaSettingsRange> image_width_;
Vector<media::mojom::blink::FillLightMode> fill_light_modes_;
media::mojom::blink::RedEyeReduction red_eye_reduction_;
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_IMAGECAPTURE_PHOTO_CAPABILITIES_H_
...@@ -23,10 +23,9 @@ enum FillLightMode { ...@@ -23,10 +23,9 @@ enum FillLightMode {
"flash", "flash",
}; };
[Exposed=Window] dictionary PhotoCapabilities {
interface PhotoCapabilities { RedEyeReduction redEyeReduction;
readonly attribute RedEyeReduction redEyeReduction; MediaSettingsRange imageHeight;
readonly attribute MediaSettingsRange imageHeight; MediaSettingsRange imageWidth;
readonly attribute MediaSettingsRange imageWidth; sequence<FillLightMode> fillLightMode;
readonly attribute FrozenArray<FillLightMode> fillLightMode;
}; };
...@@ -77,8 +77,6 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) { ...@@ -77,8 +77,6 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) {
'focusMode'); 'focusMode');
} }
assert_true(capabilities.exposureCompensation instanceof
MediaSettingsRange);
assert_equals(capabilities.exposureCompensation.max, assert_equals(capabilities.exposureCompensation.max,
mockCapabilities.exposureCompensation.max); mockCapabilities.exposureCompensation.max);
assert_equals(capabilities.exposureCompensation.min, assert_equals(capabilities.exposureCompensation.min,
...@@ -86,8 +84,6 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) { ...@@ -86,8 +84,6 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) {
assert_equals(capabilities.exposureCompensation.step, assert_equals(capabilities.exposureCompensation.step,
mockCapabilities.exposureCompensation.step); mockCapabilities.exposureCompensation.step);
assert_true(capabilities.exposureTime instanceof
MediaSettingsRange);
assert_equals(capabilities.exposureTime.max, assert_equals(capabilities.exposureTime.max,
mockCapabilities.exposureTime.max); mockCapabilities.exposureTime.max);
assert_equals(capabilities.exposureTime.min, assert_equals(capabilities.exposureTime.min,
...@@ -95,8 +91,6 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) { ...@@ -95,8 +91,6 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) {
assert_equals(capabilities.exposureTime.step, assert_equals(capabilities.exposureTime.step,
mockCapabilities.exposureTime.step); mockCapabilities.exposureTime.step);
assert_true(capabilities.colorTemperature instanceof
MediaSettingsRange);
assert_equals(capabilities.colorTemperature.max, assert_equals(capabilities.colorTemperature.max,
mockCapabilities.colorTemperature.max); mockCapabilities.colorTemperature.max);
assert_equals(capabilities.colorTemperature.min, assert_equals(capabilities.colorTemperature.min,
...@@ -104,12 +98,10 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) { ...@@ -104,12 +98,10 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) {
assert_equals(capabilities.colorTemperature.step, assert_equals(capabilities.colorTemperature.step,
mockCapabilities.colorTemperature.step); mockCapabilities.colorTemperature.step);
assert_true(capabilities.iso instanceof MediaSettingsRange);
assert_equals(capabilities.iso.max, mockCapabilities.iso.max); assert_equals(capabilities.iso.max, mockCapabilities.iso.max);
assert_equals(capabilities.iso.min, mockCapabilities.iso.min); assert_equals(capabilities.iso.min, mockCapabilities.iso.min);
assert_equals(capabilities.iso.step, mockCapabilities.iso.step); assert_equals(capabilities.iso.step, mockCapabilities.iso.step);
assert_true(capabilities.brightness instanceof MediaSettingsRange);
assert_equals(capabilities.brightness.max, assert_equals(capabilities.brightness.max,
mockCapabilities.brightness.max); mockCapabilities.brightness.max);
assert_equals(capabilities.brightness.min, assert_equals(capabilities.brightness.min,
...@@ -117,7 +109,6 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) { ...@@ -117,7 +109,6 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) {
assert_equals(capabilities.brightness.step, assert_equals(capabilities.brightness.step,
mockCapabilities.brightness.step); mockCapabilities.brightness.step);
assert_true(capabilities.contrast instanceof MediaSettingsRange);
assert_equals(capabilities.contrast.max, assert_equals(capabilities.contrast.max,
mockCapabilities.contrast.max); mockCapabilities.contrast.max);
assert_equals(capabilities.contrast.min, assert_equals(capabilities.contrast.min,
...@@ -125,7 +116,6 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) { ...@@ -125,7 +116,6 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) {
assert_equals(capabilities.contrast.step, assert_equals(capabilities.contrast.step,
mockCapabilities.contrast.step); mockCapabilities.contrast.step);
assert_true(capabilities.saturation instanceof MediaSettingsRange);
assert_equals(capabilities.saturation.max, assert_equals(capabilities.saturation.max,
mockCapabilities.saturation.max); mockCapabilities.saturation.max);
assert_equals(capabilities.saturation.min, assert_equals(capabilities.saturation.min,
...@@ -133,7 +123,6 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) { ...@@ -133,7 +123,6 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) {
assert_equals(capabilities.saturation.step, assert_equals(capabilities.saturation.step,
mockCapabilities.saturation.step); mockCapabilities.saturation.step);
assert_true(capabilities.sharpness instanceof MediaSettingsRange);
assert_equals(capabilities.sharpness.max, assert_equals(capabilities.sharpness.max,
mockCapabilities.sharpness.max); mockCapabilities.sharpness.max);
assert_equals(capabilities.sharpness.min, assert_equals(capabilities.sharpness.min,
...@@ -141,7 +130,6 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) { ...@@ -141,7 +130,6 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) {
assert_equals(capabilities.sharpness.step, assert_equals(capabilities.sharpness.step,
mockCapabilities.sharpness.step); mockCapabilities.sharpness.step);
assert_true(capabilities.focusDistance instanceof MediaSettingsRange);
assert_equals(capabilities.focusDistance.max, assert_equals(capabilities.focusDistance.max,
mockCapabilities.focusDistance.max); mockCapabilities.focusDistance.max);
assert_equals(capabilities.focusDistance.min, assert_equals(capabilities.focusDistance.min,
...@@ -150,17 +138,14 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) { ...@@ -150,17 +138,14 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) {
mockCapabilities.focusDistance.step); mockCapabilities.focusDistance.step);
if (ptzPermission === 'granted') { if (ptzPermission === 'granted') {
assert_true(capabilities.pan instanceof MediaSettingsRange);
assert_equals(capabilities.pan.max, mockCapabilities.pan.max); assert_equals(capabilities.pan.max, mockCapabilities.pan.max);
assert_equals(capabilities.pan.min, mockCapabilities.pan.min); assert_equals(capabilities.pan.min, mockCapabilities.pan.min);
assert_equals(capabilities.pan.step, mockCapabilities.pan.step); assert_equals(capabilities.pan.step, mockCapabilities.pan.step);
assert_true(capabilities.tilt instanceof MediaSettingsRange);
assert_equals(capabilities.tilt.max, mockCapabilities.tilt.max); assert_equals(capabilities.tilt.max, mockCapabilities.tilt.max);
assert_equals(capabilities.tilt.min, mockCapabilities.tilt.min); assert_equals(capabilities.tilt.min, mockCapabilities.tilt.min);
assert_equals(capabilities.tilt.step, mockCapabilities.tilt.step); assert_equals(capabilities.tilt.step, mockCapabilities.tilt.step);
assert_true(capabilities.zoom instanceof MediaSettingsRange);
assert_equals(capabilities.zoom.max, mockCapabilities.zoom.max); assert_equals(capabilities.zoom.max, mockCapabilities.zoom.max);
assert_equals(capabilities.zoom.min, mockCapabilities.zoom.min); assert_equals(capabilities.zoom.min, mockCapabilities.zoom.min);
assert_equals(capabilities.zoom.step, mockCapabilities.zoom.step); assert_equals(capabilities.zoom.step, mockCapabilities.zoom.step);
......
...@@ -22,17 +22,14 @@ image_capture_test(async (t, imageCaptureTest) => { ...@@ -22,17 +22,14 @@ image_capture_test(async (t, imageCaptureTest) => {
assert_true(typeof capturer.getPhotoCapabilities == 'function'); assert_true(typeof capturer.getPhotoCapabilities == 'function');
let capabilities = await capturer.getPhotoCapabilities(); let capabilities = await capturer.getPhotoCapabilities();
assert_true(capabilities instanceof PhotoCapabilities);
assert_equals(capabilities.redEyeReduction, 'controllable', assert_equals(capabilities.redEyeReduction, 'controllable',
'redEyeReduction'); 'redEyeReduction');
assert_true(capabilities.imageHeight instanceof MediaSettingsRange);
assert_equals(capabilities.imageHeight.max, mockCapabilities.height.max); assert_equals(capabilities.imageHeight.max, mockCapabilities.height.max);
assert_equals(capabilities.imageHeight.min, mockCapabilities.height.min); assert_equals(capabilities.imageHeight.min, mockCapabilities.height.min);
assert_equals(capabilities.imageHeight.step, mockCapabilities.height.step); assert_equals(capabilities.imageHeight.step, mockCapabilities.height.step);
assert_true(capabilities.imageWidth instanceof MediaSettingsRange);
assert_equals(capabilities.imageWidth.max, mockCapabilities.width.max); assert_equals(capabilities.imageWidth.max, mockCapabilities.width.max);
assert_equals(capabilities.imageWidth.min, mockCapabilities.width.min); assert_equals(capabilities.imageWidth.min, mockCapabilities.width.min);
assert_equals(capabilities.imageWidth.step, mockCapabilities.width.step); assert_equals(capabilities.imageWidth.step, mockCapabilities.width.step);
......
...@@ -4314,12 +4314,6 @@ interface MediaSession ...@@ -4314,12 +4314,6 @@ interface MediaSession
method setPositionState method setPositionState
setter metadata setter metadata
setter playbackState setter playbackState
interface MediaSettingsRange
attribute @@toStringTag
getter max
getter min
getter step
method constructor
interface MediaSource : EventTarget interface MediaSource : EventTarget
static method isTypeSupported static method isTypeSupported
attribute @@toStringTag attribute @@toStringTag
...@@ -5122,13 +5116,6 @@ interface Permissions ...@@ -5122,13 +5116,6 @@ interface Permissions
attribute @@toStringTag attribute @@toStringTag
method constructor method constructor
method query method query
interface PhotoCapabilities
attribute @@toStringTag
getter fillLightMode
getter imageHeight
getter imageWidth
getter redEyeReduction
method constructor
interface PictureInPictureEvent : Event interface PictureInPictureEvent : Event
attribute @@toStringTag attribute @@toStringTag
getter pictureInPictureWindow getter pictureInPictureWindow
......
...@@ -5155,12 +5155,6 @@ interface MediaSession ...@@ -5155,12 +5155,6 @@ interface MediaSession
method setPositionState method setPositionState
setter metadata setter metadata
setter playbackState setter playbackState
interface MediaSettingsRange
attribute @@toStringTag
getter max
getter min
getter step
method constructor
interface MediaSource : EventTarget interface MediaSource : EventTarget
static method isTypeSupported static method isTypeSupported
attribute @@toStringTag attribute @@toStringTag
...@@ -6105,13 +6099,6 @@ interface Permissions ...@@ -6105,13 +6099,6 @@ interface Permissions
method request method request
method requestAll method requestAll
method revoke method revoke
interface PhotoCapabilities
attribute @@toStringTag
getter fillLightMode
getter imageHeight
getter imageWidth
getter redEyeReduction
method constructor
interface PictureInPictureEvent : Event interface PictureInPictureEvent : Event
attribute @@toStringTag attribute @@toStringTag
getter pictureInPictureWindow getter pictureInPictureWindow
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment