Skip to content

Commit a5d86e1

Browse files
fix(replay): MaskAll* set to false should unmask all on iOS (#4257)
1 parent 2c42e02 commit a5d86e1

File tree

3 files changed

+35
-4
lines changed

3 files changed

+35
-4
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
- Enhanced accuracy of time-to-display spans. ([#4189](https://github.com/getsentry/sentry-react-native/pull/4189))
3939
- Fix Replay redacting of RN Classes on iOS ([#4243](https://github.com/getsentry/sentry-react-native/pull/4243))
4040
- Speed up getBinaryImages for finishing transactions and capturing events ([#4194](https://github.com/getsentry/sentry-react-native/pull/4194))
41+
- Replay `maskAll*` set to `false` on iOS kept all masked ([#4257](https://github.com/getsentry/sentry-react-native/pull/4257))
4142
- Add missing `getRootSpan`, `withActiveSpan` and `suppressTracing` exports from `@sentry/core` ([#4254](https://github.com/getsentry/sentry-react-native/pull/4254))
4243

4344
### Dependencies

packages/core/RNSentryCocoaTester/RNSentryCocoaTesterTests/RNSentryReplayOptionsTests.swift

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ final class RNSentryReplayOptions: XCTestCase {
6767
XCTAssertEqual(replayOptions.count, 5)
6868
XCTAssertNotNil(replayOptions["sessionSampleRate"])
6969
XCTAssertNotNil(replayOptions["errorSampleRate"])
70-
XCTAssertNotNil(replayOptions["redactAllImages"])
71-
XCTAssertNotNil(replayOptions["redactAllText"])
70+
XCTAssertNotNil(replayOptions["maskAllImages"])
71+
XCTAssertNotNil(replayOptions["maskAllText"])
7272
XCTAssertNotNil(replayOptions["maskedViewClasses"])
7373
}
7474

@@ -133,6 +133,21 @@ final class RNSentryReplayOptions: XCTestCase {
133133
XCTAssertEqual(ObjectIdentifier(actualOptions.experimental.sessionReplay.maskedViewClasses[0]), ObjectIdentifier(NSClassFromString("RCTImageView")!))
134134
}
135135

136+
func testMaskAllImagesFalse() {
137+
let optionsDict = ([
138+
"dsn": "https://abc@def.ingest.sentry.io/1234567",
139+
"_experiments": [ "replaysOnErrorSampleRate": 0.75 ],
140+
"mobileReplayOptions": [ "maskAllImages": false ]
141+
] as NSDictionary).mutableCopy() as! NSMutableDictionary
142+
143+
RNSentryReplay.updateOptions(optionsDict)
144+
145+
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
146+
147+
XCTAssertEqual(actualOptions.experimental.sessionReplay.maskAllImages, false)
148+
XCTAssertEqual(actualOptions.experimental.sessionReplay.maskedViewClasses.count, 0)
149+
}
150+
136151
func testMaskAllText() {
137152
let optionsDict = ([
138153
"dsn": "https://abc@def.ingest.sentry.io/1234567",
@@ -152,4 +167,19 @@ final class RNSentryReplayOptions: XCTestCase {
152167
XCTAssertEqual(ObjectIdentifier(actualOptions.experimental.sessionReplay.maskedViewClasses[1]), ObjectIdentifier(NSClassFromString("RCTParagraphComponentView")!))
153168
}
154169

170+
func testMaskAllTextFalse() {
171+
let optionsDict = ([
172+
"dsn": "https://abc@def.ingest.sentry.io/1234567",
173+
"_experiments": [ "replaysOnErrorSampleRate": 0.75 ],
174+
"mobileReplayOptions": [ "maskAllText": false ]
175+
] as NSDictionary).mutableCopy() as! NSMutableDictionary
176+
177+
RNSentryReplay.updateOptions(optionsDict)
178+
179+
let actualOptions = try! Options(dict: optionsDict as! [String: Any])
180+
181+
XCTAssertEqual(actualOptions.experimental.sessionReplay.maskAllText, false)
182+
XCTAssertEqual(actualOptions.experimental.sessionReplay.maskedViewClasses.count, 0)
183+
}
184+
155185
}

packages/core/ios/RNSentryReplay.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ + (void)updateOptions:(NSMutableDictionary *)options
2828
@"sessionReplay" : @ {
2929
@"sessionSampleRate" : experiments[@"replaysSessionSampleRate"] ?: [NSNull null],
3030
@"errorSampleRate" : experiments[@"replaysOnErrorSampleRate"] ?: [NSNull null],
31-
@"redactAllImages" : replayOptions[@"maskAllImages"] ?: [NSNull null],
32-
@"redactAllText" : replayOptions[@"maskAllText"] ?: [NSNull null],
31+
@"maskAllImages" : replayOptions[@"maskAllImages"] ?: [NSNull null],
32+
@"maskAllText" : replayOptions[@"maskAllText"] ?: [NSNull null],
3333
@"maskedViewClasses" : [RNSentryReplay getReplayRNRedactClasses:replayOptions],
3434
}
3535
}

0 commit comments

Comments
 (0)