Skip to content

Commit 831bace

Browse files
committed
FF 107
1 parent 7c6dec6 commit 831bace

13 files changed

+551
-417
lines changed

src/main/java/com/gargoylesoftware/htmlunit/BrowserVersion.java

Lines changed: 1 addition & 1 deletion
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(106, "FF");
92+
public static final BrowserVersion FIREFOX = new BrowserVersion(107, "FF");
9393

9494
private static final int FIREFOX_ESR_NUMERIC = 102;
9595

src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1301,7 +1301,7 @@ public enum BrowserVersionFeatures {
13011301
JS_SELECT_OPTIONS_HAS_SELECT_CLASS_NAME,
13021302

13031303
/** Ignore negative value when setting the length. */
1304-
@BrowserFeature({CHROME, EDGE})
1304+
@BrowserFeature({CHROME, EDGE, FF})
13051305
JS_SELECT_OPTIONS_IGNORE_NEGATIVE_LENGTH,
13061306

13071307
/** The 'in' operator returns always true for HtmlOptionsCollection. */

src/main/java/com/gargoylesoftware/htmlunit/css/StyleAttributes.java

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -926,20 +926,43 @@ public enum Definition {
926926

927927
/** The style property {@code containIntrinsicBlockSize}. */
928928
CONTAIN_INTRINSIC_BLOCK_SIZE("containIntrinsicBlockSize", "contain-intrinsic-block-size",
929-
chromeAndEdgeNone()),
929+
chromeAndEdgeNone(), ffLatest("none")),
930+
931+
/** The style property {@code contain-intrinsic-block-size}. */
932+
CONTAIN_INTRINSIC_BLOCK_SIZE_("contain-intrinsic-block-size", "contain-intrinsic-block-size",
933+
ffLatest("none")),
930934

931935
/** The style property {@code containIntrinsicHeight}. */
932-
CONTAIN_INTRINSIC_HEIGHT("containIntrinsicHeight", "contain-intrinsic-height", chromeAndEdgeNone()),
936+
CONTAIN_INTRINSIC_HEIGHT("containIntrinsicHeight", "contain-intrinsic-height",
937+
chromeAndEdgeNone(), ffLatest("none")),
938+
939+
/** The style property {@code contain-intrinsic-height}. */
940+
CONTAIN_INTRINSIC_HEIGHT_("contain-intrinsic-height", "contain-intrinsic-height",
941+
ffLatest("none")),
933942

934943
/** The style property {@code containIntrinsicInlineSize}. */
935944
CONTAIN_INTRINSIC_INLINE_SIZE("containIntrinsicInlineSize", "contain-intrinsic-inline-size",
936-
chromeAndEdgeNone()),
945+
chromeAndEdgeNone(), ffLatest("none")),
946+
947+
/** The style property {@code contain-intrinsic-inline-size}. */
948+
CONTAIN_INTRINSIC_INLINE_SIZE_("contain-intrinsic-inline-size", "contain-intrinsic-inline-size",
949+
ffLatest("none")),
937950

938951
/** The style property {@code containIntrinsicSize}. */
939-
CONTAIN_INTRINSIC_SIZE("containIntrinsicSize", "contain-intrinsic-size", chromeAndEdgeNone()),
952+
CONTAIN_INTRINSIC_SIZE("containIntrinsicSize", "contain-intrinsic-size",
953+
chromeAndEdgeNone(), ffLatest("none")),
954+
955+
/** The style property {@code contain-intrinsic-size}. */
956+
CONTAIN_INTRINSIC_SIZE_("contain-intrinsic-size", "contain-intrinsic-size",
957+
ffLatest("none")),
940958

941959
/** The style property {@code containIntrinsicWidth}. */
942-
CONTAIN_INTRINSIC_WIDTH("containIntrinsicWidth", "contain-intrinsic-width", chromeAndEdgeNone()),
960+
CONTAIN_INTRINSIC_WIDTH("containIntrinsicWidth", "contain-intrinsic-width",
961+
chromeAndEdgeNone(), ffLatest("none")),
962+
963+
/** The style property {@code contain-intrinsic-width}. */
964+
CONTAIN_INTRINSIC_WIDTH_("contain-intrinsic-width", "contain-intrinsic-width",
965+
ffLatest("none")),
943966

944967
/** The style property {@code container}. */
945968
CONTAINER("container", "container", chromeAndEdgeNone()),
@@ -1147,7 +1170,10 @@ public enum Definition {
11471170
FONT_OPTICAL_SIZING_("font-optical-sizing", "font-optical-sizing", ff("auto")),
11481171

11491172
/** The style property {@code fontPalette}. */
1150-
FONT_PALETTE("fontPalette", "font-palette", chromeAndEdgeNormal()),
1173+
FONT_PALETTE("fontPalette", "font-palette", chromeAndEdgeNormal(), ffLatest("normal")),
1174+
1175+
/** The style property {@code font-palette}. */
1176+
FONT_PALETTE_("font-palette", "font-palette", ffLatest("normal")),
11511177

11521178
/** The style property {@code fontSize}. */
11531179
FONT_SIZE("fontSize", "font-size", chromeAndEdge("16px"), ff("16px"), ie("16px")),

src/test/java/com/gargoylesoftware/htmlunit/CookieManager4Test.java

Lines changed: 101 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.net.InetAddress;
2121
import java.net.URL;
2222
import java.net.UnknownHostException;
23+
import java.nio.charset.StandardCharsets;
2324
import java.util.ArrayList;
2425
import java.util.List;
2526
import java.util.Map;
@@ -152,7 +153,21 @@ public void domain() throws Exception {
152153
* @throws Exception if the test fails
153154
*/
154155
@Test
155-
@Alerts("c1=1; c2=2; c3=3; c4=4")
156+
@Alerts(DEFAULT = {"c1=1; c2=2; c3=3; c4=4",
157+
"c1=1; path=/; domain=.htmlunit.org",
158+
"c2=2; path=/; domain=.htmlunit.org",
159+
"c3=3; path=/; domain=.host1.htmlunit.org",
160+
"c4=4; path=/; domain=.host1.htmlunit.org"},
161+
FF = {"c1=1; c2=2; c3=3; c4=4",
162+
"c1=1; path=/; domain=.htmlunit.org; sameSite=None",
163+
"c2=2; path=/; domain=.htmlunit.org; sameSite=None",
164+
"c3=3; path=/; domain=.host1.htmlunit.org; sameSite=None",
165+
"c4=4; path=/; domain=.host1.htmlunit.org; sameSite=None"},
166+
FF_ESR = {"c1=1; c2=2; c3=3; c4=4",
167+
"c1=1; path=/; domain=.htmlunit.org; sameSite=None",
168+
"c2=2; path=/; domain=.htmlunit.org; sameSite=None",
169+
"c3=3; path=/; domain=.host1.htmlunit.org; sameSite=None",
170+
"c4=4; path=/; domain=.host1.htmlunit.org; sameSite=None"})
156171
public void storedDomain1() throws Exception {
157172
final List<NameValuePair> responseHeader = new ArrayList<>();
158173
responseHeader.add(new NameValuePair("Set-Cookie", "c1=1; Domain=." + DOMAIN + "; Path=/"));
@@ -172,19 +187,26 @@ public void storedDomain1() throws Exception {
172187
getMockWebConnection().setDefaultResponse(CookieManagerTest.HTML_ALERT_COOKIE, 200, "Ok",
173188
MimeType.TEXT_HTML, responseHeader);
174189

175-
final WebDriver driver = loadPageWithAlerts2(new URL(URL_HOST1));
190+
final WebDriver driver = loadPage2(new URL(URL_HOST1), StandardCharsets.ISO_8859_1);
191+
verifyAlerts(driver, getExpectedAlerts()[0]);
176192

177-
assertEquals("c1=1; path=/; domain=.htmlunit.org", driver.manage().getCookieNamed("c1").toString());
178-
assertEquals("c2=2; path=/; domain=.htmlunit.org", driver.manage().getCookieNamed("c2").toString());
179-
assertEquals("c3=3; path=/; domain=.host1.htmlunit.org", driver.manage().getCookieNamed("c3").toString());
180-
assertEquals("c4=4; path=/; domain=.host1.htmlunit.org", driver.manage().getCookieNamed("c4").toString());
193+
assertEquals(getExpectedAlerts()[1], driver.manage().getCookieNamed("c1").toString());
194+
assertEquals(getExpectedAlerts()[2], driver.manage().getCookieNamed("c2").toString());
195+
assertEquals(getExpectedAlerts()[3], driver.manage().getCookieNamed("c3").toString());
196+
assertEquals(getExpectedAlerts()[4], driver.manage().getCookieNamed("c4").toString());
181197
}
182198

183199
/**
184200
* @throws Exception if the test fails
185201
*/
186202
@Test
187-
@Alerts("c1=1; c2=2")
203+
@Alerts(DEFAULT = {"c1=1; c2=2", "c1=1; path=/; domain=.htmlunit.org", "c2=2; path=/; domain=.htmlunit.org"},
204+
FF = {"c1=1; c2=2",
205+
"c1=1; path=/; domain=.htmlunit.org; sameSite=None",
206+
"c2=2; path=/; domain=.htmlunit.org; sameSite=None"},
207+
FF_ESR = {"c1=1; c2=2",
208+
"c1=1; path=/; domain=.htmlunit.org; sameSite=None",
209+
"c2=2; path=/; domain=.htmlunit.org; sameSite=None"})
188210
public void storedDomain2() throws Exception {
189211
final List<NameValuePair> responseHeader = new ArrayList<>();
190212
responseHeader.add(new NameValuePair("Set-Cookie", "c1=1; Domain=." + DOMAIN + "; Path=/"));
@@ -204,17 +226,24 @@ public void storedDomain2() throws Exception {
204226
getMockWebConnection().setDefaultResponse(CookieManagerTest.HTML_ALERT_COOKIE, 200, "Ok",
205227
MimeType.TEXT_HTML, responseHeader);
206228

207-
final WebDriver driver = loadPageWithAlerts2(new URL(URL_HOST2));
229+
final WebDriver driver = loadPage2(new URL(URL_HOST2), StandardCharsets.ISO_8859_1);
230+
verifyAlerts(driver, getExpectedAlerts()[0]);
208231

209-
assertEquals("c1=1; path=/; domain=.htmlunit.org", driver.manage().getCookieNamed("c1").toString());
210-
assertEquals("c2=2; path=/; domain=.htmlunit.org", driver.manage().getCookieNamed("c2").toString());
232+
assertEquals(getExpectedAlerts()[1], driver.manage().getCookieNamed("c1").toString());
233+
assertEquals(getExpectedAlerts()[2], driver.manage().getCookieNamed("c2").toString());
211234
}
212235

213236
/**
214237
* @throws Exception if the test fails
215238
*/
216239
@Test
217-
@Alerts("c1=1; c2=2")
240+
@Alerts(DEFAULT = {"c1=1; c2=2", "c1=1; path=/; domain=.htmlunit.org", "c2=2; path=/; domain=.htmlunit.org"},
241+
FF = {"c1=1; c2=2",
242+
"c1=1; path=/; domain=.htmlunit.org; sameSite=None",
243+
"c2=2; path=/; domain=.htmlunit.org; sameSite=None"},
244+
FF_ESR = {"c1=1; c2=2",
245+
"c1=1; path=/; domain=.htmlunit.org; sameSite=None",
246+
"c2=2; path=/; domain=.htmlunit.org; sameSite=None"})
218247
public void storedDomain3() throws Exception {
219248
final List<NameValuePair> responseHeader = new ArrayList<>();
220249
responseHeader.add(new NameValuePair("Set-Cookie", "c1=1; Domain=." + DOMAIN + "; Path=/"));
@@ -234,19 +263,26 @@ public void storedDomain3() throws Exception {
234263
getMockWebConnection().setDefaultResponse(CookieManagerTest.HTML_ALERT_COOKIE, 200, "Ok",
235264
MimeType.TEXT_HTML, responseHeader);
236265

237-
final WebDriver driver = loadPageWithAlerts2(new URL(URL_HOST3));
266+
final WebDriver driver = loadPage2(new URL(URL_HOST3), StandardCharsets.ISO_8859_1);
267+
verifyAlerts(driver, getExpectedAlerts()[0]);
238268

239-
assertEquals("c1=1; path=/; domain=.htmlunit.org", driver.manage().getCookieNamed("c1").toString());
240-
assertEquals("c2=2; path=/; domain=.htmlunit.org", driver.manage().getCookieNamed("c2").toString());
269+
assertEquals(getExpectedAlerts()[1], driver.manage().getCookieNamed("c1").toString());
270+
assertEquals(getExpectedAlerts()[2], driver.manage().getCookieNamed("c2").toString());
241271
}
242272

243273
/**
244274
* @throws Exception if the test fails
245275
*/
246276
@Test
247-
@Alerts(DEFAULT = "c11=11; c12=12",
248-
CHROME = "c12=12",
249-
EDGE = "c12=12")
277+
@Alerts(CHROME = {"c12=12", "c12=12; path=/; domain=htmlunit", "c11=11; path=/; domain=htmlunit"},
278+
EDGE = {"c12=12", "c12=12; path=/; domain=htmlunit", "c11=11; path=/; domain=htmlunit"},
279+
FF = {"c11=11; c12=12",
280+
"c12=12; path=/; domain=htmlunit; sameSite=None",
281+
"c11=11; path=/; domain=htmlunit; sameSite=None"},
282+
FF_ESR = {"c11=11; c12=12",
283+
"c12=12; path=/; domain=htmlunit; sameSite=None",
284+
"c11=11; path=/; domain=htmlunit; sameSite=None"},
285+
IE = {"c11=11; c12=12", "c12=12; path=/; domain=htmlunit", "c11=11; path=/; domain=htmlunit"})
250286
public void storedDomain4() throws Exception {
251287
final List<NameValuePair> responseHeader = new ArrayList<>();
252288
responseHeader.add(new NameValuePair("Set-Cookie", "c1=1; Domain=." + DOMAIN + "; Path=/"));
@@ -266,18 +302,29 @@ public void storedDomain4() throws Exception {
266302
getMockWebConnection().setDefaultResponse(CookieManagerTest.HTML_ALERT_COOKIE, 200, "Ok",
267303
MimeType.TEXT_HTML, responseHeader);
268304

269-
final WebDriver driver = loadPageWithAlerts2(new URL(URL_HOST4));
305+
final WebDriver driver = loadPage2(new URL(URL_HOST4), StandardCharsets.ISO_8859_1);
306+
verifyAlerts(driver, getExpectedAlerts()[0]);
270307

271-
assertEquals("c12=12; path=/; domain=htmlunit", driver.manage().getCookieNamed("c12").toString());
308+
assertEquals(getExpectedAlerts()[1], driver.manage().getCookieNamed("c12").toString());
272309
if (driver.manage().getCookieNamed("c11") != null) {
273-
assertEquals("c11=11; path=/; domain=htmlunit", driver.manage().getCookieNamed("c11").toString());
310+
assertEquals(getExpectedAlerts()[2], driver.manage().getCookieNamed("c11").toString());
274311
}
275312
}
276313

277314
/**
278315
* @throws Exception if the test fails
279316
*/
280317
@Test
318+
@Alerts(DEFAULT = {"c1=1; path=/; domain=.htmlunit.org", "c2=2; path=/; domain=.htmlunit.org",
319+
"c3=3; path=/; domain=.host1.htmlunit.org", "c4=4; path=/; domain=.host1.htmlunit.org"},
320+
FF = {"c1=1; path=/; domain=.htmlunit.org; sameSite=None",
321+
"c2=2; path=/; domain=.htmlunit.org; sameSite=None",
322+
"c3=3; path=/; domain=.host1.htmlunit.org; sameSite=None",
323+
"c4=4; path=/; domain=.host1.htmlunit.org; sameSite=None"},
324+
FF_ESR = {"c1=1; path=/; domain=.htmlunit.org; sameSite=None",
325+
"c2=2; path=/; domain=.htmlunit.org; sameSite=None",
326+
"c3=3; path=/; domain=.host1.htmlunit.org; sameSite=None",
327+
"c4=4; path=/; domain=.host1.htmlunit.org; sameSite=None"})
281328
public void storedDomainFromJs1() throws Exception {
282329
final String html = "<html>\n"
283330
+ "<head>\n"
@@ -301,19 +348,25 @@ public void storedDomainFromJs1() throws Exception {
301348
+ "</body>\n"
302349
+ "</html>";
303350

304-
final WebDriver driver = loadPageWithAlerts2(html, new URL(URL_HOST1));
351+
final WebDriver driver = loadPage2(html, new URL(URL_HOST1));
352+
verifyAlerts(driver);
305353

306354
assertEquals(4, driver.manage().getCookies().size());
307-
assertEquals("c1=1; path=/; domain=.htmlunit.org", driver.manage().getCookieNamed("c1").toString());
308-
assertEquals("c2=2; path=/; domain=.htmlunit.org", driver.manage().getCookieNamed("c2").toString());
309-
assertEquals("c3=3; path=/; domain=.host1.htmlunit.org", driver.manage().getCookieNamed("c3").toString());
310-
assertEquals("c4=4; path=/; domain=.host1.htmlunit.org", driver.manage().getCookieNamed("c4").toString());
355+
assertEquals(getExpectedAlerts()[0], driver.manage().getCookieNamed("c1").toString());
356+
assertEquals(getExpectedAlerts()[1], driver.manage().getCookieNamed("c2").toString());
357+
assertEquals(getExpectedAlerts()[2], driver.manage().getCookieNamed("c3").toString());
358+
assertEquals(getExpectedAlerts()[3], driver.manage().getCookieNamed("c4").toString());
311359
}
312360

313361
/**
314362
* @throws Exception if the test fails
315363
*/
316364
@Test
365+
@Alerts(DEFAULT = {"c1=1; path=/; domain=.htmlunit.org", "c2=2; path=/; domain=.htmlunit.org"},
366+
FF = {"c1=1; path=/; domain=.htmlunit.org; sameSite=None",
367+
"c2=2; path=/; domain=.htmlunit.org; sameSite=None"},
368+
FF_ESR = {"c1=1; path=/; domain=.htmlunit.org; sameSite=None",
369+
"c2=2; path=/; domain=.htmlunit.org; sameSite=None"})
317370
public void storedDomainFromJs2() throws Exception {
318371
final String html = "<html>\n"
319372
+ "<head>\n"
@@ -337,17 +390,23 @@ public void storedDomainFromJs2() throws Exception {
337390
+ "</body>\n"
338391
+ "</html>";
339392

340-
final WebDriver driver = loadPageWithAlerts2(html, new URL(URL_HOST2));
393+
final WebDriver driver = loadPage2(html, new URL(URL_HOST2));
394+
verifyAlerts(driver);
341395

342396
assertEquals(2, driver.manage().getCookies().size());
343-
assertEquals("c1=1; path=/; domain=.htmlunit.org", driver.manage().getCookieNamed("c1").toString());
344-
assertEquals("c2=2; path=/; domain=.htmlunit.org", driver.manage().getCookieNamed("c2").toString());
397+
assertEquals(getExpectedAlerts()[0], driver.manage().getCookieNamed("c1").toString());
398+
assertEquals(getExpectedAlerts()[1], driver.manage().getCookieNamed("c2").toString());
345399
}
346400

347401
/**
348402
* @throws Exception if the test fails
349403
*/
350404
@Test
405+
@Alerts(DEFAULT = {"c1=1; path=/; domain=.htmlunit.org", "c2=2; path=/; domain=.htmlunit.org"},
406+
FF = {"c1=1; path=/; domain=.htmlunit.org; sameSite=None",
407+
"c2=2; path=/; domain=.htmlunit.org; sameSite=None"},
408+
FF_ESR = {"c1=1; path=/; domain=.htmlunit.org; sameSite=None",
409+
"c2=2; path=/; domain=.htmlunit.org; sameSite=None"})
351410
public void storedDomainFromJs3() throws Exception {
352411
final String html = "<html>\n"
353412
+ "<head>\n"
@@ -371,20 +430,27 @@ public void storedDomainFromJs3() throws Exception {
371430
+ "</body>\n"
372431
+ "</html>";
373432

374-
final WebDriver driver = loadPageWithAlerts2(html, new URL(URL_HOST3));
433+
final WebDriver driver = loadPage2(html, new URL(URL_HOST3));
434+
verifyAlerts(driver);
375435

376436
assertEquals(2, driver.manage().getCookies().size());
377-
assertEquals("c1=1; path=/; domain=.htmlunit.org", driver.manage().getCookieNamed("c1").toString());
378-
assertEquals("c2=2; path=/; domain=.htmlunit.org", driver.manage().getCookieNamed("c2").toString());
437+
assertEquals(getExpectedAlerts()[0], driver.manage().getCookieNamed("c1").toString());
438+
assertEquals(getExpectedAlerts()[1], driver.manage().getCookieNamed("c2").toString());
379439
}
380440

381441
/**
382442
* @throws Exception if the test fails
383443
*/
384444
@Test
385-
@Alerts(DEFAULT = {"2", "c12=12; path=/; domain=htmlunit", "c11=11; path=/; domain=htmlunit"},
386-
CHROME = {"1", "c12=12; path=/; domain=htmlunit"},
387-
EDGE = {"1", "c12=12; path=/; domain=htmlunit"})
445+
@Alerts(CHROME = {"1", "c12=12; path=/; domain=htmlunit"},
446+
EDGE = {"1", "c12=12; path=/; domain=htmlunit"},
447+
FF = {"2",
448+
"c12=12; path=/; domain=htmlunit; sameSite=None",
449+
"c11=11; path=/; domain=htmlunit; sameSite=None"},
450+
FF_ESR = {"2",
451+
"c12=12; path=/; domain=htmlunit; sameSite=None",
452+
"c11=11; path=/; domain=htmlunit; sameSite=None"},
453+
IE = {"2", "c12=12; path=/; domain=htmlunit", "c11=11; path=/; domain=htmlunit"})
388454
public void storedDomainFromJs4() throws Exception {
389455
final String html = "<html>\n"
390456
+ "<head>\n"
@@ -409,6 +475,7 @@ public void storedDomainFromJs4() throws Exception {
409475
+ "</html>";
410476

411477
final WebDriver driver = loadPage2(html, new URL(URL_HOST4));
478+
verifyAlerts(driver);
412479

413480
final String[] expected = getExpectedAlerts();
414481
assertEquals(Integer.parseInt(expected[0]), driver.manage().getCookies().size());

0 commit comments

Comments
 (0)