[Rev 01] RFR: 8234474: [macos 10.15] Crash in file dialog in sandbox mode

Ambarish Rapte arapte at openjdk.java.net
Mon Jan 6 16:24:43 UTC 2020


On Mon, 6 Jan 2020 16:24:43 GMT, Kevin Rushforth <kcr at openjdk.org> wrote:

>> 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
> 
> The pull request has been updated with 1 additional commit.

Looks good to me, Verified that all tests pass on Mojave 10.14.6

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

Marked as reviewed by arapte (Reviewer).

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


More information about the openjfx-dev mailing list