SessionReplayMasking class

Constructors

SessionReplayMasking()

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

maskAllImagesForTesting bool
no setter
maskAllTextsForTesting bool
no setter
maxMaskFragmentsForTesting int
no setter
textsToMaskForTesting List<RegExp>
no setter
topologyBuildsForTesting int
no setter

Static Methods

addMaskEntryForTesting(String id, GlobalKey<State<StatefulWidget>> key, bool isMasked()) → void
Registers a raw registry entry. Only a real MaskedWidget does this in production; tests use it to inject an entry that misbehaves (a throwing isMasked, a key that never mounts) and assert one bad entry cannot cost the frame its other masks.
applyOptions({bool maskAllTexts = false, bool maskAllImages = false, double captureScale = 1.0, List<String>? textsToMask}) Future<void>
Applies masking configuration. Called internally by CxFlutterPlugin.initializeSessionReplay from CXSessionReplayOptions — you normally do not call this directly. Set masking on the options object instead, so there is exactly one place that controls it.
capturedRenderViewsForTesting() List<RenderView>
Exposes the capture's view scoping for testing.
collectAllMaskRectsSync() List<Rect>
Returns all currently-active mask rects in logical pixels.
collectCaptureMaskRectsSync() → ({List<Rect> content, List<Rect> exported})
Collects, in one synchronous walk, the two rect sets a capture needs (both in logical pixels):
collectImageRegionsForTesting() List<Map<String, dynamic>>
collectTextRegionsForTesting({List<RegExp>? patterns}) List<Map<String, dynamic>>
initialize() → void
Registers the Dart masking handler so the native SDK can request pre-masked frames. Call once at app startup (e.g. in main()).
isInCapturedViewForTesting(RenderObject node, {required Set<RenderObject> capturedViews}) bool
Exposes the per-node view-scoping test used to filter registry entries.
Exposes the navigation-transition guard for testing.
noteUserInteraction() → void
Tracks time since the last rendered frame (for the scroll-skip heuristic). Registered once; persistent frame callbacks fire on every produced frame, so when the UI is idle the stopwatch grows and when it's animating it stays near zero. No-op since native moved the tap capture to finger-down.
removeMaskEntryForTesting(String id) → void
resetForTesting() → void
shouldSkipCaptureForTesting({required int inFlight, required int msSinceLastFrame}) bool
Exposes the capture-pacing decision for testing.
visibleFragmentsForTesting(Rect rect, List<Rect> covered) List<Rect>
Exposes the subtraction directly: the cap behaviour it guarantees is a privacy property (keep the whole mask rather than under-mask), and driving it through widgets would need dozens of contrived surfaces.

Constants

methodChannel → const MethodChannel