Skip to content

Commit 802205a

Browse files
committed
XMLHttpRequest.getAllResponseHeaders() uses \r\n as delimiter in FF/FF_ESR also
1 parent 051d31e commit 802205a

File tree

4 files changed

+29
-32
lines changed

4 files changed

+29
-32
lines changed

src/changes/changes.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88

99
<body>
1010
<release version="4.18.0" date="November xx, 2025" description="Chrome/Edge 141, Firefox 144, FirefoxESR 140, Bugfixes">
11+
<action type="fix" dev="rbri">
12+
XMLHttpRequest.getAllResponseHeaders() uses \r\n as delimiter in FF/FF_ESR also
13+
</action>
1114
<action type="fix" dev="rbri">
1215
evaluation of the proxy autoconf javascript code fixed (regression)
1316
</action>

src/main/java/org/htmlunit/BrowserVersionFeatures.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -426,10 +426,6 @@ public enum BrowserVersionFeatures {
426426
@BrowserFeature({FF, FF_ESR})
427427
KEYBOARD_EVENT_SPECIAL_KEYPRESS,
428428

429-
/** XMLHttpRequest.getAllResponseHeaders() uses only Lf as separator. */
430-
@BrowserFeature({FF, FF_ESR})
431-
XHR_ALL_RESPONSE_HEADERS_SEPARATE_BY_LF,
432-
433429
/**
434430
* Indicates that the Browser handles async and sync network errors the same way.
435431
*/

src/main/java/org/htmlunit/javascript/host/xml/XMLHttpRequest.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
package org.htmlunit.javascript.host.xml;
1616

1717
import static java.nio.charset.StandardCharsets.UTF_8;
18-
import static org.htmlunit.BrowserVersionFeatures.XHR_ALL_RESPONSE_HEADERS_SEPARATE_BY_LF;
1918
import static org.htmlunit.BrowserVersionFeatures.XHR_HANDLE_SYNC_NETWORK_ERRORS;
2019
import static org.htmlunit.BrowserVersionFeatures.XHR_LOAD_ALWAYS_AFTER_DONE;
2120
import static org.htmlunit.BrowserVersionFeatures.XHR_RESPONSE_TEXT_EMPTY_UNSENT;
@@ -613,12 +612,11 @@ public String getAllResponseHeaders() {
613612
if (webResponse_ != null) {
614613
final StringBuilder builder = new StringBuilder();
615614
for (final NameValuePair header : webResponse_.getResponseHeaders()) {
616-
builder.append(header.getName()).append(": ").append(header.getValue());
617-
618-
if (!getBrowserVersion().hasFeature(XHR_ALL_RESPONSE_HEADERS_SEPARATE_BY_LF)) {
619-
builder.append('\r');
620-
}
621-
builder.append('\n');
615+
builder
616+
.append(header.getName())
617+
.append(": ")
618+
.append(header.getValue())
619+
.append("\r\n");
622620
}
623621
return builder.toString();
624622
}

src/test/java/org/htmlunit/javascript/host/xml/XMLHttpRequest2Test.java

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,32 +1090,32 @@ public void encodedXml() throws Exception {
10901090
* @throws Exception if the test fails
10911091
*/
10921092
@Test
1093-
@Alerts({"", "", "content-type: text/xml;charset=iso-8859-1\\n"
1094-
+ "date XYZ GMT\\n"
1095-
+ "server: Jetty(XXX)\\n"
1096-
+ "transfer-encoding: chunked\\n"})
1097-
@HtmlUnitNYI(CHROME = {"", "", "Date XYZ GMT\\nContent-Type: text/xml;charset=iso-8859-1\\n"
1098-
+ "Transfer-Encoding: chunked\\n"
1099-
+ "Server: Jetty(XXX)\\n"},
1100-
EDGE = {"", "", "Date XYZ GMT\\nContent-Type: text/xml;charset=iso-8859-1\\n"
1101-
+ "Transfer-Encoding: chunked\\n"
1102-
+ "Server: Jetty(XXX)\\n"},
1103-
FF = {"", "", "Date XYZ GMT\\nContent-Type: text/xml;charset=iso-8859-1\\n"
1104-
+ "Transfer-Encoding: chunked\\n"
1105-
+ "Server: Jetty(XXX)\\n"},
1106-
FF_ESR = {"", "", "Date XYZ GMT\\nContent-Type: text/xml;charset=iso-8859-1\\n"
1107-
+ "Transfer-Encoding: chunked\\n"
1108-
+ "Server: Jetty(XXX)\\n"})
1093+
@Alerts({"", "", "content-type:\\stext/xml;charset=iso-8859-1\\r\\n"
1094+
+ "date\\sXYZ\\sGMT\\r\\n"
1095+
+ "server:\\sJetty(XXX)\\r\\n"
1096+
+ "transfer-encoding:\\schunked\\r\\n"})
1097+
@HtmlUnitNYI(CHROME = {"", "", "Date\\sXYZ\\sGMT\\r\\n"
1098+
+ "Content-Type:\\stext/xml;charset=iso-8859-1\\r\\n"
1099+
+ "Transfer-Encoding:\\schunked\\r\\n"
1100+
+ "Server:\\sJetty(XXX)\\r\\n"},
1101+
EDGE = {"", "", "Date\\sXYZ\\sGMT\\r\\n"
1102+
+ "Content-Type:\\stext/xml;charset=iso-8859-1\\r\\n"
1103+
+ "Transfer-Encoding:\\schunked\\r\\n"
1104+
+ "Server:\\sJetty(XXX)\\r\\n"},
1105+
FF = {"", "", "Date\\sXYZ\\sGMT\\r\\n"
1106+
+ "Content-Type:\\stext/xml;charset=iso-8859-1\\r\\n"
1107+
+ "Transfer-Encoding:\\schunked\\r\\n"
1108+
+ "Server:\\sJetty(XXX)\\r\\n"},
1109+
FF_ESR = {"", "", "Date\\sXYZ\\sGMT\\r\\n"
1110+
+ "Content-Type:\\stext/xml;charset=iso-8859-1\\r\\n"
1111+
+ "Transfer-Encoding:\\schunked\\r\\n"
1112+
+ "Server:\\sJetty(XXX)\\r\\n"})
11091113
public void getAllResponseHeaders() throws Exception {
11101114
final String html = DOCTYPE_HTML
11111115
+ "<html>\n"
11121116
+ " <head>\n"
11131117
+ " <script>\n"
1114-
+ " function log(msg) {\n"
1115-
+ " msg = ('' + msg).replace(/\\r\\n/g, '\\\\n');"
1116-
+ " msg = msg.replace(/\\n/g, '\\\\n');"
1117-
+ " window.document.title += msg + '§';"
1118-
+ " }\n"
1118+
+ LOG_TITLE_FUNCTION_NORMALIZE
11191119
+ " var request;\n"
11201120
+ " function testBasicAuth() {\n"
11211121
+ " var request = new XMLHttpRequest();\n"

0 commit comments

Comments
 (0)