On Fri, 21 Aug 2026 11:51:56 GMT, Prasanta Sadhukhan <[email protected]> 
wrote:

>> `JDK has the following API : java.awt.Desktop.browse(URI) "Launches the 
>> default browser to display a URI."
>> 
>> On Windows and macOS, the JDK used to call platform APIs to do this which 
>> would recognise some schemes as ones which would launch an associated 
>> application. For example on Windows "calculator:" is a scheme that windows 
>> may open the calculator, and on macOS "facetime:" may open the facetime 
>> application. 
>> 
>> Desktop.browse now always launches the browser directly, which is a problem 
>> for apps that took advantage of the previous behavior, since the browser 
>> itself may not re-direct to those applications.
>> 
>> The current behaviour is intentional to provide a secure-by-default 
>> behaviour.
>> 
>> The proposal here is to introduce an implementation system property ( 
>> **awt.desktop.browse_insecure**) which will allow apps to opt back into the 
>> old behaviour on Windows and macOS.
>> 
>> The end-user, or the application, can set this property as a comma separated 
>> list of allowed schemes :
>> 
>> -Dawt.desktop.browse_insecure=calculator,file 
>> 
>> where on Windows, the calculator and file scheme will be opened in open 
>> calc.exe and the File Explorer app respectively.
>> 
>> or -Dawt.desktop.browse_insecure=*
>> 
>> which allows all schemes.
>> 
>> If -Dawt.desktop.browse_insecure is set or the scheme is in the allowed 
>> list, then JDK will open the URI using platform APIs which may open an 
>> associated app instead of the browser
>> If -Dawt.desktop.browse_insecure is NOT set or scheme is NOT in the allowed 
>> list, the browser is explicitly launched and URI is handled by the browser - 
>> i.e. no change from current behaviour.
>> 
>> 
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Prasanta Sadhukhan has updated the pull request incrementally with three 
> additional commits since the last revision:
> 
>  - Use shared implementation
>  - Use shared implementation
>  - Use shared implementation

LGTM

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

Marked as reviewed by kizune (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/32247#pullrequestreview-5423606681

Reply via email to