With Xcode upgraded to 14.3.1 for macOS builds secure coding warning message 
was seen in the logs as below:

"WARNING: Secure coding is not enabled for restorable state! Enable secure 
coding by implementing 
NSApplicationDelegate.applicationSupportsSecureRestorableState: and returning 
YES."

which requires AppDelegate to explicitly implement 
applicationSupportsSecureRestorableState() to return true as mentioned here in 
[Apple Release 
notes](https://developer.apple.com/documentation/macos-release-notes/appkit-release-notes-for-macos-14#Restorable-State).

While investigating JFX embedded scenario (Swing components in FX window) 
another issue observed was that the AWT was overriding the FX delegate causing 
the app to crash in certain scenarios. This issue is also being fixed in this 
PR and also as part of 
[JDK-8319669](https://bugs.openjdk.org/browse/JDK-8319669) , 
https://github.com/openjdk/jfx/pull/1280.

The fix for JDK-8318854 involves:

- implementing applicationSupportsSecureRestorableState() in 
ApplicationDelegate.m & QueuingApplicationDelegate.m to return YES  by default, 
unless the env var - **AWT_DISABLE_NSDELEGATE_SECURE_SAVE**  is defined.

- Fix added to stop AWT toolkit from overriding a delegate set by another 
NSApplication by default. There is an option to restore the old behavior by 
defining the env var - **AWT_OVERRIDE_NSDELEGATE**.

- Null checks are added for shared delegate in the unforeseen case where it 
could be null and cause issues in AWTWindow.m, CMenuBar.m, ApplicationDelegate.m


**PLEASE NOTE !!**  The environment variables being added as part of this fix 
are for debugging only and should NOT be used for application purpose. As such 
they will NOT be documented.

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

Commit messages:
 - added new env var for AWT delegate override
 - single env var change
 - env var changes
 - env var AWT_OVERRIDE_DELEGATE, null check for shared delegate
 - added applicationSupportsSecureRestorableState

Changes: https://git.openjdk.org/jdk/pull/16569/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16569&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8318854
  Stats: 41 lines in 4 files changed: 26 ins; 2 del; 13 mod
  Patch: https://git.openjdk.org/jdk/pull/16569.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/16569/head:pull/16569

PR: https://git.openjdk.org/jdk/pull/16569

Reply via email to