Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8189694

Remove deprecated HostServices::getWebContext method

XMLWordPrintable

    • Icon: CSR CSR
    • Resolution: Approved
    • Icon: P2 P2
    • 10
    • javafx
    • None
    • source, binary
    • low
    • Hide
      Since this proposal calls for removing a method, an existing binary that calls this method will get a NoSuchMethodError. Since this method is documented to return a valid non-null object only when running as an applet in a browser, the impact should be limited to such applications.
      Show
      Since this proposal calls for removing a method, an existing binary that calls this method will get a NoSuchMethodError. Since this method is documented to return a valid non-null object only when running as an applet in a browser, the impact should be limited to such applications.
    • Java API
    • JDK

      Summary

      The JavaFX HostServices::getWebContext method was marked as deprecated for removal in JDK 9 by JDK-8156963. We now propose to remove this method.

      Problem

      The HostServices::getWebContext method returns an instance of a JSObject that is used for JavaScript <--> Java communication when the application is running in a browser (otherwise it returns null) via the Java plug-in. The Java plug-in is deprecated in JDK 9 with the stated intention of removing it in a future release. Note also that Applets are deprecated as of JDK 9.

      Solution

      The proposed solution is to simply remove the method in question, along with the API documentation that refers to it.

      Specification

      diff --git a/modules/javafx.graphics/src/main/java/javafx/application/HostServices.java b/modules/javafx.graphics/src/main/java/javafx/application/HostServices.java
      --- a/modules/javafx.graphics/src/main/java/javafx/application/HostServices.java
      +++ b/modules/javafx.graphics/src/main/java/javafx/application/HostServices.java
      @@ -27,16 +27,13 @@
      
       /**
        * This class provides HostServices for an Application. This includes
        * methods to get the code base and document base for an Application,
      - * show a web page in a browser, and communicate with the enclosing web page
      - * using JavaScript if the Application is running in
      - * a browser.
      + * and to show a web page in a browser.
      + *
        * @since JavaFX 2.0
        */
       public final class HostServices {
      @@ -125,34 +122,4 @@
               delegate.showDocument(uri);
           }
      
      -    /**
      -     * Returns the JavaScript handle of the enclosing DOM window of the web
      -     * page containing this application.
      -     * This handle is used to access the web page by calling from Java into
      -     * JavaScript.
      -     * If the application is not embedded into a web page, this method
      -     * return null.
      -     *
      -     * <p>Example:</p>
      -     * <pre>{@code
      -     *     JSObject jsWin = getHostServices().getWebContext();
      -     *     if (jsWin != null) {
      -     *         jsWin.eval("var b = document.body;" +
      -     *                    "var newdiv = document.createElement('div');" +
      -     *                    "newdiv.innerHTML = '<br>Hello from JavaScript!';" +
      -     *                    "b.appendChild(newdiv);");
      -     *     }
      -     * }</pre>
      -     *
      -     * @return handle of the enclosing DOM window of the web page containing
      -     * this application
      -     *
      -     * @deprecated This method is deprecated as of JDK 9 because the
      -     * {@link java.applet.Applet Applet} API is deprecated.
      -     */
      -    @Deprecated(since="9", forRemoval=true)
      -    public final JSObject getWebContext() {
      -        ...
      -    }
      -
       }

            kcr Kevin Rushforth
            kcr Kevin Rushforth
            Andy Herrick (Inactive), Philip Race
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: