Closed mariedm closed 4 weeks ago
Branch report: RUM-5764-deprecate-former-api
Commit report: a6f9a61
Test service: dd-sdk-ios
:white_check_mark: 0 Failed, 1880 Passed, 0 Skipped, 1m 15.28s Total Time :small_red_triangle_down: Test Sessions change in coverage: 4 decreased, 2 increased, 2 no change
What and why?
As part of the Fine Grained Masking (FGM) initiative (RFC), we are transitioning from a single
PrivacyLevel
to three distinct privacy levels:textAndInputPrivacyLevel
,imagePrivacyLevel
, andtouchPrivacyLevel
.We now have a new API to create a Session Replay (SR) configuration using these new privacy levels, allowing us to deprecate the previous API.
How?
As part of this deprecation, we now rely on new privacy levels instead of
PrivacyLevel
.This PR:
PrivacyLevel
parameter to the corresponding new privacy levels.PrivacyLevel
withTextAndInputPrivacyLevel
for text and input privacy in recorders.SWIFT_TREAT_WARNINGS_AS_ERRORS
toNO
in themakefile
to prevent CI test failures due to deprecation warnings.testAlert()-mask-privacy.png
becametestAlert()-maskAll-privacy.png
) due to the privacy level name used for the snapshot.Notes
1) File Changes: Don't be frightened by the number of changed files; 70% are related to snapshot test updates.
2) Options and behavior of
PrivacyLevel
before FGM:allow
: Show all text except for sensitive input fields (e.g., password fields).maskUserInput
: Mask text for all input fields and components such as checkboxes, switches, or sliders.mask
: Mask all text and input components.For images, non-bundled images are hidden on iOS, and large images are hidden on Android. Touches are always shown by default.
Moving forward, by converting
PrivacyLevel
to new privacy levels, the behavior will be slightly modified to the following:.allow
-- textAndInputPrivacyLevel:.maskSensitiveInputs
-- imagePrivacyLevel:.maskNone
-- touchPrivacyLevel:.show
.maskUserInput
-- textAndInputPrivacyLevel:.maskAllInputs
-- imagePrivacyLevel:.maskNonBundledOnly
-- touchPrivacyLevel:.hide
.mask
-- textAndInputPrivacyLevel:.maskAll
-- imagePrivacyLevel:.maskAll
-- touchPrivacyLevel:.hide
Review checklist