[webrtc-pc] transactionId validation for get/set parameters should have more consistent definition

soareschen has just created a new issue for https://github.com/w3c/webrtc-pc:

== transactionId validation for get/set parameters should have more consistent definition ==
Currently the steps are as follows:

> getParameters
> - transactionId is set to a new unique identifier, used to match this getParameters call to a setParameters call that may occur later. 

> setParameters
> 7. If parameters.encodings.length is different from N, or if any parameter in the parameters argument, marked as a Read-only parameter, has a value that is different from the corresponding parameter value returned from sender.getParameters(), abort these steps and return a promise rejected with a newly created InvalidModificationError. Note that this also applies to transactionId.
> 10. Set sender's internal transactionId slot to a previously unused value.

The specified rules have not been very consistent:

- `getParameters()` does not store `transactionId` to any internal slot.
- `setParameters()` says `transactionId` validation is applied the way same as `parameters.encodings`, but the field is outside of `paramters.encodings`.
- `setParameters()` set `transactionId` to a new value, but that is overridden again when calling `getParameters()`.

To fix this, a proper internal slot should be defined and transactionId validation in `setParameters()` should be done in separate steps.

Please view or discuss this issue at https://github.com/w3c/webrtc-pc/issues/1488 using your GitHub account

Received on Monday, 17 July 2017 04:15:41 UTC