On Wed, 8 Nov 2023 19:49:48 GMT, Harshitha Onkar <[email protected]> wrote:

> 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.

src/java.desktop/macosx/native/libawt_lwawt/awt/ApplicationDelegate.m line 534:

> 532: 
> 533:     ApplicationDelegate *delegate = [ApplicationDelegate sharedDelegate];
> 534:     if ([ApplicationDelegate sharedDelegate] != nil) {

more logical here to check the local variable you just defined.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16569#discussion_r1388545763

Reply via email to