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

JavaFX application freezes completely after some time when using the WebView

XMLWordPrintable

    • web
    • x86_64
    • linux_ubuntu

      ADDITIONAL SYSTEM INFORMATION :
      Linux Ubuntu 20.04 LTS

      openjdk version "18.0.2" 2022-07-19
      IBM Semeru Runtime Open Edition 18.0.2.1 (build 18.0.2+9)
      Eclipse OpenJ9 VM 18.0.2.1 (build openj9-0.33.1, JRE 18 Linux amd64-64-Bit Compressed References 20220817_34 (JIT enabled, AOT enabled)
      OpenJ9 - 1d9d16830
      OMR - b58aa2708
      JCL - 8406c39ea29 based on jdk-18.0.2+9)


      A DESCRIPTION OF THE PROBLEM :
      Page controls not working properly

      Simple Program using WebView





      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      1.WebView with url >> www.stake.com
      2.click in Expand SideBar and after click again and no work more.
      3.click in Sign In and screen frozen and display error
      4. In Chrome, FireFox, Edge, Opera all work correctly

      ** (java:578189): CRITICAL **: 18:41:37.972: gst_segment_to_stream_time: assertion 'segment->format == format' failed
      nov. 18, 2022 6:41:38 PM com.sun.javafx.webkit.prism.WCMediaPlayerImpl$CreateThread run
      ADVERTÊNCIA: CreateThread ERROR: java.lang.UnsupportedOperationException: Unsupported protocol "data"
      nov. 18, 2022 6:41:38 PM com.sun.javafx.webkit.prism.WCMediaPlayerImpl$CreateThread run
      ADVERTÊNCIA: CreateThread ERROR: java.lang.UnsupportedOperationException: Unsupported protocol "data"
      nov. 18, 2022 6:41:38 PM com.sun.javafx.webkit.prism.WCMediaPlayerImpl onError
      ADVERTÊNCIA: onError, errCode=0, msg=Unsupported protocol "data"
      nov. 18, 2022 6:41:38 PM com.sun.javafx.webkit.prism.WCMediaPlayerImpl onError
      ADVERTÊNCIA: onError, errCode=0, msg=Unsupported protocol "data"




      ACTUAL -
      freezing WebView

      ---------- BEGIN SOURCE ----------
      // Main Program
      // ******************************************
      package com.menezes.robo;

      import java.io.IOException;
      import javafx.application.Application;
      import javafx.fxml.FXMLLoader;
      import javafx.scene.Parent;
      import javafx.scene.Scene;
      import javafx.scene.layout.VBox;
      import javafx.scene.text.Font;
      import javafx.scene.text.Text;
      import javafx.stage.Stage;

      public class RoboStake extends Application {
          
          Robo_screenController controller=null;
          Parent parent=null;

          @Override
          public void start(Stage stage) {
              
              
              FXMLLoader fxml = new FXMLLoader( getClass().getResource("robo_screen.fxml") );
              try {
                  parent = (Parent)fxml.load();
                  controller = fxml.getController();
                      
                  controller.setApplication(this);
              } catch (IOException ex) {
                  ex.printStackTrace();
              }
              
              
              
              final Scene scene = new Scene(parent, 1000, 550);
              stage.setScene(scene);
              stage.show();

              //stage.setFullScreenExitHint("");
              //stage.setFullScreen(true);
          }

          public static void main(String[] args) {
              launch(args);
          }
      }


      // Controller
      /******************************************************
       * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
       * Click nbfs://nbhost/SystemFileSystem/Templates/javafx/FXMLController.java to edit this template
       */
      package com.menezes.robo;

      import java.net.URL;
      import java.util.ResourceBundle;
      import javafx.fxml.FXML;
      import javafx.fxml.Initializable;
      import javafx.scene.Scene;
      import javafx.scene.control.ComboBox;
      import javafx.scene.control.Label;
      import javafx.scene.control.ToggleButton;
      import javafx.scene.control.ToggleGroup;
      import javafx.scene.web.PopupFeatures;
      import javafx.scene.web.WebEngine;
      import javafx.scene.web.WebView;
      import javafx.stage.Stage;
      import javafx.stage.StageStyle;
      import javafx.util.Callback;

      /**
       * FXML Controller class
       *
       * @author jorge
       */
      public class Robo_screenController implements Initializable {

          @FXML
          private ToggleButton start;
          @FXML
          private ToggleGroup group1;
          @FXML
          private ToggleButton stop;
          @FXML
          private ComboBox<?> robois;
          @FXML
          private Label status;
          @FXML
          private WebView web;

          /**
           * Initializes the controller class.
           */
          
          RoboStake robo = null;
          WebEngine eng = null;
          
          @Override
          public void initialize(URL url, ResourceBundle rb) {
              // TODO
          }
          
          public void setApplication(RoboStake robo) {
            this.robo = robo;
            
            eng = web.getEngine();
            
            eng.setCreatePopupHandler(new Callback<PopupFeatures, WebEngine>() {

               @Override
               public WebEngine call(PopupFeatures p) {
                  Stage stage = new Stage(StageStyle.UTILITY);
                  WebView wv2 = new WebView();
                  stage.setScene(new Scene(wv2));
                  stage.show();
                  return wv2.getEngine();
               }
            });
            
            
            // eng.load("https://stake.com/casino/games/dice");
            eng.load("https://stake.com");
            
            
            
          }
          
          
      }


      // FXML
      // ************************************************************************
      <?xml version="1.0" encoding="UTF-8"?>

      <?import javafx.geometry.Insets?>
      <?import javafx.scene.control.ComboBox?>
      <?import javafx.scene.control.Label?>
      <?import javafx.scene.control.ToggleButton?>
      <?import javafx.scene.control.ToggleGroup?>
      <?import javafx.scene.layout.BorderPane?>
      <?import javafx.scene.layout.ColumnConstraints?>
      <?import javafx.scene.layout.GridPane?>
      <?import javafx.scene.layout.RowConstraints?>
      <?import javafx.scene.layout.StackPane?>
      <?import javafx.scene.web.WebView?>


      <BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.menezes.robo.Robo_screenController">
         <center>
            <WebView fx:id="web" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER" />
         </center>
         <bottom>
            <BorderPane BorderPane.alignment="CENTER">
               <center>
                  <GridPane BorderPane.alignment="CENTER">
                    <columnConstraints>
                      <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" />
                        <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" />
                      <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="250.0" />
                        <ColumnConstraints hgrow="ALWAYS" minWidth="10.0" prefWidth="100.0" />
                    </columnConstraints>
                    <rowConstraints>
                      <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                    </rowConstraints>
                     <children>
                        <StackPane prefHeight="30.0">
                           <children>
                              <StackPane prefHeight="150.0">
                                 <children>
                                    <ToggleButton fx:id="start" mnemonicParsing="false" text="Iniciar">
                                       <toggleGroup>
                                          <ToggleGroup fx:id="group1" />
                                       </toggleGroup>
                                    </ToggleButton>
                                 </children>
                              </StackPane>
                           </children>
                        </StackPane>
                        <StackPane prefHeight="150.0" GridPane.columnIndex="1">
                           <children>
                              <ToggleButton fx:id="stop" mnemonicParsing="false" selected="true" text="Parar" toggleGroup="$group1" />
                           </children>
                        </StackPane>
                        <StackPane alignment="CENTER_LEFT" prefHeight="150.0" prefWidth="200.0" GridPane.columnIndex="2">
                           <children>
                              <ComboBox fx:id="robois" prefWidth="150.0" />
                           </children>
                           <GridPane.margin>
                              <Insets left="20.0" />
                           </GridPane.margin>
                        </StackPane>
                        <StackPane alignment="CENTER_LEFT" prefHeight="150.0" prefWidth="200.0" GridPane.columnIndex="3">
                           <children>
                              <Label fx:id="status" text="Label" />
                           </children>
                        </StackPane>
                     </children>
                     <opaqueInsets>
                        <Insets />
                     </opaqueInsets>
                     <BorderPane.margin>
                        <Insets bottom="10.0" />
                     </BorderPane.margin>
                     <padding>
                        <Insets left="10.0" />
                     </padding>
                  </GridPane>
               </center>
            </BorderPane>
         </bottom>
      </BorderPane>

      ---------- END SOURCE ----------

      FREQUENCY : always


        1. RoboStake.java
          1 kB
        2. Robo_screenController.java
          2 kB
        3. robo_screen.fxml
          4 kB
        4. Capture.PNG
          Capture.PNG
          331 kB

            jbhaskar Jay Bhaskar
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: