Skip to content

Commit e7ac65d

Browse files
committed
Revert "feat: Expose iOS options to ignore views from subtree traversal (#5545)"
This reverts commit 4997892.
1 parent f0aee98 commit e7ac65d

3 files changed

Lines changed: 1 addition & 96 deletions

File tree

packages/core/RNSentryCocoaTester/RNSentryCocoaTesterTests/RNSentryReplayOptionsTests.swift

Lines changed: 1 addition & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ final class RNSentryReplayOptions: XCTestCase {
4848
}
4949

5050
func assertAllDefaultReplayOptionsAreNotNil(replayOptions: [String: Any]) {
51-
XCTAssertEqual(replayOptions.count, 11)
51+
XCTAssertEqual(replayOptions.count, 9)
5252
XCTAssertNotNil(replayOptions["sessionSampleRate"])
5353
XCTAssertNotNil(replayOptions["errorSampleRate"])
5454
XCTAssertNotNil(replayOptions["maskAllImages"])
@@ -58,8 +58,6 @@ final class RNSentryReplayOptions: XCTestCase {
5858
XCTAssertNotNil(replayOptions["enableViewRendererV2"])
5959
XCTAssertNotNil(replayOptions["enableFastViewRendering"])
6060
XCTAssertNotNil(replayOptions["quality"])
61-
XCTAssertNotNil(replayOptions["includedViewClasses"])
62-
XCTAssertNotNil(replayOptions["excludedViewClasses"])
6361
}
6462

6563
func testSessionSampleRate() {
@@ -320,64 +318,4 @@ final class RNSentryReplayOptions: XCTestCase {
320318

321319
XCTAssertEqual(actualOptions.sessionReplay.quality, SentryReplayOptions.SentryReplayQuality.medium)
322320
}
323-
324-
func testIncludedViewClasses() {
325-
let optionsDict = ([
326-
"dsn": "https://abc@def.ingest.sentry.io/1234567",
327-
"replaysOnErrorSampleRate": 0.75,
328-
"mobileReplayOptions": [ "includedViewClasses": ["UILabel", "UIView", "UITextView"] ]
329-
] as NSDictionary).mutableCopy() as! NSMutableDictionary
330-
331-
RNSentryReplay.updateOptions(optionsDict)
332-
333-
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
334-
335-
let includedViewClasses = actualOptions.sessionReplay.includedViewClasses
336-
XCTAssertEqual(includedViewClasses.count, 3)
337-
XCTAssertTrue(includedViewClasses.contains("UILabel"))
338-
XCTAssertTrue(includedViewClasses.contains("UIView"))
339-
XCTAssertTrue(includedViewClasses.contains("UITextView"))
340-
}
341-
342-
func testExcludedViewClasses() {
343-
let optionsDict = ([
344-
"dsn": "https://abc@def.ingest.sentry.io/1234567",
345-
"replaysOnErrorSampleRate": 0.75,
346-
"mobileReplayOptions": [ "excludedViewClasses": ["UICollectionView", "UITableView", "UIScrollView"] ]
347-
] as NSDictionary).mutableCopy() as! NSMutableDictionary
348-
349-
RNSentryReplay.updateOptions(optionsDict)
350-
351-
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
352-
353-
let excludedViewClasses = actualOptions.sessionReplay.excludedViewClasses
354-
XCTAssertEqual(excludedViewClasses.count, 3)
355-
XCTAssertTrue(excludedViewClasses.contains("UICollectionView"))
356-
XCTAssertTrue(excludedViewClasses.contains("UITableView"))
357-
XCTAssertTrue(excludedViewClasses.contains("UIScrollView"))
358-
}
359-
360-
func testIncludedAndExcludedViewClasses() {
361-
let optionsDict = ([
362-
"dsn": "https://abc@def.ingest.sentry.io/1234567",
363-
"replaysOnErrorSampleRate": 0.75,
364-
"mobileReplayOptions": [
365-
"includedViewClasses": ["UILabel", "UIView"],
366-
"excludedViewClasses": ["UICollectionView"]
367-
]
368-
] as NSDictionary).mutableCopy() as! NSMutableDictionary
369-
370-
RNSentryReplay.updateOptions(optionsDict)
371-
372-
let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any])
373-
374-
let includedViewClasses = actualOptions.sessionReplay.includedViewClasses
375-
XCTAssertEqual(includedViewClasses.count, 2)
376-
XCTAssertTrue(includedViewClasses.contains("UILabel"))
377-
XCTAssertTrue(includedViewClasses.contains("UIView"))
378-
379-
let excludedViewClasses = actualOptions.sessionReplay.excludedViewClasses
380-
XCTAssertEqual(excludedViewClasses.count, 1)
381-
XCTAssertTrue(excludedViewClasses.contains("UICollectionView"))
382-
}
383321
}

packages/core/ios/RNSentryReplay.mm

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,6 @@ + (BOOL)updateOptions:(NSMutableDictionary *)options
2727

2828
NSString *qualityString = options[@"replaysSessionQuality"];
2929

30-
NSArray *includedViewClasses = replayOptions[@"includedViewClasses"];
31-
NSArray *excludedViewClasses = replayOptions[@"excludedViewClasses"];
32-
3330
[options setValue:@{
3431
@"sessionSampleRate" : sessionSampleRate ?: [NSNull null],
3532
@"errorSampleRate" : errorSampleRate ?: [NSNull null],
@@ -39,8 +36,6 @@ + (BOOL)updateOptions:(NSMutableDictionary *)options
3936
@"enableViewRendererV2" : replayOptions[@"enableViewRendererV2"] ?: [NSNull null],
4037
@"enableFastViewRendering" : replayOptions[@"enableFastViewRendering"] ?: [NSNull null],
4138
@"maskedViewClasses" : [RNSentryReplay getReplayRNRedactClasses:replayOptions],
42-
@"includedViewClasses" : includedViewClasses ?: [NSNull null],
43-
@"excludedViewClasses" : excludedViewClasses ?: [NSNull null],
4439
@"sdkInfo" :
4540
@ { @"name" : REACT_NATIVE_SDK_NAME, @"version" : REACT_NATIVE_SDK_PACKAGE_VERSION }
4641
}

packages/core/src/js/replay/mobilereplay.ts

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -81,34 +81,6 @@ export interface MobileReplayOptions {
8181
*/
8282
enableFastViewRendering?: boolean;
8383

84-
/**
85-
* Array of view class names to include in subtree traversal during session replay and screenshot capture on iOS.
86-
*
87-
* Only views that are instances of these classes (or subclasses) will be traversed.
88-
* This helps prevent crashes when traversing problematic view hierarchies by allowing you to explicitly include only safe view classes.
89-
*
90-
* If both `includedViewClasses` and `excludedViewClasses` are set, `excludedViewClasses` takes precedence:
91-
* views matching excluded classes won't be traversed even if they match an included class.
92-
*
93-
* @default undefined
94-
* @platform ios
95-
*/
96-
includedViewClasses?: string[];
97-
98-
/**
99-
* Array of view class names to exclude from subtree traversal during session replay and screenshot capture on iOS.
100-
*
101-
* Views of these classes (or subclasses) will be skipped entirely, including all their children.
102-
* This helps prevent crashes when traversing problematic view hierarchies by allowing you to explicitly exclude problematic view classes.
103-
*
104-
* If both `includedViewClasses` and `excludedViewClasses` are set, `excludedViewClasses` takes precedence:
105-
* views matching excluded classes won't be traversed even if they match an included class.
106-
*
107-
* @default undefined
108-
* @platform ios
109-
*/
110-
excludedViewClasses?: string[];
111-
11284
/**
11385
* Sets the screenshot strategy used by the Session Replay integration on Android.
11486
*

0 commit comments

Comments
 (0)