Repository navigation
Phase 3b: secure rectangles end to end (stacked on #6) #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
19 commits
Select commit
Hold shift + click to select a range
40e7b53
Secure regions: bridge message, registry and RenderObject, with tests
krassx 001cde5
Android: real secure-rectangle store, placement tracking, pull throttle
krassx 1bfa74e
Android: tests for per-display versions use different sets per display
krassx 717ef89
iOS: real secure-rectangle store, placement tracker, XCTests
krassx e7de670
Secure rectangles: drift guards, channel test, docs; guards follow th…
krassx a8f745d
Dart secure regions: hide only on positive evidence, cover paint over…
krassx 7378c26
Secure rectangles: grace window, ratio check, view scale, retired epo…
krassx 0c951c1
Tests: do not depend on APIs that differ between the floor and stable…
krassx d8e4b4e
Review round 1: TickerMode is not evidence of invisibility; viewport …
krassx 34b1ef4
Review round 2: ancestor evidence of invisibility is checked before a…
krassx f45d690
Review round 3: stop resending a state native keeps failing on; clear…
krassx a2db41d
Review round 4: drop a test that could not fail; comments follow the …
krassx 43eafe7
Secure rectangles: a failed publish is retried with a capped backoff …
krassx 151a6a8
Secure rectangles: a changed state after the retries are used up wait…
krassx 703a859
Merge origin/feat/phase-3a-bridge-lifecycle into the secure rectangle…
krassx a52371a
Secure rectangles (Android): a placement refresh the main thread neve…
krassx 977f0d4
Secure rectangles (Android): only a request actually posted to the ma…
krassx a38ef60
Merge origin/feat/phase-3a-bridge-lifecycle into the 3b branch
krassx 7115800
Merge origin/feat/phase-3a-bridge-lifecycle into the 3b branch
krassx File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Severity: P3 Low (multi-engine; fails closed)
Problem: The comment says "One environment for the process", but every engine attach creates a new
SecureEnvironmentand installs it into the process-wide store (store.setEnvironment(environment)). Each engine'sSecurePlacementregisters its view'sResourcesonly in its own instance (environment.setResources(...)). The store reads whichever environment was installed last. iOS does this correctly with astatic let environment.Impact: With two engines attached (add-to-app with several
FlutterEngines), engine A's resources are never visible to the store once B attaches.nativePixelRatio()falls back toDisplay.getRealMetrics().density. If the app overrides the density in its ownResources(a per-activitydensityDpioverride, font or display-size handling), that value differs from the Flutter view's ratio. The ratio check then fails and the whole display is covered permanently for A's regions. That is over-covering, not a leak.Fix: Make the environment a process-wide singleton (static final, created from the application context on first attach), as in
BugseeFlutterPlugin.swift. Only install it once.