Skip to content

Commit 6980355

Browse files
committed
Chrome/Edge 112, Firefox 112
1 parent 8adcf6b commit 6980355

27 files changed

Lines changed: 302 additions & 286 deletions

src/changes/changes.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
</properties>
88

99
<body>
10-
<release version="3.2.0" date="Mai xx, 2023" description="Bugfixes">
10+
<release version="3.2.0" date="Mai xx, 2023" description="Chrome/Edge 112, Firefox 112, Bugfixes">
1111
<action type="update" dev="rbri">
1212
Avoid usage of org.w3c.dom.ranges.Range - this is not available on android.
1313
</action>

src/main/java/org/htmlunit/BrowserVersion.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public final class BrowserVersion implements Serializable {
8989
private static final String PLATFORM_WIN32 = "Win32";
9090

9191
/** Latest Firefox. */
92-
public static final BrowserVersion FIREFOX = new BrowserVersion(111, "FF");
92+
public static final BrowserVersion FIREFOX = new BrowserVersion(112, "FF");
9393

9494
private static final int FIREFOX_ESR_NUMERIC = 102;
9595

@@ -104,10 +104,10 @@ public final class BrowserVersion implements Serializable {
104104
public static final BrowserVersion INTERNET_EXPLORER = new BrowserVersion(11, "IE");
105105

106106
/** Latest Edge. */
107-
public static final BrowserVersion EDGE = new BrowserVersion(111, "Edge");
107+
public static final BrowserVersion EDGE = new BrowserVersion(112, "Edge");
108108

109109
/** Latest Chrome. */
110-
public static final BrowserVersion CHROME = new BrowserVersion(111, "Chrome");
110+
public static final BrowserVersion CHROME = new BrowserVersion(112, "Chrome");
111111

112112
/**
113113
* Array with all supported browsers.
@@ -252,9 +252,9 @@ public final class BrowserVersion implements Serializable {
252252
CHROME.imgAcceptHeader_ = "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8";
253253
CHROME.cssAcceptHeader_ = "text/css,*/*;q=0.1";
254254
CHROME.scriptAcceptHeader_ = "*/*";
255-
CHROME.secClientHintUserAgentHeader_ = "\"Google Chrome\";v=\""
256-
+ CHROME.getBrowserVersionNumeric() + "\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\""
257-
+ CHROME.getBrowserVersionNumeric() + "\"";
255+
CHROME.secClientHintUserAgentHeader_ = "\"Chromium\";v=\""
256+
+ CHROME.getBrowserVersionNumeric() + "\", \"Google Chrome\";v=\""
257+
+ CHROME.getBrowserVersionNumeric() + "\", \"Not:A-Brand\";v=\"99\"";
258258
CHROME.fontHeights_ = new int[] {
259259
0, 1, 2, 4, 5, 5, 6, 8, 9, 10, 11, 12, 15, 16, 16, 17, 18, 20, 21, 22, 23, 25, 26, 26,
260260
27, 28, 30, 31, 32, 33, 34, 36, 37, 37, 38, 40, 42, 43, 44, 45, 47, 48, 48, 49, 51, 52, 53, 54, 55, 57,
@@ -266,10 +266,10 @@ public final class BrowserVersion implements Serializable {
266266
// EDGE (Win10 64bit)
267267
EDGE.applicationVersion_ = "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/"
268268
+ EDGE.getBrowserVersionNumeric() + ".0.0.0 Safari/537.36 Edg/"
269-
+ EDGE.getBrowserVersionNumeric() + ".0.1661.51";
269+
+ EDGE.getBrowserVersionNumeric() + ".0.1722.58";
270270
EDGE.userAgent_ = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/"
271271
+ EDGE.getBrowserVersionNumeric() + ".0.0.0 Safari/537.36 Edg/"
272-
+ EDGE.getBrowserVersionNumeric() + ".0.1661.51";
272+
+ EDGE.getBrowserVersionNumeric() + ".0.1722.58";
273273

274274
EDGE.applicationCodeName_ = "Mozilla";
275275
EDGE.vendor_ = "Google Inc.";
@@ -299,9 +299,9 @@ public final class BrowserVersion implements Serializable {
299299
EDGE.imgAcceptHeader_ = "image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8";
300300
EDGE.cssAcceptHeader_ = "text/css,*/*;q=0.1";
301301
EDGE.scriptAcceptHeader_ = "*/*";
302-
EDGE.secClientHintUserAgentHeader_ = "\"Microsoft Edge\";v=\""
303-
+ EDGE.getBrowserVersionNumeric() + "\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\""
304-
+ EDGE.getBrowserVersionNumeric() + "\"";
302+
EDGE.secClientHintUserAgentHeader_ = "\"Chromium\";v=\""
303+
+ EDGE.getBrowserVersionNumeric() + "\", \"Microsoft Edge\";v=\""
304+
+ EDGE.getBrowserVersionNumeric() + "\", \"Not:A-Brand\";v=\"99\"";
305305
EDGE.fontHeights_ = new int[] {
306306
0, 1, 2, 4, 5, 5, 6, 8, 9, 10, 11, 12, 15, 16, 16, 17, 18, 20, 21, 22, 23, 25, 26, 26,
307307
27, 28, 30, 31, 32, 33, 34, 36, 37, 37, 38, 40, 42, 43, 44, 45, 47, 48, 48, 49, 51, 52, 53, 54, 55, 57,

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -625,15 +625,20 @@ public enum BrowserVersionFeatures {
625625
JS_ANCHOR_HOSTNAME_IGNORE_BLANK,
626626

627627
/** The anchor pathname detects url's starting with one letter as file url's. */
628-
@BrowserFeature({CHROME, EDGE, IE})
628+
@BrowserFeature(FF)
629629
JS_ANCHOR_PATHNAME_DETECT_WIN_DRIVES_URL,
630630

631+
/** The anchor pathname detects url's starting with one letter as file url's
632+
* and replaces them with the file protocol. */
633+
@BrowserFeature({CHROME, EDGE, IE})
634+
JS_ANCHOR_PATHNAME_DETECT_WIN_DRIVES_URL_REPLACE,
635+
631636
/** The anchor pathname property returns nothing for broken http(s) url's. */
632637
@BrowserFeature({CHROME, EDGE, FF, FF_ESR})
633638
JS_ANCHOR_PATHNAME_NONE_FOR_BROKEN_URL,
634639

635640
/** The anchor pathname property returns nothing for none http(s) url's. */
636-
@BrowserFeature({FF, FF_ESR})
641+
@BrowserFeature(FF_ESR)
637642
JS_ANCHOR_PATHNAME_NONE_FOR_NONE_HTTP_URL,
638643

639644
/** The anchor pathname prefixes file url's with '/'. */

src/main/java/org/htmlunit/WebWindowImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ else if (webClient.getBrowserVersion().hasFeature(JS_WINDOW_OUTER_INNER_HEIGHT_D
9797
}
9898
else if (webClient.getBrowserVersion().hasFeature(JS_WINDOW_OUTER_INNER_HEIGHT_DIFF_131)) {
9999
outerHeight_ = innerHeight_ + 131;
100-
outerWidth_ = innerWidth_ + 63;
100+
outerWidth_ = innerWidth_ + 73;
101101
}
102102
else if (webClient.getBrowserVersion().hasFeature(JS_WINDOW_OUTER_INNER_HEIGHT_DIFF_133)) {
103103
outerHeight_ = innerHeight_ + 133;

src/main/java/org/htmlunit/css/StyleAttributes.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,9 @@ public enum Definition {
143143
ANIMATION("animation", "animation", ie(""), chromeAndEdge("none 0s ease 0s 1 normal none running"),
144144
ff("0s ease 0s 1 normal none running none")),
145145

146+
/** The style property {@code animationComposition}. */
147+
ANIMATION_COMPOSITION("animationComposition", "animation-composition", chromeAndEdge("replace")),
148+
146149
/** The style property {@code animationDelay}. */
147150
ANIMATION_DELAY("animationDelay", "animation-delay", ie("0s"), chromeAndEdgeAndFirefox("0s")),
148151

@@ -2091,10 +2094,10 @@ public enum Definition {
20912094
MOZ_HYPHENS__("-moz-hyphens", "-moz-hyphens", ff("manual")),
20922095

20932096
/** The style property {@code MozImageRegion}. */
2094-
MOZ_IMAGE_REGION("MozImageRegion", "-moz-image-region", ff("auto")),
2097+
MOZ_IMAGE_REGION("MozImageRegion", "-moz-image-region", ffEsr("auto")),
20952098

20962099
/** The style property {@code -moz-image-region}. */
2097-
MOZ_IMAGE_REGION__("-moz-image-region", "-moz-image-region", ff("auto")),
2100+
MOZ_IMAGE_REGION__("-moz-image-region", "-moz-image-region", ffEsr("auto")),
20982101

20992102
/** The style property {@code MozMarginEnd}. */
21002103
MOZ_MARGIN_END("MozMarginEnd", "-moz-margin-end", ff("0px")),

src/main/java/org/htmlunit/javascript/host/html/HTMLAnchorElement.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
import static org.htmlunit.BrowserVersionFeatures.JS_ANCHOR_HOSTNAME_IGNORE_BLANK;
1818
import static org.htmlunit.BrowserVersionFeatures.JS_ANCHOR_PATHNAME_DETECT_WIN_DRIVES_URL;
19+
import static org.htmlunit.BrowserVersionFeatures.JS_ANCHOR_PATHNAME_DETECT_WIN_DRIVES_URL_REPLACE;
1920
import static org.htmlunit.BrowserVersionFeatures.JS_ANCHOR_PATHNAME_NONE_FOR_BROKEN_URL;
2021
import static org.htmlunit.BrowserVersionFeatures.JS_ANCHOR_PATHNAME_NONE_FOR_NONE_HTTP_URL;
2122
import static org.htmlunit.BrowserVersionFeatures.JS_ANCHOR_PATHNAME_PREFIX_WIN_DRIVES_URL;
@@ -397,31 +398,40 @@ else if (!StringUtils.isEmpty(hostname)) {
397398
*/
398399
@JsxGetter
399400
public String getPathname() {
401+
final BrowserVersion browser = getBrowserVersion();
400402
try {
401403
final URL url = getUrl();
402404
if (!url.getProtocol().startsWith("http")
403-
&& getBrowserVersion().hasFeature(JS_ANCHOR_PATHNAME_NONE_FOR_NONE_HTTP_URL)) {
405+
&& browser.hasFeature(JS_ANCHOR_PATHNAME_NONE_FOR_NONE_HTTP_URL)) {
404406
return "";
405407
}
406-
if (getBrowserVersion().hasFeature(JS_ANCHOR_PATHNAME_DETECT_WIN_DRIVES_URL)) {
408+
409+
if (browser.hasFeature(JS_ANCHOR_PATHNAME_DETECT_WIN_DRIVES_URL_REPLACE)) {
407410
final HtmlAnchor anchor = (HtmlAnchor) getDomNodeOrDie();
408411
String href = anchor.getHrefAttribute();
409412
if (href.length() > 1 && Character.isLetter(href.charAt(0)) && ':' == href.charAt(1)) {
410-
if (getBrowserVersion().hasFeature(JS_ANCHOR_PROTOCOL_COLON_UPPER_CASE_DRIVE_LETTERS)) {
413+
if (browser.hasFeature(JS_ANCHOR_PROTOCOL_COLON_UPPER_CASE_DRIVE_LETTERS)) {
411414
href = StringUtils.capitalize(href);
412415
}
413-
if (getBrowserVersion().hasFeature(JS_ANCHOR_PATHNAME_PREFIX_WIN_DRIVES_URL)) {
416+
if (browser.hasFeature(JS_ANCHOR_PATHNAME_PREFIX_WIN_DRIVES_URL)) {
414417
href = "/" + href;
415418
}
416419
return href;
417420
}
418421
}
422+
else if (browser.hasFeature(JS_ANCHOR_PATHNAME_DETECT_WIN_DRIVES_URL)) {
423+
final HtmlAnchor anchor = (HtmlAnchor) getDomNodeOrDie();
424+
final String href = anchor.getHrefAttribute();
425+
if (href.length() > 1 && Character.isLetter(href.charAt(0)) && ':' == href.charAt(1)) {
426+
return href.substring(2);
427+
}
428+
}
419429
return url.getPath();
420430
}
421431
catch (final MalformedURLException e) {
422432
final HtmlAnchor anchor = (HtmlAnchor) getDomNodeOrDie();
423433
if (anchor.getHrefAttribute().startsWith("http")
424-
&& getBrowserVersion().hasFeature(JS_ANCHOR_PATHNAME_NONE_FOR_BROKEN_URL)) {
434+
&& browser.hasFeature(JS_ANCHOR_PATHNAME_NONE_FOR_BROKEN_URL)) {
425435
return "";
426436
}
427437
return "/";
@@ -478,7 +488,7 @@ public void setPort(final String port) throws Exception {
478488
public String getProtocol() {
479489
final BrowserVersion browser = getBrowserVersion();
480490
try {
481-
if (browser.hasFeature(JS_ANCHOR_PATHNAME_DETECT_WIN_DRIVES_URL)) {
491+
if (browser.hasFeature(JS_ANCHOR_PATHNAME_DETECT_WIN_DRIVES_URL_REPLACE)) {
482492
final HtmlAnchor anchor = (HtmlAnchor) getDomNodeOrDie();
483493
final String href = anchor.getHrefAttribute().toLowerCase(Locale.ROOT);
484494
if (href.length() > 1 && Character.isLetter(href.charAt(0)) && ':' == href.charAt(1)) {

src/main/java/org/htmlunit/javascript/host/intl/DateTimeFormat.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ public class DateTimeFormat extends HtmlUnitScriptable {
8585
commonFormats.put("da", ddDot);
8686
commonFormats.put("de", ddDot);
8787
commonFormats.put("el", ddSlash);
88+
commonFormats.put("en-CA", yyyyDash);
8889
commonFormats.put("en-NZ", ddSlash);
8990
commonFormats.put("en-PA", ddSlash);
9091
commonFormats.put("en-PR", ddSlash);
@@ -140,7 +141,6 @@ public class DateTimeFormat extends HtmlUnitScriptable {
140141
commonFormats.put("zh", yyyySlash);
141142
commonFormats.put("zh-HK", ddSlash);
142143
commonFormats.put("zh-SG", "\u200EYYYY\u200E\u5E74\u200EMM\u200E\u6708\u200Edd\u200E\u65E5");
143-
commonFormats.put("en-CA", mmSlash);
144144
commonFormats.put("fr-CH", ddDot);
145145

146146
CHROME_FORMATS_.putAll(commonFormats);
@@ -152,13 +152,11 @@ public class DateTimeFormat extends HtmlUnitScriptable {
152152
FF_ESR_FORMATS_.putAll(commonFormats);
153153

154154
CHROME_FORMATS_.put("be", mmSlash);
155-
CHROME_FORMATS_.put("en-CA", yyyyDash);
156155
CHROME_FORMATS_.put("ga", mmSlash);
157156
CHROME_FORMATS_.put("is", mmSlash);
158157
CHROME_FORMATS_.put("mk", mmSlash);
159158
CHROME_FORMATS_.put("sq", mmSlash);
160159

161-
FF_ESR_FORMATS_.put("en-CA", yyyyDash);
162160
FF_ESR_FORMATS_.put("sr", ddDotDot);
163161

164162
IE_FORMATS_.put("ar", rightToLeft);

src/test/java/org/htmlunit/BrowserVersionTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@ public class BrowserVersionTest {
3535
*/
3636
@Test
3737
public void getBrowserVersionNumeric() {
38-
assertEquals(111, BrowserVersion.FIREFOX.getBrowserVersionNumeric());
38+
assertEquals(112, BrowserVersion.FIREFOX.getBrowserVersionNumeric());
3939
assertEquals(102, BrowserVersion.FIREFOX_ESR.getBrowserVersionNumeric());
4040
assertEquals(11, BrowserVersion.INTERNET_EXPLORER.getBrowserVersionNumeric());
41-
assertEquals(111, BrowserVersion.CHROME.getBrowserVersionNumeric());
42-
assertEquals(111, BrowserVersion.EDGE.getBrowserVersionNumeric());
41+
assertEquals(112, BrowserVersion.CHROME.getBrowserVersionNumeric());
42+
assertEquals(112, BrowserVersion.EDGE.getBrowserVersionNumeric());
4343
}
4444

4545
/**

src/test/java/org/htmlunit/ExternalTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ public class ExternalTest {
5454
static String MAVEN_REPO_URL_ = "https://repo1.maven.org/maven2/";
5555

5656
/** Chrome driver. */
57-
static String CHROME_DRIVER_ = "111.0.5563.64";
57+
static String CHROME_DRIVER_ = "112.0.5615.49";
5858
static String CHROME_DRIVER_URL_ = "https://chromedriver.chromium.org/downloads";
5959

60-
static String EDGE_DRIVER_ = "111.0.1661.62";
60+
static String EDGE_DRIVER_ = "112.0.1722.39";
6161
static String EDGE_DRIVER_URL_ = "https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/";
6262

6363
/** Gecko driver. */

0 commit comments

Comments
 (0)