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 0c161acbfefae5bd29c5d8526575a3bc33c248e1..ce5a0357f32e28c6a8f9b36bb6264fe50617acfc 100644 |
| --- a/third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp |
| +++ b/third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp |
| @@ -16,7 +16,6 @@ |
| #include "modules/imagecapture/PhotoSettings.h" |
| #include "modules/mediastream/MediaStreamTrack.h" |
| #include "modules/mediastream/MediaTrackCapabilities.h" |
| -#include "modules/mediastream/MediaTrackSettings.h" |
| #include "platform/WaitableEvent.h" |
| #include "platform/mojo/MojoHelper.h" |
| #include "public/platform/InterfaceProvider.h" |
| @@ -371,38 +370,7 @@ const MediaTrackConstraintSet& ImageCapture::getMediaTrackConstraints() const { |
| } |
| void ImageCapture::getMediaTrackSettings(MediaTrackSettings& settings) const { |
| - if (m_capabilities.hasWhiteBalanceMode()) |
| - settings.setWhiteBalanceMode(m_capabilities.whiteBalanceMode()[0]); |
| - if (m_capabilities.hasExposureMode()) |
| - settings.setExposureMode(m_capabilities.exposureMode()[0]); |
| - if (m_capabilities.hasFocusMode()) |
| - settings.setFocusMode(m_capabilities.focusMode()[0]); |
| - |
| - if (!m_currentPointsOfInterest.isEmpty()) |
| - settings.setPointsOfInterest(m_currentPointsOfInterest); |
| - |
| - if (m_capabilities.hasExposureCompensation()) { |
| - settings.setExposureCompensation( |
| - m_capabilities.exposureCompensation()->current()); |
| - } |
| - if (m_capabilities.hasColorTemperature()) |
| - settings.setColorTemperature(m_capabilities.colorTemperature()->current()); |
| - if (m_capabilities.hasIso()) |
| - settings.setIso(m_capabilities.iso()->current()); |
| - |
| - if (m_capabilities.hasBrightness()) |
| - settings.setBrightness(m_capabilities.brightness()->current()); |
| - if (m_capabilities.hasContrast()) |
| - settings.setContrast(m_capabilities.contrast()->current()); |
| - if (m_capabilities.hasSaturation()) |
| - settings.setSaturation(m_capabilities.saturation()->current()); |
| - if (m_capabilities.hasSharpness()) |
| - settings.setSharpness(m_capabilities.sharpness()->current()); |
| - |
| - if (m_capabilities.hasZoom()) |
| - settings.setZoom(m_capabilities.zoom()->current()); |
| - if (m_capabilities.hasTorch()) |
| - settings.setTorch(m_capabilities.torch()); |
| + settings = m_settings; |
| } |
| ImageCapture::ImageCapture(ExecutionContext* context, MediaStreamTrack* track) |
| @@ -496,20 +464,27 @@ void ImageCapture::onCapabilitiesUpdateInternal( |
| // when moving these out of PhotoCapabilities, https://crbug.com/700607. |
| m_capabilities.setWhiteBalanceMode( |
| WTF::Vector<WTF::String>({toString(capabilities.white_balance_mode)})); |
| + if (m_capabilities.hasWhiteBalanceMode()) |
| + m_settings.setWhiteBalanceMode(m_capabilities.whiteBalanceMode()[0]); |
| m_capabilities.setExposureMode( |
| WTF::Vector<WTF::String>({toString(capabilities.exposure_mode)})); |
| + if (m_capabilities.hasExposureMode()) |
| + m_settings.setExposureMode(m_capabilities.exposureMode()[0]); |
| m_capabilities.setFocusMode( |
| WTF::Vector<WTF::String>({toString(capabilities.focus_mode)})); |
| + if (m_capabilities.hasFocusMode()) |
| + m_settings.setFocusMode(m_capabilities.focusMode()[0]); |
| + HeapVector<Point2D> currentPointsOfInterest; |
| if (!capabilities.points_of_interest.isEmpty()) { |
| - m_currentPointsOfInterest.clear(); |
| for (const auto& point : capabilities.points_of_interest) { |
| Point2D webPoint; |
| webPoint.setX(point->x); |
| webPoint.setY(point->y); |
| - m_currentPointsOfInterest.push_back(mojo::Clone(webPoint)); |
| + currentPointsOfInterest.push_back(std::move(webPoint)); |
|
Reilly Grant (use Gerrit)
2017/04/04 22:46:29
The Point2D type doesn't have a move constructor s
mcasas
2017/04/04 22:59:47
Done.
|
| } |
| } |
| + m_settings.setPointsOfInterest(std::move(currentPointsOfInterest)); |
| // TODO(mcasas): Remove the explicit MediaSettingsRange::create() when |
| // mojo::StructTraits supports garbage-collected mappings, |
| @@ -518,34 +493,45 @@ void ImageCapture::onCapabilitiesUpdateInternal( |
| capabilities.exposure_compensation->min) { |
| m_capabilities.setExposureCompensation( |
| MediaSettingsRange::create(*capabilities.exposure_compensation)); |
| + m_settings.setExposureCompensation( |
| + capabilities.exposure_compensation->current); |
| } |
| if (capabilities.color_temperature->max != |
| capabilities.color_temperature->min) { |
| m_capabilities.setColorTemperature( |
| MediaSettingsRange::create(*capabilities.color_temperature)); |
| + m_settings.setColorTemperature(capabilities.color_temperature->current); |
| } |
| - if (capabilities.iso->max != capabilities.iso->min) |
| + if (capabilities.iso->max != capabilities.iso->min) { |
| m_capabilities.setIso(MediaSettingsRange::create(*capabilities.iso)); |
| + m_settings.setIso(capabilities.iso->current); |
| + } |
| if (capabilities.brightness->max != capabilities.brightness->min) { |
| m_capabilities.setBrightness( |
| MediaSettingsRange::create(*capabilities.brightness)); |
| + m_settings.setBrightness(capabilities.brightness->current); |
| } |
| if (capabilities.contrast->max != capabilities.contrast->min) { |
| m_capabilities.setContrast( |
| MediaSettingsRange::create(*capabilities.contrast)); |
| + m_settings.setContrast(capabilities.contrast->current); |
| } |
| if (capabilities.saturation->max != capabilities.saturation->min) { |
| m_capabilities.setSaturation( |
| MediaSettingsRange::create(*capabilities.saturation)); |
| + m_settings.setSaturation(capabilities.saturation->current); |
| } |
| if (capabilities.sharpness->max != capabilities.sharpness->min) { |
| m_capabilities.setSharpness( |
| MediaSettingsRange::create(*capabilities.sharpness)); |
| + m_settings.setSharpness(capabilities.sharpness->current); |
| } |
| - if (capabilities.zoom->max != capabilities.zoom->min) |
| + if (capabilities.zoom->max != capabilities.zoom->min) { |
| m_capabilities.setZoom(MediaSettingsRange::create(*capabilities.zoom)); |
| + m_settings.setZoom(capabilities.zoom->current); |
| + } |
| m_capabilities.setTorch(capabilities.torch); |
| @@ -563,8 +549,8 @@ void ImageCapture::onServiceConnectionError() { |
| DEFINE_TRACE(ImageCapture) { |
| visitor->trace(m_streamTrack); |
| visitor->trace(m_capabilities); |
| + visitor->trace(m_settings); |
| visitor->trace(m_currentConstraints); |
| - visitor->trace(m_currentPointsOfInterest); |
| visitor->trace(m_serviceRequests); |
| EventTargetWithInlineData::trace(visitor); |
| ContextLifecycleObserver::trace(visitor); |