JetBrainsRuntime icon indicating copy to clipboard operation
JetBrainsRuntime copied to clipboard

JBR-4578 Add Java ATK Wrapper

Open tanya011 opened this issue 1 year ago • 3 comments

  • java-atk-wrapper used to be part of OpenJDK (JDK-8204862, IJPL-136231), but it was removed.
  • java-atk-wrapper is essential for accessibility in Java applications, including IntelliJ IDEA: IJPL-58438, JBR-4578.
  • AccessibleAnnouncerTest.java test is passed.
  • java-atk-wrapper has an LGPL 2.1 license, which can be up-cast to GPL-2.0, allowing the source code to be used.

tanya011 avatar Nov 06 '24 11:11 tanya011

All changes in JBR should be accompanied with tickets in YT related to the JBR project. Ticket-id should be placed at the beginning of the commit message. Within this JBR ticket we may make proper changes in docker files. Please note the libraries you aded to docker files actually are not available for Oracle Linux 8 that is build platform for jbr21.

vprovodin avatar Nov 22 '24 12:11 vprovodin

My main question about the entire patch is the following: as you've written in the description, this functionality was removed some time ago due to a lot of bugs mentioned in e.g. IJPL-136231:

The problem is that the tool breaks the Swing threading rule and causes lots of exceptions & UI artefacts

and in JBR-4578:

Important! ATKWrapper contains bugs that can crash the JBR.

Also known issues:

  • Lists with complex renders work slowly;
  • Tree nodes are not voiced;
  • comboboxes are not spoken.

All these problems must be solved directly in ATKWrapper.

By putting all this logic back, do you state that all those problems have been fixed and now AWT wrapper is in production-ready quality?

UPD: still actual crash https://discourse.gnome.org/t/sigsegv-in-g-type-check-instance-is-fundamentally-a-0x11/24285

OnePatchGuy avatar Jan 15 '25 15:01 OnePatchGuy

BTW, I think each file that gets updated should also have its copyright header updated. One of the most recent examples of our header can be found e.g. in https://github.com/JetBrains/JetBrainsRuntime/blob/f89a6626d56dad71c3429c662bdad89f6b9a0591/src/java.desktop/unix/classes/sun/awt/wl/WLDisplay.java, but I don't know how to properly merge the existing headers with our one.

OnePatchGuy avatar Feb 01 '25 01:02 OnePatchGuy