This PR adds support for mandatory trackers. When creating an associated adapter with mandatory behavior, the tracker will never be affected by the isTrackingEnabled property anymore. This is especially useful for QoS / QoE trackers that, unlike analytics trackers, might be useful in all cases.
API design considerations
I considered many API design options and associated signatures, from a Boolean parameter to signatures including a when plus some enum parameter, but none felt natural to read. The current proposal is the best I could come up with from an expressiveness point of view.
Changes made
Add new TrackingBehavior with optional and mandatory options.
Add behavior parameter to tracker adapter creation methods. Default is optional (behavior until now).
Fix Commanders Act tracking issue found when performing tests (a bug could prevent a tracker from being enabled in some scenario).
Make an existing playlist-related test less flaky.
Checklist
[x] APIs have been properly documented (if relevant).
[x] The documentation has been updated (if relevant).
[x] New unit tests have been written (if relevant).
Description
This PR adds support for mandatory trackers. When creating an associated adapter with mandatory behavior, the tracker will never be affected by the
isTrackingEnabled
property anymore. This is especially useful for QoS / QoE trackers that, unlike analytics trackers, might be useful in all cases.API design considerations
I considered many API design options and associated signatures, from a Boolean parameter to signatures including a when plus some enum parameter, but none felt natural to read. The current proposal is the best I could come up with from an expressiveness point of view.
Changes made
TrackingBehavior
withoptional
andmandatory
options.behavior
parameter to tracker adapter creation methods. Default isoptional
(behavior until now).Checklist