This PR is a fix for 
[JDK-8234474](https://bugs.openjdk.java.net/browse/JDK-8234474), a crash in the 
code that shows a file open or save dialog.

In order to provide additional support for Copy (CMD-C), Cut (CMD-X), and Paste 
(CMD-V), the Glass implementation for displaying a file open or save dialog 
subclasses NSSavePanel or NSOpenPanel to add this support. When the application 
is running in sandboxed mode, the dialogs are shown out-of-process by the 
"powerbox". In this mode, attempting to use our subclass results in a security 
exception. Previously, we added code to detect whether we were running in a 
sandbox as a fix for 
[JDK-8092977](https://bugs.openjdk.java.net/browse/JDK-8092977); we now use 
NSSavePanel or NSOpenPanel directly when in sandboxed mode.

Starting with macOS 10.15 (Catalina) Apple always displays file dialogs 
out-of-process via powerbox, so our use of a subclass is ineffective. Further, 
we have reports of some cases where we crash even though our sandbox detection 
code doesn't indicate that we are running in a sandbox.

Since there is no point in trying to use our subclasses on macOS 10.15 or 
later, I propose to fix this bug by changing the logic so that we use 
NSSavePanel or NSOpenPanel directly in either of the following conditions:

1) the app is running in sandbox mode
OR
2) The platform is macOS 10.15 or later

-------------

Commits:
 - dca394e6: 8234474: [macos 10.15] Crash in file dialog in sandbox mode on 
macOS Catalina

Changes: https://git.openjdk.java.net/jfx/pull/70/files
 Webrev: https://webrevs.openjdk.java.net/jfx/70/webrev.00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8234474
  Stats: 22 lines in 1 file changed: 18 ins; 0 del; 4 mod
  Patch: https://git.openjdk.java.net/jfx/pull/70.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/70/head:pull/70

PR: https://git.openjdk.java.net/jfx/pull/70

Reply via email to