Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(253)

Unified Diff: third_party/WebKit/Source/modules/imagecapture/ImageCapture.cpp

Issue 2795923003: Image Capture: remove MediaSettingsRange.current (Closed)
Patch Set: bugfix: getMediaTrackSettings() should merge dictionaries, not override the input parameter; Layout… Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..a460a3a0b47cbaff9b48e755343ea0e3a8f79ed7 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,38 @@ 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());
+ // Merge any present |m_settings| members into |settings|.
+
+ if (m_settings.hasWhiteBalanceMode())
+ settings.setWhiteBalanceMode(m_settings.whiteBalanceMode());
+ if (m_settings.hasExposureMode())
+ settings.setExposureMode(m_settings.exposureMode());
+ if (m_settings.hasFocusMode())
+ settings.setFocusMode(m_settings.focusMode());
+
+ if (m_settings.hasPointsOfInterest())
+ settings.setPointsOfInterest(m_settings.pointsOfInterest());
+
+ if (m_settings.hasExposureCompensation())
+ settings.setExposureCompensation(m_settings.exposureCompensation());
+ if (m_settings.hasColorTemperature())
+ settings.setColorTemperature(m_settings.colorTemperature());
+ if (m_settings.hasIso())
+ settings.setIso(m_settings.iso());
+
+ if (m_settings.hasBrightness())
+ settings.setBrightness(m_settings.brightness());
+ if (m_settings.hasContrast())
+ settings.setContrast(m_settings.contrast());
+ if (m_settings.hasSaturation())
+ settings.setSaturation(m_settings.saturation());
+ if (m_settings.hasSharpness())
+ settings.setSharpness(m_settings.sharpness());
+
+ if (m_settings.hasZoom())
+ settings.setZoom(m_settings.zoom());
+ if (m_settings.hasTorch())
+ settings.setTorch(m_settings.torch());
}
ImageCapture::ImageCapture(ExecutionContext* context, MediaStreamTrack* track)
@@ -496,20 +495,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(mojo::Clone(webPoint));
}
}
+ m_settings.setPointsOfInterest(std::move(currentPointsOfInterest));
// TODO(mcasas): Remove the explicit MediaSettingsRange::create() when
// mojo::StructTraits supports garbage-collected mappings,
@@ -518,34 +524,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 +580,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);

Powered by Google App Engine
This is Rietveld 408576698