Repository navigation
Conversation
Bridge the native touch tracking pause to the shared Replay API, so apps can stop recording touch positions on sensitive screens, such as a custom PIN pad, while the masked screen recording continues. On Web the calls are logged no-ops, like pause(). Requires sentry-android 8.65.0 and sentry-cocoa 9.35.0. Fixes RN-673 Fixes #6299 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Semver Impact of This PR⚪ None (no version bump detected) 📋 Changelog PreviewThis is how your changes will appear in the changelog.
🤖 This preview updates automatically when you update the PR. |
Contributor
|
This was referenced Nov 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📢 Type of change
📜 Description
Adds
pauseTouchTracking()andresumeTouchTracking()to the sharedReplayinterface. While touch tracking is paused, the native SDKs record no touch positions, but the masked screen recording continues. Breadcrumbs are not affected.This is a bridge only; the behavior lives in the native SDKs:
pause()/resume().resume()does not resume touch tracking.resumeTouchTracking()clears it, also across new replays andstop()/start(). It can be called before a replay starts.The calls are wired exactly like
pause/resume: fire-and-forget throughfireReplayControl→NATIVE.pauseReplayTouchTracking()/resumeReplayTouchTracking()→Sentry.replay().pauseTouchTracking()on Android andSentrySDK.internal.replay.pauseTouchTracking()on iOS. On Web they are logged no-ops, likepause().Important
Blocked on native releases. The native code calls APIs from getsentry/sentry-java#6546 (merged, ships in sentry-android 8.65.0) and getsentry/sentry-cocoa#9587 (open, 9.35.0 at the earliest). The Android and iOS builds fail until both versions are bumped here.
Both new methods are required members of the public
Replayinterface, likepause/resume. Code that implementsReplayitself must add them.💡 Motivation and Context
Masking hides sensitive content such as a custom PIN pad or a masked
WebView, but the recorded touch positions can still reveal the input.pause()already stops touches, but it also stops the screen recording, which some apps want to keep.Fixes #6299
Fixes RN-673
Docs: getsentry/sentry-docs#20711
💚 How did you test it?
JS unit tests in
mobilereplay.test.ts,browserReplay.test.tsandwrapper.test.ts(each method calls only its own native control, a failed call is logged, the calls do nothing when native is disabled or the method is missing). The AndroidRNSentryReplayControlTestand the iOSRNSentryReplayControlTestscover the new methods, but they can only run after the native bumps. The sample app's Playground tab has buttons for both methods.📝 Checklist
sendDefaultPIIis enabled.🔮 Next steps
Bump sentry-android to 8.65.0 and sentry-cocoa to 9.35.0, then mark ready for review.
🤖 Generated with Claude Code