Chromium Code Reviews| Index: third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp |
| diff --git a/third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp b/third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp |
| index 8b463aae9b1e4979d974b736a45a334a42d14e97..7625361544e67659ddb589667f0f6a6658251525 100644 |
| --- a/third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp |
| +++ b/third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp |
| @@ -28,6 +28,7 @@ |
| namespace blink { |
| using FillLightMode = media::mojom::blink::FillLightMode; |
| +using MeteringMode = media::mojom::blink::MeteringMode; |
| namespace { |
| @@ -39,14 +40,14 @@ bool trackIsInactive(const MediaStreamTrack& track) { |
| return track.readyState() != "live" || !track.enabled() || track.muted(); |
| } |
| -media::mojom::blink::MeteringMode parseMeteringMode(const String& blinkMode) { |
| +MeteringMode parseMeteringMode(const String& blinkMode) { |
| if (blinkMode == "manual") |
| - return media::mojom::blink::MeteringMode::MANUAL; |
| + return MeteringMode::MANUAL; |
| if (blinkMode == "single-shot") |
| - return media::mojom::blink::MeteringMode::SINGLE_SHOT; |
| + return MeteringMode::SINGLE_SHOT; |
| if (blinkMode == "continuous") |
| - return media::mojom::blink::MeteringMode::CONTINUOUS; |
| - return media::mojom::blink::MeteringMode::NONE; |
| + return MeteringMode::CONTINUOUS; |
| + return MeteringMode::NONE; |
|
Reilly Grant (use Gerrit)
2017/03/31 20:13:09
if (blinkMode == "none")
return MeteringMode::NO
mcasas
2017/03/31 21:14:47
Right, done.
|
| } |
| FillLightMode parseFillLightMode(const String& blinkMode) { |
| @@ -56,18 +57,19 @@ FillLightMode parseFillLightMode(const String& blinkMode) { |
| return FillLightMode::AUTO; |
| if (blinkMode == "flash") |
| return FillLightMode::FLASH; |
| - return FillLightMode::NONE; |
| + NOTREACHED(); |
| + return FillLightMode::OFF; |
| } |
| -WebString toString(media::mojom::blink::MeteringMode value) { |
| +WebString toString(MeteringMode value) { |
| switch (value) { |
| - case media::mojom::blink::MeteringMode::NONE: |
| + case MeteringMode::NONE: |
| return WebString::fromUTF8("none"); |
| - case media::mojom::blink::MeteringMode::MANUAL: |
| + case MeteringMode::MANUAL: |
| return WebString::fromUTF8("manual"); |
| - case media::mojom::blink::MeteringMode::SINGLE_SHOT: |
| + case MeteringMode::SINGLE_SHOT: |
| return WebString::fromUTF8("single-shot"); |
| - case media::mojom::blink::MeteringMode::CONTINUOUS: |
| + case MeteringMode::CONTINUOUS: |
| return WebString::fromUTF8("continuous"); |
| default: |
| NOTREACHED() << "Unknown MeteringMode"; |
| @@ -345,8 +347,13 @@ void ImageCapture::setMediaTrackConstraints( |
| settings->zoom = constraints.zoom().getAsDouble(); |
| } |
| - // TODO(mcasas): add |torch| when the mojom interface is updated, |
| - // https://crbug.com/700607. |
| + // TODO(mcasas): support ConstrainBooleanParameters where applicable. |
| + settings->has_torch = |
| + constraints.hasTorch() && constraints.torch().isBoolean(); |
| + if (settings->has_torch) { |
| + m_currentConstraints.setTorch(constraints.torch()); |
| + settings->torch = constraints.torch().getAsBoolean(); |
| + } |
| m_service->SetOptions(m_streamTrack->component()->source()->id(), |
| std::move(settings), |
| @@ -387,6 +394,8 @@ void ImageCapture::getMediaTrackSettings(MediaTrackSettings& settings) const { |
| if (m_capabilities.hasZoom()) |
| settings.setZoom(m_capabilities.zoom()->current()); |
| + if (m_capabilities.hasTorch()) |
| + settings.setTorch(m_capabilities.torch()); |
| // TODO(mcasas): add |torch| when the mojom interface is updated, |
| // https://crbug.com/700607. |
| @@ -423,6 +432,8 @@ void ImageCapture::onPhotoCapabilities( |
| onCapabilitiesUpdate(capabilities.Clone()); |
| PhotoCapabilities* caps = PhotoCapabilities::create(); |
| + |
| + caps->setRedEyeReduction(capabilities->red_eye_reduction); |
| // TODO(mcasas): Remove the explicit MediaSettingsRange::create() when |
| // mojo::StructTraits supports garbage-collected mappings, |
| // https://crbug.com/700180. |
| @@ -430,17 +441,7 @@ void ImageCapture::onPhotoCapabilities( |
| MediaSettingsRange::create(std::move(capabilities->height))); |
| caps->setImageWidth( |
| MediaSettingsRange::create(std::move(capabilities->width))); |
| - |
| - // TODO(mcasas): use a list of supported modes when mojo is updated. |
| - // https://crbug.com/700607. |
| - if (capabilities->fill_light_mode == FillLightMode::NONE) |
| - caps->setFillLightMode(Vector<FillLightMode>()); |
| - else |
| - caps->setFillLightMode({capabilities->fill_light_mode}); |
| - |
| - // TODO(mcasas): use a list of supported modes when mojo is updated. |
| - // https://crbug.com/700607. |
| - caps->setRedEyeReduction(capabilities->red_eye_reduction); |
| + caps->setFillLightMode(capabilities->fill_light_mode); |
| resolver->resolve(caps); |
| } |
| @@ -533,6 +534,8 @@ void ImageCapture::onCapabilitiesUpdate( |
| MediaSettingsRange::create(std::move(capabilities->zoom))); |
| } |
| + m_capabilities.setTorch(capabilities->torch); |
| + |
| // TODO(mcasas): do |torch| when the mojom interface is updated, |
| // https://crbug.com/700607. |
| } |