OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 const Dictionary& mandatoryConstraintsDictionary, | 157 const Dictionary& mandatoryConstraintsDictionary, |
158 Vector<NameValueStringConstraint>& mandatory) { | 158 Vector<NameValueStringConstraint>& mandatory) { |
159 DummyExceptionStateForTesting exceptionState; | 159 DummyExceptionStateForTesting exceptionState; |
160 const HashMap<String, String>& mandatoryConstraintsHashMap = | 160 const HashMap<String, String>& mandatoryConstraintsHashMap = |
161 mandatoryConstraintsDictionary.getOwnPropertiesAsStringHashMap( | 161 mandatoryConstraintsDictionary.getOwnPropertiesAsStringHashMap( |
162 exceptionState); | 162 exceptionState); |
163 if (exceptionState.hadException()) | 163 if (exceptionState.hadException()) |
164 return false; | 164 return false; |
165 | 165 |
166 for (const auto& iter : mandatoryConstraintsHashMap) | 166 for (const auto& iter : mandatoryConstraintsHashMap) |
167 mandatory.append(NameValueStringConstraint(iter.key, iter.value)); | 167 mandatory.push_back(NameValueStringConstraint(iter.key, iter.value)); |
168 return true; | 168 return true; |
169 } | 169 } |
170 | 170 |
171 static bool parseOptionalConstraintsVectorElement( | 171 static bool parseOptionalConstraintsVectorElement( |
172 const Dictionary& constraint, | 172 const Dictionary& constraint, |
173 Vector<NameValueStringConstraint>& optionalConstraintsVector) { | 173 Vector<NameValueStringConstraint>& optionalConstraintsVector) { |
174 DummyExceptionStateForTesting exceptionState; | 174 DummyExceptionStateForTesting exceptionState; |
175 const Vector<String>& localNames = | 175 const Vector<String>& localNames = |
176 constraint.getPropertyNames(exceptionState); | 176 constraint.getPropertyNames(exceptionState); |
177 if (exceptionState.hadException()) | 177 if (exceptionState.hadException()) |
178 return false; | 178 return false; |
179 if (localNames.size() != 1) | 179 if (localNames.size() != 1) |
180 return false; | 180 return false; |
181 const String& key = localNames[0]; | 181 const String& key = localNames[0]; |
182 String value; | 182 String value; |
183 bool ok = DictionaryHelper::get(constraint, key, value); | 183 bool ok = DictionaryHelper::get(constraint, key, value); |
184 if (!ok) | 184 if (!ok) |
185 return false; | 185 return false; |
186 optionalConstraintsVector.append(NameValueStringConstraint(key, value)); | 186 optionalConstraintsVector.push_back(NameValueStringConstraint(key, value)); |
187 return true; | 187 return true; |
188 } | 188 } |
189 | 189 |
190 // Old style parser. Deprecated. | 190 // Old style parser. Deprecated. |
191 static bool parse(const Dictionary& constraintsDictionary, | 191 static bool parse(const Dictionary& constraintsDictionary, |
192 Vector<NameValueStringConstraint>& optional, | 192 Vector<NameValueStringConstraint>& optional, |
193 Vector<NameValueStringConstraint>& mandatory) { | 193 Vector<NameValueStringConstraint>& mandatory) { |
194 if (constraintsDictionary.isUndefinedOrNull()) | 194 if (constraintsDictionary.isUndefinedOrNull()) |
195 return true; | 195 return true; |
196 | 196 |
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 return constraints; | 462 return constraints; |
463 // We ignore unknow names and syntax errors in optional constraints. | 463 // We ignore unknow names and syntax errors in optional constraints. |
464 MediaErrorState ignoredErrorState; | 464 MediaErrorState ignoredErrorState; |
465 Vector<WebMediaTrackConstraintSet> advancedVector; | 465 Vector<WebMediaTrackConstraintSet> advancedVector; |
466 for (const auto& optionalConstraint : optional) { | 466 for (const auto& optionalConstraint : optional) { |
467 WebMediaTrackConstraintSet advancedElement; | 467 WebMediaTrackConstraintSet advancedElement; |
468 Vector<NameValueStringConstraint> elementAsList(1, optionalConstraint); | 468 Vector<NameValueStringConstraint> elementAsList(1, optionalConstraint); |
469 parseOldStyleNames(context, elementAsList, false, advancedElement, | 469 parseOldStyleNames(context, elementAsList, false, advancedElement, |
470 ignoredErrorState); | 470 ignoredErrorState); |
471 if (!advancedElement.isEmpty()) | 471 if (!advancedElement.isEmpty()) |
472 advancedVector.append(advancedElement); | 472 advancedVector.push_back(advancedElement); |
473 } | 473 } |
474 constraints.initialize(basic, advancedVector); | 474 constraints.initialize(basic, advancedVector); |
475 return constraints; | 475 return constraints; |
476 } | 476 } |
477 | 477 |
478 // Deprecated. | 478 // Deprecated. |
479 WebMediaConstraints create(ExecutionContext* context, | 479 WebMediaConstraints create(ExecutionContext* context, |
480 const Dictionary& constraintsDictionary, | 480 const Dictionary& constraintsDictionary, |
481 MediaErrorState& errorState) { | 481 MediaErrorState& errorState) { |
482 Vector<NameValueStringConstraint> optional; | 482 Vector<NameValueStringConstraint> optional; |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
677 WebMediaConstraints constraints; | 677 WebMediaConstraints constraints; |
678 WebMediaTrackConstraintSet constraintBuffer; | 678 WebMediaTrackConstraintSet constraintBuffer; |
679 Vector<WebMediaTrackConstraintSet> advancedBuffer; | 679 Vector<WebMediaTrackConstraintSet> advancedBuffer; |
680 copyConstraintSet(constraintsIn, NakedValueDisposition::kTreatAsIdeal, | 680 copyConstraintSet(constraintsIn, NakedValueDisposition::kTreatAsIdeal, |
681 constraintBuffer); | 681 constraintBuffer); |
682 if (constraintsIn.hasAdvanced()) { | 682 if (constraintsIn.hasAdvanced()) { |
683 for (const auto& element : constraintsIn.advanced()) { | 683 for (const auto& element : constraintsIn.advanced()) { |
684 WebMediaTrackConstraintSet advancedElement; | 684 WebMediaTrackConstraintSet advancedElement; |
685 copyConstraintSet(element, NakedValueDisposition::kTreatAsExact, | 685 copyConstraintSet(element, NakedValueDisposition::kTreatAsExact, |
686 advancedElement); | 686 advancedElement); |
687 advancedBuffer.append(advancedElement); | 687 advancedBuffer.push_back(advancedElement); |
688 } | 688 } |
689 } | 689 } |
690 constraints.initialize(constraintBuffer, advancedBuffer); | 690 constraints.initialize(constraintBuffer, advancedBuffer); |
691 return constraints; | 691 return constraints; |
692 } | 692 } |
693 | 693 |
694 WebMediaConstraints create(ExecutionContext* context, | 694 WebMediaConstraints create(ExecutionContext* context, |
695 const MediaTrackConstraints& constraintsIn, | 695 const MediaTrackConstraints& constraintsIn, |
696 MediaErrorState& errorState) { | 696 MediaErrorState& errorState) { |
697 WebMediaConstraints standardForm = convertConstraintsToWeb(constraintsIn); | 697 WebMediaConstraints standardForm = convertConstraintsToWeb(constraintsIn); |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
806 } | 806 } |
807 return outputUnion; | 807 return outputUnion; |
808 } | 808 } |
809 | 809 |
810 StringOrStringSequence convertStringSequence( | 810 StringOrStringSequence convertStringSequence( |
811 const WebVector<WebString>& input) { | 811 const WebVector<WebString>& input) { |
812 StringOrStringSequence theStrings; | 812 StringOrStringSequence theStrings; |
813 if (input.size() > 1) { | 813 if (input.size() > 1) { |
814 Vector<String> buffer; | 814 Vector<String> buffer; |
815 for (const auto& scanner : input) | 815 for (const auto& scanner : input) |
816 buffer.append(scanner); | 816 buffer.push_back(scanner); |
817 theStrings.setStringSequence(buffer); | 817 theStrings.setStringSequence(buffer); |
818 } else if (input.size() > 0) { | 818 } else if (input.size() > 0) { |
819 theStrings.setString(input[0]); | 819 theStrings.setString(input[0]); |
820 } | 820 } |
821 return theStrings; | 821 return theStrings; |
822 } | 822 } |
823 | 823 |
824 StringOrStringSequenceOrConstrainDOMStringParameters convertString( | 824 StringOrStringSequenceOrConstrainDOMStringParameters convertString( |
825 const StringConstraint& input, | 825 const StringConstraint& input, |
826 NakedValueDisposition nakedTreatment) { | 826 NakedValueDisposition nakedTreatment) { |
827 StringOrStringSequenceOrConstrainDOMStringParameters outputUnion; | 827 StringOrStringSequenceOrConstrainDOMStringParameters outputUnion; |
828 if (useNakedNonNumeric(input, nakedTreatment)) { | 828 if (useNakedNonNumeric(input, nakedTreatment)) { |
829 WebVector<WebString> inputBuffer( | 829 WebVector<WebString> inputBuffer( |
830 getNakedValue<WebVector<WebString>>(input, nakedTreatment)); | 830 getNakedValue<WebVector<WebString>>(input, nakedTreatment)); |
831 if (inputBuffer.size() > 1) { | 831 if (inputBuffer.size() > 1) { |
832 Vector<String> buffer; | 832 Vector<String> buffer; |
833 for (const auto& scanner : inputBuffer) | 833 for (const auto& scanner : inputBuffer) |
834 buffer.append(scanner); | 834 buffer.push_back(scanner); |
835 outputUnion.setStringSequence(buffer); | 835 outputUnion.setStringSequence(buffer); |
836 } else if (inputBuffer.size() > 0) { | 836 } else if (inputBuffer.size() > 0) { |
837 outputUnion.setString(inputBuffer[0]); | 837 outputUnion.setString(inputBuffer[0]); |
838 } | 838 } |
839 } else if (!input.isEmpty()) { | 839 } else if (!input.isEmpty()) { |
840 ConstrainDOMStringParameters output; | 840 ConstrainDOMStringParameters output; |
841 if (input.hasExact()) | 841 if (input.hasExact()) |
842 output.setExact(convertStringSequence(input.exact())); | 842 output.setExact(convertStringSequence(input.exact())); |
843 if (input.hasIdeal()) | 843 if (input.hasIdeal()) |
844 output.setIdeal(convertStringSequence(input.ideal())); | 844 output.setIdeal(convertStringSequence(input.ideal())); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
903 void convertConstraints(const WebMediaConstraints& input, | 903 void convertConstraints(const WebMediaConstraints& input, |
904 MediaTrackConstraints& output) { | 904 MediaTrackConstraints& output) { |
905 if (input.isNull()) | 905 if (input.isNull()) |
906 return; | 906 return; |
907 convertConstraintSet(input.basic(), NakedValueDisposition::kTreatAsIdeal, | 907 convertConstraintSet(input.basic(), NakedValueDisposition::kTreatAsIdeal, |
908 output); | 908 output); |
909 HeapVector<MediaTrackConstraintSet> advancedVector; | 909 HeapVector<MediaTrackConstraintSet> advancedVector; |
910 for (const auto& it : input.advanced()) { | 910 for (const auto& it : input.advanced()) { |
911 MediaTrackConstraintSet element; | 911 MediaTrackConstraintSet element; |
912 convertConstraintSet(it, NakedValueDisposition::kTreatAsExact, element); | 912 convertConstraintSet(it, NakedValueDisposition::kTreatAsExact, element); |
913 advancedVector.append(element); | 913 advancedVector.push_back(element); |
914 } | 914 } |
915 if (!advancedVector.isEmpty()) | 915 if (!advancedVector.isEmpty()) |
916 output.setAdvanced(advancedVector); | 916 output.setAdvanced(advancedVector); |
917 } | 917 } |
918 | 918 |
919 } // namespace MediaConstraintsImpl | 919 } // namespace MediaConstraintsImpl |
920 } // namespace blink | 920 } // namespace blink |
OLD | NEW |