Scary keystroke logging dialog on macOS 10.15 Catalina (JDK-8231513)

Michael Paus mp at jugs.org
Thu Jan 30 17:31:39 UTC 2020


Just to clarify the implications of this issue: Are you only talking 
about the JavaFX TouchEvents
or would disabling them also affect all GestureEvents and synthesized 
MouseEvents when you are
working with a trackpad?

Am 30.01.20 um 17:47 schrieb Kevin Rushforth:
> To: Mac app developers / users
>
> I started looking into JDK-8231513 [1] -- "JavaFX cause Keystroke 
> Receiving prompt on MacOS 10.15 (Catalina)" -- a couple days ago. The 
> effect of this bug is that a scary dialog is shown for all users the 
> first time they run a JavaFX application and move the mouse is moved 
> into the JavaFX window. It also is reported to block apps from being 
> accepted in the Apple store.
>
> This bug is caused by a change in macOS 10.15 to require additional 
> permissions for using CGEventTap, which JavaFX uses to track touch 
> events.
>
> The suggested replacement API, 
> NSEvent::addLocalMonitorForEventsMatchingMask, works just differently 
> enough (it tracks events delivered to a specific view, whereas the 
> current code is implemented using a global monitor and a global set of 
> touch points), that it would be too risky to change it this late in 
> the release.
>
> Since there isn't an easy / safe fix that is feasible for JavaFX 14, I 
> wanted to get some input from Mac users on the list. I can think of 
> the following possibilities for JavaFX 14:
>
> 1. Do nothing (defer the bug to FX 15)
> 2. Disable touch events completely if running on macOS 10.15 (or 
> later) -- we could consider a system property to re-enable it, but I 
> don't really like that idea, and I'm not sure how useful it would be 
> anyway since setting that flag would cause the scary dialog again.
> 3. Defer enabling of touch events until the first time the application 
> requests them -- this would require new interfaces in Glass, isn't 
> risk free, and doesn't solve the dialog problem for those apps that do 
> use touch.
>
> I'm leaning towards option #2 (without the system property to force 
> enable it), but wanted to get a sense from app developers as to 
> whether that would be more of a problem than doing nothing (i.e., 
> option #1). I only listed option #3 for completeness, since it doesn't 
> really solve the issue.
>
> Whatever we do for 14, the solution for 15 will very likely be to 
> switch to tracking per-View (per Window) touch events, either 
> directly, or maybe using local event monitoring.
>
> -- Kevin
>
> [1] https://bugs.openjdk.java.net/browse/JDK-8231513
>



More information about the openjfx-dev mailing list