@@ -63,20 +63,22 @@ Sampling starts as soon as a session begins. The <PlatformIdentifier name="repla
6363
6464## Privacy
6565
66- The SDK is recording and aggressively redacting (masking) all text and images, according to the configuration in ` options.experimental.replay ` .
67-
68- <Alert level = " warning" >
66+ The SDK is recording and aggressively redacting (masking) all ` Text ` , ` EditableText ` , and ` Image ` widgets.
6967Masking in the Sentry Flutter SDK is based on Widget * types* , e.g. ` Image ` , not just their as strings (i.e. we check whether
7068a ` widgetInstance ` should be masked by checking ` if (widgetInstance is Image) ` instead of ` if (widgetInstance.runtimeType == 'Image') ` ).
7169This means we can ensure masking works regardless of obfuscation in release builds and also works for subtclasses.
7270However, it also means we can only mask widgets that are part of the Flutter SDK itself.
71+
72+ <Alert level = " warning" >
7373We cannot mask widgets defined in various 3rd-party packages (because the type is not known in the Sentry Flutter SDK),
7474even though many should be masked.
75+
7576Therefore, you need to consider the widgets your application uses and ensure they're masked correctly with custom masking rules.
76- Examples of widgets that usually should be masked include (but are not limited to): VideoPlayer, WebView, Chart, Password, etc.
77+ Examples of widgets that usually should be masked include (but are not limited to): VideoPlayer, WebView, Chart, etc.
7778</Alert >
7879
79- You can tune this and add custom masking rules to fit your needs. For example, you can explicitly mask or unmask widgets by type,
80+ You can tune this and add custom masking rules to fit your needs by adjusting the configuration in ` options.experimental.replay ` .
81+ For example, you can explicitly mask or unmask widgets by type,
8082or you can even have a callback to decide whether a specific widget instance should be masked:
8183
8284``` dart
0 commit comments