-
Bug
-
Resolution: Fixed
-
P3
-
jfx11, 8u172, 10
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8202603 | 10u-cpu | Murali Billa | P3 | Resolved | Fixed | master |
JDK-8202725 | 10.0.2 | Murali Billa | P3 | Resolved | Fixed | b06 |
JDK-8202593 | 8u192 | Murali Billa | P3 | Resolved | Fixed | b01 |
JDK-8202724 | 8u181 | Murali Billa | P3 | Resolved | Fixed | b06 |
java version "1.8.0_172-ea"
Java(TM) SE Runtime Environment (build 1.8.0_172-ea-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b03, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
macOS 10.12.6
A DESCRIPTION OF THE PROBLEM :
When using webPage.executeCommand("removeFormat", null) the formatting of the selected text should be cleared. Instead the style attribute of the body element is removed.
REGRESSION. Last worked in version 8u162
ADDITIONAL REGRESSION INFORMATION:
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Create a view with a HTMLEditor and a button to execute the "removeFormat" command and another button "print to console" for debugging. Then view a text that contains a style in the body:
public class Controller implements Initializable {
public HTMLEditor htmlEditor;
@Override
public void initialize(URL location, ResourceBundle resources) {
htmlEditor.setHtmlText("<html>\n" +
"<head>\n" +
" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n" +
"</head>\n" +
"<body style=\"font-family: san-serif\">\n" +
"<p>Test</p>\n" +
"</body>\n" +
"</html>");
}
public void onRemoveFormat(ActionEvent actionEvent) {
WebView webView = (WebView) htmlEditor.lookup("WebView");
WebPage webPage = Accessor.getPageFor(webView.getEngine());
webPage.executeCommand("removeFormat", null);
}
public void onPrintConsole(ActionEvent actionEvent) {
System.out.println(htmlEditor.getHtmlText());
}
}
Now start the program and click the "Print to console" to see this:
<html dir="ltr"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="font-family: san-serif" contenteditable="true">
<p>Test</p>
</body></html>
Then select the "Test" text and click on "remove format". Afterward click "Print to console" again. Java version 1.8.0_172 prints this:
<html dir="ltr"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body contenteditable="true">
<p>Test</p>
</body></html>
As you can see the style attribute has been removed from the body tag. However in version 1.8.0_162 it worked correct, the body tag was not modified, the style tag remained there.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
"removeFormat" should only modify the selected text and in this example the text has no formatting so "removeFormat" should do nothing.
ACTUAL -
The "style" attribute of the body tag is removed, which is incorrect.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
public class Controller implements Initializable {
public HTMLEditor htmlEditor;
@Override
public void initialize(URL location, ResourceBundle resources) {
htmlEditor.setHtmlText("<html>\n" +
"<head>\n" +
" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n" +
"</head>\n" +
"<body style=\"font-family: san-serif\">\n" +
"<p>Test</p>\n" +
"</body>\n" +
"</html>");
}
public void onRemoveFormat(ActionEvent actionEvent) {
WebView webView = (WebView) htmlEditor.lookup("WebView");
WebPage webPage = Accessor.getPageFor(webView.getEngine());
webPage.executeCommand("removeFormat", null);
}
public void onPrintConsole(ActionEvent actionEvent) {
System.out.println(htmlEditor.getHtmlText());
}
}
and
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.web.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="433.0" prefWidth="671.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.bug2_htmleditor.Controller">
<center>
<HTMLEditor fx:id="htmlEditor" />
</center>
<bottom>
<ToolBar prefHeight="40.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<items>
<Button mnemonicParsing="false" onAction="#onRemoveFormat" text="Clear Formatting" />
<Button mnemonicParsing="false" onAction="#onPrintConsole" text="Print to console" />
</items>
</ToolBar>
</bottom>
</BorderPane>
---------- END SOURCE ----------
- backported by
-
JDK-8202593 webPage.executeCommand("removeFormat", null) removes the style of the body element
- Resolved
-
JDK-8202603 webPage.executeCommand("removeFormat", null) removes the style of the body element
- Resolved
-
JDK-8202724 webPage.executeCommand("removeFormat", null) removes the style of the body element
- Resolved
-
JDK-8202725 webPage.executeCommand("removeFormat", null) removes the style of the body element
- Resolved
- duplicates
-
JDK-8200416 HTMLEditor: The "style" attribute of the "body" tag is removed when text is added.
- Closed
-
JDK-8200416 HTMLEditor: The "style" attribute of the "body" tag is removed when text is added.
- Closed
- relates to
-
JDK-8090011 'tab' key makes control loose focus
- Closed
-
JDK-8202541 [HTMLEditor] tab key makes control loose focus
- Closed
-
JDK-8202542 [HTMLEditor] tab key makes control loose focus
- Open
-
JDK-8213135 HTMLEditorTest.checkStyleProperty fails intermittently
- Resolved