Skip to content

Conversation

@krystofwoldrich
Copy link
Contributor

@krystofwoldrich krystofwoldrich commented Jul 2, 2024

📢 Type of change

  • Bugfix

📜 Description

This PR fixes visible SVG from react-native-svg the most popular library for handling SVGs in RN. RN doesn't have a built in support for SVGs.

🛑 Blocked by

💡 Motivation and Context

Web hides SVGs by default when masking all media.

💚 How did you test it?

rn sample app

📝 Checklist

  • I reviewed submitted code
  • I added tests to verify changes
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled
  • All tests passing
  • No breaking changes

@krystofwoldrich krystofwoldrich changed the title Kw/add-rn-svg-block fix(replay): Mask SVGs from react-native-svg when maskMedia=true Jul 2, 2024
@github-actions
Copy link
Contributor

github-actions bot commented Jul 2, 2024

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 432.58 ms 465.77 ms 33.18 ms
Size 17.73 MiB 20.04 MiB 2.31 MiB

Baseline results on branch: feat/replay

Startup times

Revision Plain With Sentry Diff
41db11d 429.33 ms 451.24 ms 21.91 ms
376301c 445.52 ms 474.70 ms 29.18 ms
063bfce 469.96 ms 516.38 ms 46.42 ms
52f5e03 422.50 ms 465.69 ms 43.19 ms

App size

Revision Plain With Sentry Diff
41db11d 17.73 MiB 20.04 MiB 2.30 MiB
376301c 17.73 MiB 20.04 MiB 2.30 MiB
063bfce 17.73 MiB 20.04 MiB 2.30 MiB
52f5e03 17.73 MiB 20.04 MiB 2.31 MiB

Previous results on branch: kw/add-rn-svg-block

Startup times

Revision Plain With Sentry Diff
e13a34b 484.08 ms 540.62 ms 56.54 ms

App size

Revision Plain With Sentry Diff
e13a34b 17.73 MiB 20.04 MiB 2.30 MiB

@github-actions
Copy link
Contributor

github-actions bot commented Jul 2, 2024

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 386.49 ms 403.92 ms 17.43 ms
Size 7.15 MiB 8.32 MiB 1.17 MiB

Baseline results on branch: feat/replay

Startup times

Revision Plain With Sentry Diff
41db11d+dirty 374.57 ms 415.25 ms 40.68 ms
063bfce+dirty 338.00 ms 369.88 ms 31.88 ms
52f5e03+dirty 391.15 ms 446.94 ms 55.79 ms
376301c+dirty 353.80 ms 388.54 ms 34.74 ms

App size

Revision Plain With Sentry Diff
41db11d+dirty 7.15 MiB 8.31 MiB 1.16 MiB
063bfce+dirty 7.15 MiB 8.31 MiB 1.17 MiB
52f5e03+dirty 7.15 MiB 8.32 MiB 1.17 MiB
376301c+dirty 7.15 MiB 8.31 MiB 1.17 MiB

Previous results on branch: kw/add-rn-svg-block

Startup times

Revision Plain With Sentry Diff
e13a34b+dirty 513.88 ms 552.51 ms 38.63 ms

App size

Revision Plain With Sentry Diff
e13a34b+dirty 7.15 MiB 8.31 MiB 1.17 MiB

@github-actions
Copy link
Contributor

github-actions bot commented Jul 2, 2024

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1240.37 ms 1243.65 ms 3.29 ms
Size 2.36 MiB 3.05 MiB 703.34 KiB

Baseline results on branch: feat/replay

Startup times

Revision Plain With Sentry Diff
41db11d+dirty 1207.36 ms 1210.32 ms 2.96 ms
376301c+dirty 1215.73 ms 1219.80 ms 4.06 ms
063bfce+dirty 1224.27 ms 1219.66 ms -4.61 ms
52f5e03+dirty 1221.27 ms 1223.08 ms 1.81 ms

App size

Revision Plain With Sentry Diff
41db11d+dirty 2.36 MiB 3.04 MiB 698.69 KiB
376301c+dirty 2.36 MiB 3.05 MiB 702.83 KiB
063bfce+dirty 2.36 MiB 3.05 MiB 702.78 KiB
52f5e03+dirty 2.36 MiB 3.05 MiB 703.38 KiB

Previous results on branch: kw/add-rn-svg-block

Startup times

Revision Plain With Sentry Diff
e13a34b+dirty 1223.82 ms 1223.50 ms -0.32 ms

App size

Revision Plain With Sentry Diff
e13a34b+dirty 2.36 MiB 3.05 MiB 703.10 KiB

@github-actions
Copy link
Contributor

github-actions bot commented Jul 2, 2024

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1234.96 ms 1234.13 ms -0.83 ms
Size 2.92 MiB 3.61 MiB 710.32 KiB

Baseline results on branch: feat/replay

Startup times

Revision Plain With Sentry Diff
41db11d+dirty 1208.60 ms 1210.47 ms 1.87 ms
376301c+dirty 1224.74 ms 1227.00 ms 2.26 ms
063bfce+dirty 1225.38 ms 1218.06 ms -7.31 ms
52f5e03+dirty 1227.53 ms 1231.76 ms 4.22 ms

App size

Revision Plain With Sentry Diff
41db11d+dirty 2.92 MiB 3.61 MiB 705.84 KiB
376301c+dirty 2.92 MiB 3.61 MiB 709.95 KiB
063bfce+dirty 2.92 MiB 3.61 MiB 710.22 KiB
52f5e03+dirty 2.92 MiB 3.61 MiB 710.43 KiB

Previous results on branch: kw/add-rn-svg-block

Startup times

Revision Plain With Sentry Diff
e13a34b+dirty 1227.11 ms 1227.53 ms 0.42 ms

App size

Revision Plain With Sentry Diff
e13a34b+dirty 2.92 MiB 3.61 MiB 710.15 KiB

@krystofwoldrich krystofwoldrich changed the title fix(replay): Mask SVGs from react-native-svg when maskMedia=true fix(replay): Mask SVGs from react-native-svg when maskAllVectors=true Jul 3, 2024
@krystofwoldrich krystofwoldrich marked this pull request as ready for review July 3, 2024 12:33
Copy link
Contributor

@brustolin brustolin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

iOS part looks good.

+ (void)addReplayRNRedactClasses:(NSDictionary *_Nullable)replayOptions {
NSMutableArray *_Nonnull classesToRedact = [[NSMutableArray alloc] init];
if ([replayOptions[@"maskAllVectors"] boolValue] == YES) {
Class _Nullable maybeRNSVGViewClass = NSClassFromString(@"RNSVGSvgView");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

l: you don't need _Nullable or _Nonnull in the implementation. Everything should be treated as nullable (because technically they are in Objc), and then we code in a safe way based on this.

@krystofwoldrich krystofwoldrich merged commit 3dcf57b into feat/replay Jul 10, 2024
@krystofwoldrich krystofwoldrich deleted the kw/add-rn-svg-block branch July 10, 2024 14:42
bruno-garcia added a commit that referenced this pull request Jul 15, 2024
* feat(replay): Add Mobile Replay Alpha (#3714)

* feat(sample): add running indicator (animation overlay) (#3903)

* feat(replay): Add breadcrumbs mapping from RN to RRWeb format (#3846)

* feat(replay): Add network breadcrumbs (#3912)

* fix(replay): Add tests for touch events (#3924)

* feat(replay): Filter Sentry event breadcrumbs (#3925)

* fix(changelog): Add latest native SDKs details

* release: 5.25.0-alpha.2

* misc(samples): Add console anything examples for replay testing (#3928)

* feat: Add Sentry Babel Transformer (#3916)

* fix(replay): Add app lifecycle breadcrumbs conversion tests (#3932)

* chore(deps): bump sentry-android to 7.12.0-alpha.3

* chore(deps): bump sentry-android to 7.12.0-alpha.4

* fix(replay): Mask SVGs from `react-native-svg` when `maskAllVectors=true` (#3930)

* fix(replay): Add missing properties to android nav breadcrumbs (#3942)

* release: 5.26.0-alpha.3

* misc(replay): Add Mobile Replay Public Beta changelog (#3943)

---------

Co-authored-by: Ivan Dlugos <[email protected]>
Co-authored-by: Ivan Dlugos <[email protected]>
Co-authored-by: getsentry-bot <[email protected]>
Co-authored-by: getsentry-bot <[email protected]>
Co-authored-by: Roman Zavarnitsyn <[email protected]>
Co-authored-by: Bruno Garcia <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants