bool WebMediaConstraintsPrivate::isEmpty() const { // TODO(hta): When generating advanced constraints, make sure no empty // elements can be added to the m_advanced vector. return m_basic.isEmpty() && m_advanced.isEmpty() && m_optional.isEmpty() && m_mandatory.isEmpty(); }
WebMediaConstraints create(const MediaTrackConstraintSet& constraintsIn, MediaErrorState& errorState) { WebMediaConstraints constraints; WebMediaTrackConstraintSet constraintBuffer; WebVector<WebMediaTrackConstraintSet> advancedBuffer; copyConstraints(constraintsIn, constraintBuffer); // TODO(hta): Add initialization of advanced constraints once present. // https://crbug.com/253412 if (constraintsIn.hasOptional() || constraintsIn.hasMandatory()) { if (!constraintBuffer.isEmpty()) { errorState.throwTypeError("Malformed constraint: Cannot use both optional/mandatory and specific constraints."); return WebMediaConstraints(); } WebVector<WebMediaConstraint> optional; WebVector<WebMediaConstraint> mandatory; if (!parse(constraintsIn, optional, mandatory)) { errorState.throwTypeError("Malformed constraints object."); return WebMediaConstraints(); } return createFromNamedConstraints(mandatory, optional, errorState); } constraints.initialize(constraintBuffer, advancedBuffer); return constraints; }