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

Unified Diff: content/renderer/media/media_stream_constraints_util.cc

Issue 1729683002: Remove old-style constraints from Chrome internals (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Complete the interface change Created 4 years, 9 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: content/renderer/media/media_stream_constraints_util.cc
diff --git a/content/renderer/media/media_stream_constraints_util.cc b/content/renderer/media/media_stream_constraints_util.cc
index 7846582457a5ea344fbca0521e17209c00052f52..1884f7547e8e7036576ddab676ae379d8f9d0ae6 100644
--- a/content/renderer/media/media_stream_constraints_util.cc
+++ b/content/renderer/media/media_stream_constraints_util.cc
@@ -13,127 +13,127 @@ namespace content {
namespace {
-// Convert a string ("true", "false") to a boolean.
-bool ConvertStringToBoolean(const std::string& string, bool* value) {
- static const char kValueTrue[] = "true";
- static const char kValueFalse[] = "false";
-
- *value = (string == kValueTrue);
- return *value || (string == kValueFalse);
-}
-
-} // namespace
-
-bool GetConstraintValueAsBoolean(const blink::WebMediaConstraints& constraints,
- const std::string& name,
- bool* value) {
- return GetMandatoryConstraintValueAsBoolean(constraints, name, value) ||
- GetOptionalConstraintValueAsBoolean(constraints, name, value);
-}
-
-bool GetConstraintValueAsInteger(const blink::WebMediaConstraints& constraints,
- const std::string& name,
- int* value) {
- return GetMandatoryConstraintValueAsInteger(constraints, name, value) ||
- GetOptionalConstraintValueAsInteger(constraints, name, value);
+template <typename P, typename T>
+bool ScanConstraintsForExactValue(const blink::WebMediaConstraints& constraints,
+ P picker,
+ T* value) {
+ const auto& the_field = constraints.basic().*picker;
+ if (the_field.hasExact()) {
+ *value = the_field.exact();
+ return true;
+ }
+ for (const auto& advanced_constraint : constraints.advanced()) {
+ const auto& the_field = advanced_constraint.*picker;
+ if (the_field.hasExact()) {
+ *value = the_field.exact();
+ return true;
+ }
+ }
+ return false;
}
-bool GetConstraintValueAsDouble(const blink::WebMediaConstraints& constraints,
- const std::string& name,
- double* value) {
- return GetMandatoryConstraintValueAsDouble(constraints, name, value) ||
- GetOptionalConstraintValueAsDouble(constraints, name, value);
+template <typename P, typename T>
+bool ScanConstraintsForMaxValue(const blink::WebMediaConstraints& constraints,
+ P picker,
+ T* value) {
+ const auto& the_field = constraints.basic().*picker;
+ if (the_field.hasMax()) {
+ *value = the_field.max();
+ return true;
+ }
+ for (const auto& advanced_constraint : constraints.advanced()) {
+ const auto& the_field = advanced_constraint.*picker;
+ if (the_field.hasMax()) {
+ *value = the_field.max();
+ return true;
+ }
+ }
+ return false;
}
-bool GetConstraintValueAsString(const blink::WebMediaConstraints& constraints,
- const std::string& name,
- std::string* value) {
- blink::WebString value_str;
- base::string16 name_16 = base::UTF8ToUTF16(name);
- if (!constraints.getMandatoryConstraintValue(name_16, value_str) &&
- !constraints.getOptionalConstraintValue(name_16, value_str)) {
- return false;
+template <typename P, typename T>
+bool ScanConstraintsForMinValue(const blink::WebMediaConstraints& constraints,
+ P picker,
+ T* value) {
+ const auto& the_field = constraints.basic().*picker;
+ if (the_field.hasMin()) {
+ *value = the_field.min();
+ return true;
}
-
- *value = value_str.utf8();
- return true;
+ for (const auto& advanced_constraint : constraints.advanced()) {
+ const auto& the_field = advanced_constraint.*picker;
+ if (the_field.hasMin()) {
+ *value = the_field.min();
+ return true;
+ }
+ }
+ return false;
}
-bool GetMandatoryConstraintValueAsBoolean(
+} // namespace
+
+bool GetConstraintValueAsBoolean(
const blink::WebMediaConstraints& constraints,
- const std::string& name,
+ const blink::BooleanConstraint blink::WebMediaTrackConstraintSet::*picker,
bool* value) {
- blink::WebString value_str;
- if (!constraints.getMandatoryConstraintValue(base::UTF8ToUTF16(name),
- value_str)) {
- return false;
- }
+ return ScanConstraintsForExactValue(constraints, picker, value);
+}
- return ConvertStringToBoolean(value_str.utf8(), value);
+bool GetConstraintValueAsInteger(
+ const blink::WebMediaConstraints& constraints,
+ const blink::LongConstraint blink::WebMediaTrackConstraintSet::*picker,
+ int* value) {
+ return ScanConstraintsForExactValue(constraints, picker, value);
}
-bool GetMandatoryConstraintValueAsInteger(
+bool GetConstraintMinAsInteger(
const blink::WebMediaConstraints& constraints,
- const std::string& name,
+ const blink::LongConstraint blink::WebMediaTrackConstraintSet::*picker,
int* value) {
- blink::WebString value_str;
- if (!constraints.getMandatoryConstraintValue(base::UTF8ToUTF16(name),
- value_str)) {
- return false;
- }
+ return ScanConstraintsForMinValue(constraints, picker, value);
+}
- return base::StringToInt(value_str.utf8(), value);
+bool GetConstraintMaxAsInteger(
+ const blink::WebMediaConstraints& constraints,
+ const blink::LongConstraint blink::WebMediaTrackConstraintSet::*picker,
+ int* value) {
+ return ScanConstraintsForMaxValue(constraints, picker, value);
}
-bool GetMandatoryConstraintValueAsDouble(
+bool GetConstraintValueAsDouble(
const blink::WebMediaConstraints& constraints,
- const std::string& name,
+ const blink::DoubleConstraint blink::WebMediaTrackConstraintSet::*picker,
double* value) {
- blink::WebString value_str;
- if (!constraints.getMandatoryConstraintValue(base::UTF8ToUTF16(name),
- value_str)) {
- return false;
- }
- return base::StringToDouble(value_str.utf8(), value);
+ return ScanConstraintsForExactValue(constraints, picker, value);
}
-bool GetOptionalConstraintValueAsBoolean(
+bool GetConstraintMaxAsDouble(
const blink::WebMediaConstraints& constraints,
- const std::string& name,
- bool* value) {
- blink::WebString value_str;
- if (!constraints.getOptionalConstraintValue(base::UTF8ToUTF16(name),
- value_str)) {
- return false;
- }
-
- return ConvertStringToBoolean(value_str.utf8(), value);
+ const blink::DoubleConstraint blink::WebMediaTrackConstraintSet::*picker,
+ double* value) {
+ return ScanConstraintsForExactValue(constraints, picker, value);
}
-bool GetOptionalConstraintValueAsInteger(
+bool GetConstraintValueAsString(
const blink::WebMediaConstraints& constraints,
- const std::string& name,
- int* value) {
- blink::WebString value_str;
- if (!constraints.getOptionalConstraintValue(base::UTF8ToUTF16(name),
- value_str)) {
- return false;
+ const blink::StringConstraint blink::WebMediaTrackConstraintSet::*picker,
+ std::string* value) {
+ blink::WebVector<blink::WebString> return_value;
+ if (ScanConstraintsForExactValue(constraints, picker, &return_value)) {
+ *value = return_value[0].utf8();
+ return true;
}
-
- return base::StringToInt(value_str.utf8(), value);
+ return false;
}
-bool GetOptionalConstraintValueAsDouble(
+rtc::Optional<bool> ConstraintToOptional(
const blink::WebMediaConstraints& constraints,
- const std::string& name,
- double* value) {
- blink::WebString value_str;
- if (!constraints.getOptionalConstraintValue(base::UTF8ToUTF16(name),
- value_str)) {
- return false;
+ const blink::BooleanConstraint blink::WebMediaTrackConstraintSet::*picker) {
+ bool value;
+ if (GetConstraintValueAsBoolean(constraints, picker, &value)) {
+ return rtc::Optional<bool>(value);
}
-
- return base::StringToDouble(value_str.utf8(), value);
+ return rtc::Optional<bool>();
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698