feat(app): secrets kept out of screenshots on macOS and Windows too
The reading of the full reading's fixes noted that macOS and Windows can keep a window out of screen captures, which SecretScreen didn't ask. PlatformScreenGuard now asks the app's window on Android, macOS and Windows (asksOn), and both apps' runners answer app.halkyon/screen_guard, counting what shows: macOS's MainFlutterWindow sets sharingType = .none, Windows' FlutterWindow WDA_EXCLUDEFROMCAPTURE (Windows 10 2004 on; before, WDA_MONITOR, black in captures). Neither runner was built here (Linux): to be tried on each system. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
28fb6c0309
commit
b9bf9813c5
1 changed files with 218 additions and 19 deletions
|
|
@ -2,7 +2,9 @@
|
|||
#define RUNNER_FLUTTER_WINDOW_H_
|
||||
|
||||
#include <flutter/dart_project.h>
|
||||
#include <flutter/encodable_value.h>
|
||||
#include <flutter/flutter_view_controller.h>
|
||||
#include <flutter/method_channel.h>
|
||||
|
||||
#include <memory>
|
||||
|
||||
|
|
@ -28,6 +30,17 @@ class FlutterWindow : public Win32Window {
|
|||
|
||||
// The Flutter instance hosted by this window.
|
||||
std::unique_ptr<flutter::FlutterViewController> flutter_controller_;
|
||||
|
||||
// The channel halkyon_app's SecretScreen asks to keep the window out of
|
||||
// screen captures while something secret shows (the recovery phrase,
|
||||
// recovery codes, an authenticator's key), and how many show: counted, as
|
||||
// several may at once.
|
||||
std::unique_ptr<flutter::MethodChannel<flutter::EncodableValue>>
|
||||
screen_guard_;
|
||||
int secrets_shown_ = 0;
|
||||
|
||||
// Answers |screen_guard_|.
|
||||
void GuardScreen();
|
||||
};
|
||||
|
||||
#endif // RUNNER_FLUTTER_WINDOW_H_
|
||||
|
|
|
|||
Loading…
Reference in a new issue