From b1d931cd21a109faa99ce6b819f60a7e9511da11 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Wed, 29 Nov 2023 15:10:51 +0900
Subject: [PATCH] chromium,firefox,seleniumserver: update chromium and firefox
 versions

drop versions not running on debian 12 and add new versions
---
 component/chromedriver/buildout.cfg           |  37 ++++++----
 component/chromium/buildout.cfg               |  31 ++++----
 component/firefox/buildout.cfg                |  43 ++---------
 software/seleniumserver/buildout.hash.cfg     |   2 +-
 .../seleniumserver/instance-selenium.cfg.in   |  67 ++++++------------
 software/seleniumserver/software.cfg          |  10 +--
 .../test.TestChrome120.test_screenshot.png    | Bin 0 -> 13900 bytes
 .../test.TestChrome69.test_screenshot.png     | Bin 14614 -> 0 bytes
 .../test.TestFirefox102.test_screenshot.png   | Bin 0 -> 14784 bytes
 .../test.TestFirefox60.test_screenshot.png    | Bin 7922 -> 0 bytes
 .../test.TestFirefox68.test_screenshot.png    | Bin 11602 -> 0 bytes
 .../test.TestFirefox78.test_screenshot.png    | Bin 11602 -> 0 bytes
 software/seleniumserver/test/test.py          |  43 ++++-------
 13 files changed, 82 insertions(+), 151 deletions(-)
 create mode 100644 software/seleniumserver/test/data/test.TestChrome120.test_screenshot.png
 delete mode 100644 software/seleniumserver/test/data/test.TestChrome69.test_screenshot.png
 create mode 100644 software/seleniumserver/test/data/test.TestFirefox102.test_screenshot.png
 delete mode 100644 software/seleniumserver/test/data/test.TestFirefox60.test_screenshot.png
 delete mode 100644 software/seleniumserver/test/data/test.TestFirefox68.test_screenshot.png
 delete mode 100644 software/seleniumserver/test/data/test.TestFirefox78.test_screenshot.png

diff --git a/component/chromedriver/buildout.cfg b/component/chromedriver/buildout.cfg
index af2bc629f..e0e7bac75 100644
--- a/component/chromedriver/buildout.cfg
+++ b/component/chromedriver/buildout.cfg
@@ -5,21 +5,24 @@
 [buildout]
 extends =
   ../chromium/buildout.cfg
-  ../nss/buildout.cfg
+  ../glib/buildout.cfg
   ../nspr/buildout.cfg
+  ../nss/buildout.cfg
+  ../pcre2/buildout.cfg
   ../xorg/buildout.cfg
 
 parts =
   chromedriver-wrapper
 
 
+[chromedriver-wrapper-120]
+<= chromedriver-wrapper
+part = chromedriver-120
+
 [chromedriver-wrapper-91]
 <= chromedriver-wrapper
 part = chromedriver-91
 
-[chromedriver-wrapper-2.41]
-<= chromedriver-wrapper
-part = chromedriver-2.41
 
 [chromedriver-wrapper]
 # generate a wrapper named ${:wrapper-name} setting $LD_LIBRARY_PATH
@@ -42,30 +45,36 @@ install =
 
 
 [chromedriver]
-<= chromedriver-91
+<= chromedriver-120
 
-[chromedriver-2.41]
+[chromedriver-120]
 <= chromedriver-download
-version = 2.41
-# Supports Chrome v67-69
-md5sum-x86_64 = fbd8b9561575054e0e7e9cc53b680a70
+version = 120.0.6099.109
+revision-x86_64 = 1217362
+generation-x86_64 = 1698717838856458
+md5sum-x86_64 = 5cb8d386f01052cfc58c80ec63477db0
 
 [chromedriver-91]
 <= chromedriver-download
+url = https://chromedriver.storage.googleapis.com/${:version}/chromedriver_linux64.zip
 version = 91.0.4472.101
-# Supports Chrome v91
 md5sum-x86_64 = cc43ba0babbfff7f22b48165ec8e8c81
 
 [chromedriver-download]
 # Installs chromedriver ${version}.
 # This chromedriver is not usable directly, it needs a wrapper.
 recipe = slapos.recipe.build:download-unpacked
-url = https://chromedriver.storage.googleapis.com/${:version}/chromedriver_${:_url}.zip
+
 library =
-  ${nss:location}/lib
-  ${nspr:location}/lib
+  ${glib:location}/lib
   ${libX11:location}/lib
+  ${libXau:location}/lib
+  ${libxcb:location}/lib
+  ${libXdmcp:location}/lib
+  ${nspr:location}/lib
+  ${nss:location}/lib
+  ${pcre2:location}/lib
 
 [chromedriver-download:getattr(sys,'_multiarch',None)=='x86_64-linux-gnu']
-_url = linux64
+url = https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F${:revision-x86_64}%2Fchromedriver_linux64.zip?generation=${:generation-x86_64}&alt=media
 md5sum = ${:md5sum-x86_64}
diff --git a/component/chromium/buildout.cfg b/component/chromium/buildout.cfg
index 999b55408..38aa0549d 100644
--- a/component/chromium/buildout.cfg
+++ b/component/chromium/buildout.cfg
@@ -65,36 +65,35 @@ install =
   ))
     os.fchmod(f.fileno(), 0o755)
 
+[chromium-wrapper-120]
+<= chromium-wrapper
+part = chromium-120
+
 [chromium-wrapper-91]
 <= chromium-wrapper
 part = chromium-91
 
-[chromium-wrapper-69]
-<= chromium-wrapper
-part = chromium-69
+[chromium]
+<= chromium-120
 
+[chromium-120]
+<= chromium-download
+version = 120.0.6099.109
+
+revision-x86_64 = 1217362
+md5sum-x86_64 = 86719e40f3d33f1b421d073bb4a71f41
+generation-x86_64 = 1698717835110888
 
-[chromium]
-<= chromium-91
 
 [chromium-91]
 <= chromium-download
 version = 91.0.4472.114
 
-revision_x86-64 = 870763
+revision-x86_64 = 870763
 md5sum-x86_64 = 74eab41580469c2b8117cf396db823cb
 generation-x86_64 = 1617926496067901
 
 
-[chromium-69]
-<= chromium-download
-version = 69.0.3497.0
-
-revision_x86-64 = 576753
-md5sum-x86_64 = 08ac27fd40ace4ca8dfbd1db403deccb
-generation-x86_64 = 1532051976706023
-
-
 [chromium-download]
 # macro to download a binary build of chromium and generate a
 # wrapper as chrome-slapos in the part directory
@@ -148,5 +147,5 @@ path =
   ${fontconfig:location}/bin
 
 [chromium-download:getattr(sys,'_multiarch',None)=='x86_64-linux-gnu']
-url = https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F${:revision_x86-64}%2Fchrome-linux.zip?generation=${:generation-x86_64}&alt=media
+url = https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F${:revision-x86_64}%2Fchrome-linux.zip?generation=${:generation-x86_64}&alt=media
 md5sum = ${:md5sum-x86_64}
diff --git a/component/firefox/buildout.cfg b/component/firefox/buildout.cfg
index bdb3ac93f..419cd8edf 100644
--- a/component/firefox/buildout.cfg
+++ b/component/firefox/buildout.cfg
@@ -61,17 +61,9 @@ install =
 <= firefox-wrapper
 part = firefox-115
 
-[firefox-wrapper-78]
+[firefox-wrapper-102]
 <= firefox-wrapper
-part = firefox-78
-
-[firefox-wrapper-68]
-<= firefox-wrapper
-part = firefox-68
-
-[firefox-wrapper-60]
-<= firefox-wrapper
-part = firefox-60
+part = firefox-102
 
 [firefox-default-fonts-conf]
 recipe = slapos.recipe.template:jinja2
@@ -103,23 +95,12 @@ version = 115.3.1esr
 i686-md5sum = f0df1b5cce1edd65addc823da02f9488
 x86_64-md5sum = 910c0786459cf1e4dc214e6402d0633e
 
-[firefox-78]
+[firefox-102]
 <= firefox-download
-version = 78.1.0esr
-i686-md5sum = 09595a1b9a99d17a618a51bc1f971e5e
-x86_64-md5sum = 06f4d488721ce7229d9a86cb4c6786f3
+version = 102.15.1esr
+i686-md5sum = 418b51b3553e98070998fcdbc344487d
+x86_64-md5sum = ff477480d34e44fbd0040c32ed905aaf
 
-[firefox-68]
-<= firefox-download
-version = 68.0.2esr
-i686-md5sum = eaa9e0246eb2a31ccf55c100dc2edd5a
-x86_64-md5sum = d22dc17ce0949cdff78009afca6f2043
-
-[firefox-60]
-<= firefox-download
-version = 60.0.2esr
-i686-md5sum = ce7c80716036dfb5c2fb1ca2538556ff
-x86_64-md5sum = 6fe25d9a3fcc82670320242c9047d1da
 
 [firefox-download]
 recipe = slapos.recipe.build
@@ -199,18 +180,6 @@ version = 0.33.0
 i686-md5sum = c4a9e6c92dc493f25c8d390f1c6fb11c
 x86_64-md5sum = 563c82cfbb21478450e1c828e3730b10
 
-[geckodriver-0.24.0]
-<= geckodriver-base
-version = 0.24.0
-i686-md5sum = b88eee754f6c90b01f760f7a453dda95
-x86_64-md5sum = 7552b85e43973c84763e212af7cca566
-
-[geckodriver-0.22.0]
-<= geckodriver-base
-version = 0.22.0
-i686-md5sum = 6de7544753fda56fbaa8382dcac99aaa
-x86_64-md5sum = 81746200ce5841e00cabf3b8ea7db542
-
 [geckodriver-base]
 # Installs geckodriver ${version}
 recipe = slapos.recipe.build
diff --git a/software/seleniumserver/buildout.hash.cfg b/software/seleniumserver/buildout.hash.cfg
index 9222e5903..d76ccfcfe 100644
--- a/software/seleniumserver/buildout.hash.cfg
+++ b/software/seleniumserver/buildout.hash.cfg
@@ -19,4 +19,4 @@ md5sum = 10e19df182c692b71ea552da183a0bcf
 
 [template-selenium]
 filename = instance-selenium.cfg.in
-md5sum = 39e64f252b7b55987a7e9192773994c1
+md5sum = 5a7abfff9f9d7898620f8c7fc1e6f488
\ No newline at end of file
diff --git a/software/seleniumserver/instance-selenium.cfg.in b/software/seleniumserver/instance-selenium.cfg.in
index 1ea78ce49..7ff6515bf 100644
--- a/software/seleniumserver/instance-selenium.cfg.in
+++ b/software/seleniumserver/instance-selenium.cfg.in
@@ -92,26 +92,15 @@ environment =
   PATH=${buildout:bin-directory}
   XORG_LOCK_DIR=$${directory:tmp}
   DISPLAY=$${xvfb-instance:display}
+  LC_ALL=C.UTF8
   FONTCONFIG_FILE=$${fontconfig-conf:output}
 hostname = $${slap-configuration:ipv4-random}
 
 
-[selenium-server-node-instance-firefox-60]
+[selenium-server-node-instance-firefox-102]
 <= selenium-server-node-instance
-capabilities = browserName=firefox,maxInstances=3,marionette=true,platform=LINUX,version=${firefox-60:version},firefox_binary=${firefox-wrapper-60:location}
-java-args = -Dwebdriver.gecko.driver=${geckodriver-0.22.0:location}
-port = 7777
-
-[selenium-server-node-instance-firefox-68]
-<= selenium-server-node-instance
-capabilities = browserName=firefox,maxInstances=3,marionette=true,platform=LINUX,version=${firefox-68:version},firefox_binary=${firefox-wrapper-68:location}
-java-args = -Dwebdriver.gecko.driver=${geckodriver-0.24.0:location}
-port = 7778
-
-[selenium-server-node-instance-firefox-78]
-<= selenium-server-node-instance
-capabilities = browserName=firefox,maxInstances=3,marionette=true,platform=LINUX,version=${firefox-78:version},firefox_binary=${firefox-wrapper-78:location}
-java-args = -Dwebdriver.gecko.driver=${geckodriver-0.24.0:location}
+capabilities = browserName=firefox,maxInstances=3,marionette=true,platform=LINUX,version=${firefox-102:version},firefox_binary=${firefox-wrapper-102:location}
+java-args = -Dwebdriver.gecko.driver=${geckodriver-0.33.0:location}
 port = 7779
 
 [selenium-server-node-instance-firefox-115]
@@ -120,18 +109,17 @@ capabilities = browserName=firefox,maxInstances=3,marionette=true,platform=LINUX
 java-args = -Dwebdriver.gecko.driver=${geckodriver-0.33.0:location}
 port = 7780
 
-[selenium-server-node-instance-chromium-69]
-<= selenium-server-node-instance
-capabilities = browserName=chrome,maxInstances=3,platform=LINUX,version=${chromium-69:version},chrome_binary=${chromium-wrapper-69:location}
-java-args = -Dwebdriver.chrome.driver=${chromedriver-wrapper-2.41:location}
-port = 7781
-
 [selenium-server-node-instance-chromium-91]
 <= selenium-server-node-instance
 capabilities = browserName=chrome,maxInstances=3,platform=LINUX,version=${chromium-91:version},chrome_binary=${chromium-wrapper-91:location}
 java-args = -Dwebdriver.chrome.driver=${chromedriver-wrapper-91:location}
-port = 7782
+port = 7781
 
+[selenium-server-node-instance-chromium-120]
+<= selenium-server-node-instance
+capabilities = browserName=chrome,maxInstances=3,platform=LINUX,version=${chromium-120:version},chrome_binary=${chromium-wrapper-120:location}
+java-args = -Dwebdriver.chrome.driver=${chromedriver-wrapper-120:location}
+port = 7782
 
 [selenium-server-admin-password]
 recipe = slapos.cookbook:generate.password
@@ -300,12 +288,10 @@ instance-promises =
   $${selenium-server-frontend-listen-promise:name}
   $${selenium-server-hub-listen-promise:name}
   $${selenium-server-hub-nodes-registered-promise:name}
-  $${selenium-server-node-firefox-60-listen-promise:name}
-  $${selenium-server-node-firefox-68-listen-promise:name}
-  $${selenium-server-node-firefox-78-listen-promise:name}
+  $${selenium-server-node-firefox-102-listen-promise:name}
   $${selenium-server-node-firefox-115-listen-promise:name}
-  $${selenium-server-node-instance-chromium-69-listen-promise:name}
   $${selenium-server-node-instance-chromium-91-listen-promise:name}
+  $${selenium-server-node-instance-chromium-120-listen-promise:name}
 
 
 [check-port-listening-promise]
@@ -335,8 +321,8 @@ promise = check_command_execute
 name = $${:_buildout_section_name_}.py
 config-command =
   $${selenium-server-check-nodes-registered:output} $${selenium-server-hub-instance:api-url} $${:expected-node-count}
-# We have 6 nodes with 3 slots each
-expected-node-count = 18
+# We have 4 nodes with 3 slots each
+expected-node-count = 12
 
 [selenium-server-check-nodes-registered]
 recipe = slapos.recipe.template
@@ -350,36 +336,25 @@ inline =
   sys.exit(0 if expected_node_count == actual_node_count else 1)
 
 
-[selenium-server-node-firefox-60-listen-promise]
+[selenium-server-node-firefox-102-listen-promise]
 <= check-port-listening-promise
-config-host = $${selenium-server-node-instance-firefox-60:hostname}
-config-port = $${selenium-server-node-instance-firefox-60:port}
-
-[selenium-server-node-firefox-68-listen-promise]
-<= check-port-listening-promise
-config-host = $${selenium-server-node-instance-firefox-68:hostname}
-config-port = $${selenium-server-node-instance-firefox-68:port}
-
-[selenium-server-node-firefox-78-listen-promise]
-<= check-port-listening-promise
-config-host = $${selenium-server-node-instance-firefox-78:hostname}
-config-port = $${selenium-server-node-instance-firefox-78:port}
+config-host = $${selenium-server-node-instance-firefox-102:hostname}
+config-port = $${selenium-server-node-instance-firefox-102:port}
 
 [selenium-server-node-firefox-115-listen-promise]
 <= check-port-listening-promise
 config-host = $${selenium-server-node-instance-firefox-115:hostname}
 config-port = $${selenium-server-node-instance-firefox-115:port}
 
-[selenium-server-node-instance-chromium-69-listen-promise]
-<= check-port-listening-promise
-config-host = $${selenium-server-node-instance-chromium-69:hostname}
-config-port = $${selenium-server-node-instance-chromium-69:port}
-
 [selenium-server-node-instance-chromium-91-listen-promise]
 <= check-port-listening-promise
 config-host = $${selenium-server-node-instance-chromium-91:hostname}
 config-port = $${selenium-server-node-instance-chromium-91:port}
 
+[selenium-server-node-instance-chromium-120-listen-promise]
+<= check-port-listening-promise
+config-host = $${selenium-server-node-instance-chromium-120:hostname}
+config-port = $${selenium-server-node-instance-chromium-120:port}
 
 [publish-connection-parameter]
 recipe = slapos.cookbook:publish
diff --git a/software/seleniumserver/software.cfg b/software/seleniumserver/software.cfg
index d5314a539..15355aa2c 100644
--- a/software/seleniumserver/software.cfg
+++ b/software/seleniumserver/software.cfg
@@ -64,15 +64,7 @@ install =
     dst = os.path.join(location, 'fonts', os.path.basename(extra_font_dir))
     os.symlink(extra_font_dir, dst)
 
-[firefox-60]
-post-install =
-  ${symlink-extra-fonts-to-firefox-fonts-dir:install}
-
-[firefox-68]
-post-install =
-  ${symlink-extra-fonts-to-firefox-fonts-dir:install}
-
-[firefox-78]
+[firefox-102]
 post-install =
   ${symlink-extra-fonts-to-firefox-fonts-dir:install}
 
diff --git a/software/seleniumserver/test/data/test.TestChrome120.test_screenshot.png b/software/seleniumserver/test/data/test.TestChrome120.test_screenshot.png
new file mode 100644
index 0000000000000000000000000000000000000000..6f0e60abc8a5cceb786902e80793474ec059a673
GIT binary patch
literal 13900
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

literal 0
HcmV?d00001

diff --git a/software/seleniumserver/test/data/test.TestChrome69.test_screenshot.png b/software/seleniumserver/test/data/test.TestChrome69.test_screenshot.png
deleted file mode 100644
index 260715975443aa73b9774f04a3058e472d3030cc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 14614
zcmeHtX&{w(`@g1V@>EkYC9+Obl8_2zeP$Aq!pNGnn38PSx5H@}ll?qRl*%$gC~L}|
zrG!%|vL3rQ332Sp!NLFY^?Ut)_xru;MGJ>>?)&;)*Jr!#(BJg5w`>yJ#Kpz6<<zg5
zXSul6k8*K+=lkys_|ED%2L~>$W8J4Te>U=sV|Dw)@(pyeSL<b;zWnaSf3_JIX&OW)
z-Pp#rV{gIvqhUKN4u$F1Mm)~l6DHq!{@r$i?MJUTnces<_oQyb4VhmzFYXTs%H6BO
zyKdcub8{=peXjMdE6-+j)sA>s1r)2;*S!y{Yu{D>@P52u^jV#C`1s#bd{6M;UoNxw
z^W0oq*M8XOjW6E(_y7CFZy&rqTwPtBr;0GI<>>a72WD_oJ-)mb&<LVrn&sNAj~wbu
zD=Iox;>{AwGSBb$c;dR(GamM(T<W^>cF*e0)6CSaetMW*LcQicS<TOU`g&_8SMq|l
z(2+|KO3f6BHg3vvTLstCT(g|>w_Kl3O-=nO<vetOG7^37p6k%=m;Sjt>@REYwYzP1
z<wLKwH|@CU<3El%%^WyzASo%y_5=^pg6>hP6dd?ciN@G`Ei(B0t*f3}6usxxas4NX
zk|`uq7TxF{sJ6mpHe{IQw7I{NNj@3AGj}i{pyug?*S6JRe7DbrH6&}($6kz=_q<yw
zsYumN6pa*ANS_-iUm6Qv8hasE;x)2UD&;^g^>)tJqpm%w9fhu9@9xRv9A389SUMNy
z)8m&oqM*u|c%5vJtmW3Et5p5+`g*&GPp^1+jmuY`<vB8B$I9k=<h<@XnT<@ppnUw9
zyE>m?EhLq~ZpjJayUES7QrSsg<<zfgzPl^KY&O(i{^i|qR$fzo>2#e1Ye{Zo1iv1x
z6)9NFS(sKDI^1f%`W;uVV${>;4X35Dre|t-CA6xJ55{dj@#hbr4_!*66uUi}d`ZRM
zAE}Q}>ZKgXF8=bMQs|APeoLk>BO|9=@S$@-`;|gDtCFL0ovsxJ(zvO&>CXz3n#1|!
zqNKBn#AQn-D(lNQI@5#oG*X_3T}NzRunNLgmY1{*3>x^YWrb+7?c7FMwkJ=XY|b#1
z3kwS?pD0jw|NN%t^Ixa?i<nVMm7V4TZL-Cm{|aHd&!3PU?^GXmuZXy4RH(|uF7Wsx
zKC-7Is-H6TR?@96n7>Ajy72DU!sk17&p#-J|Mk~jZ2{wDOq@!#`<{|ZA0D`|@)<QQ
zFIYRXEDED`pZIf!ix8Sn*z@Dh4JoJZ4Rz!@T2dyf4NOdMRAwcf4nOQVyr;x-_(!V}
z&rs_!|LV_g??|NVnEvu1oEfDe>)n3w-cVbv9p@9bM#!!smo#;xYHMrz8&AtcW?Q|e
z@u^tq9%@R{e;;?;BTGBEb>`UWBBP?F@0OS~t5iZeDq^hrg*GGG%C2I0E}XhDooF-k
z@3xQsoM3i1=0uv>1bRhIclnQG<xbbB(6_3LZew*8($HT4`F`r?#5Oycnz(rXe@|=;
zwQwokTc<kxUf}TWZ>~(&Jy4KdoF5lc8GU*p&$&}kPkrIDS>9!X{1I7c>G0=u%F+eh
z-kqe0nW%4gbvQr23w1EwC&{AFr6JFuiQLhdcx44~@w+k>J1f}La<;cbyh9Y7J2dCV
zy6r0e*cd!G73WbG>Ri~ZXr6zCkJXVME^k+}<L+_Ws*oYvz$o6gq1a>47pJnBDSO~R
z*wT1~#@1t>u8~(swI?U(VmXt=%;yUSE8a<^wBa_BjWbLzMdLy9FWi=A8QK*=%Sos2
z$u<<a_WBN|+)JXauH-VT15S?jl-W)8S7*qKvzas+s$LaiYQ4)o!S9Q5;q!CPFOjiH
z#xG8Gj|VB$9b-nY@pGm^o!|3YZZoxXJNYQOKl6EAn9a)6J-4q<(zJ4{%WUVneQ4aG
zzJEV`kH3FX_8Ak7SMiBDQg=)uXzqDpbv3_DX$?K`Y#14W2S**wn)&ERMXAlT6)k?v
zKtEvK!qH4sq_Idbe!jV(I_YG1`a!%#Q=R&C6cZ@#H}#p++>XPZ4DQ@1YbjvilzZ}m
z*wDXKxP*?ps?&0{a&4B>PY@OhoH3XgVYudZcH}v1N9E1>2JauS*J9R0lG;yByyl@#
z^u4xQoEgqN|LVrE#i3;8=R5jQ{5BN%mAS%->R$X^#46|%PucPM&n@Bn*1o$}R^}_{
z;d12yfr~St=o`hm2haWZ`W6o@BxK|EeO2gcCf=5esJ4!jOX*|{IXPx7T{L_!k*e-L
zGsLU0GD%}BZt$^ky=J<+l5)>F>`1-pkrg&wqh_;Q>9!NMwnj2(8tNFa+2Wgloz8`k
z9`$NU8@39Yu^I~8m^IbA?BjTowP{hqO=<KHUJ2VzFR#mAtc^Y}t#J9{Pc@N3{JgyS
z8q1z>zWt$&mV;;yF|U!<NF2CKs$RUHSP;8UkTzlC@j+n{<5ex4Q~KlT`08>68`sUe
zSHZd1H^(hTIRtd$dv0GJHOK0tU%Y3vlb6@j+V5h7h>GGqy*PoKiWPrhpDs7IwhOna
zB@-z>l27akobQ(R`q~_O+~X1%H@78LA*x^v99RRAst{gz=Z?IhzCVSMe8zj^9a}RW
z1EDoF&)h$}HvyL$tLo=YnRvzR#<23qn#`SQ&vboi8q}L(Qz3BZ{C^%rC*h*xUAl^j
zMzUYnb``lz)=KA8p@M>iy+Hx0%QH=rz^59VN<qhzOWADe<(70~OV5UrZnG_>IUXu1
zfbb-}c;!jXbUhtK-%iknoUx;b2N=e-`LV&|JDZimqW(kw99!i~Gx2kBob@jq(&BfT
zT6q~qh-s*ARh@V#pm4=#2S0z#eEB~m)c53eY#Se)lJ_2Mi#>GVm-i2q<Os+fm=9Q4
z7-W+1CZwh8Jt}ZZ*!|ZoH@ZmhfZEK*6AkIc89<2S^W5i?CEMDEQldAdIhf4PHfW2T
zJay{S(JRfDv!+v`lY*8P-9~fiS^#z@;9Enf-?T3(Yli|DWSC?f!&@aMC5a0jy}V6Z
z*iBP)uFcNCz<`%WZRR&&uVw=Sb8|sHK0dc*18qWAcD2z`xeH$&(#gToG*)~MS{5A&
znn@O0>nr@A{FUa%q})!=-tHssBN=z~motg#YT#jOmVku%ve4)_Wl+Vqe4p+EBj4?o
z3uXr@#8468t1s8(zTT>$iR&CK8Od(QwWIrfzOCK5K*?ks*H{{TZuj=Dy>73!C}nyt
zt>;nQhAz8GZitt+p*(PDs5Q%ia5kvhy6EZ!4$GAq4!D*J3lC2=$ugguPFz*hiV!eh
zaprre)E@*6{iJjHbn>G|d$gj2cVTE`y426VyvDBcDc@dQU7gz-v{Y^3T4pRTzfm%7
z+w2Gf1G-&bRsPF|hy2?m^&;>u9o1lFzZeU{8)^`0;!$Ux-@(UMjW*`jV87x?vU=f-
zi_3Rp3^hM7jDQAtT1Q4xTpT6h6;bxwpLs{l#cJuAabc)&;gg#@>c_ykq)Br>D0XVr
zC#WUk{{}`zI|xUvat1XVyF{fcY&yLQ05=%;6<&>{_ImODrrzu1+C+UnU9WUMKrfh@
zmr5b^AmWAytH7l>dHcFJvr=C-$bikH1BQCa0*s7|s^-h*%i1nIbZ%u^8bx^xOk|H0
z1IW+JusW5#Hb2>};Mf|Wu{^Br_Ue279d{?E-pSGb{`qEqL8nW&h)<V1-n@S(nHB}k
zsj3X#OxlQ)b9rfgwQGr=i>)}R1Z~&qm6z(!luEe#`K1qGK&C9O<3y4@%k1y(hwME0
z9z;pde4qgMLkCF%F##Ug?g4IYZbzNk4qd8G5TOfuoFV1aRqEbBt|{4Lu+9ylNc*9p
zv+dkyyS(Sn$D*;4kxlPpWMm=<|9AuaI@sdkz%6qYGZt5QrCxiW4FF2j9IT7qJS}_f
z*`7IYyqDHOhf(?c)t>oseuDEco$BmQH(P4h@#7RpTyK8s#q76WPBC6yZsDu{=^O8q
zMp-j64?<)lJ$m$e{(_K_izT}_FE6i_1;OUfw^Yk0Dsf{xHjp6NEmpzN#B-!oM%3@~
z?V^>%5rPafaC!~+O!$_l|7C(&lc;2kVyBZ~(fD6`PuteT9S=@aYXAMt6~<fs`EyZi
z*~&ILQeRs#Ok=Il7yD&ovYyG9TF1KUzB6Zd&%NRn)6~=iRi|@SWNpe-@$Ln!5}&pR
z9^HQ?qjWrsPug~@tGJ=ajd_6CaU~<Gl`X)?<HQU;QFX7F3VQ0&U1EH9vMF)pD7hsR
zFW4bqG*=rPR60T1Nz_t*jgTwn7jmiv+eWuJQl}Z1y2}8ruAn8>WVj6{sn*%GeBlzO
zkB9o$eI~y|Dfhzzg>W7X&eK|F991Mn2562Od>*Uf<I*<=dl0KZ4RR`IzXY|B9Ho39
zO8M(!HW;-3Yer6#p}v{|0rks0rG9Z&D>pU(#=X>270Mc{J6SPyDmWnKe8uXry?;-u
zHcpfI$9BCC@cl`&!=@(agXv#>H%(Vv=1gC1NII#h2~~E)ILTL6k-W0!q$XviL3<Kd
zS&e3XQMdFVLG8taho7Gx@Hgk_il~~uCQVdrleW>)%<%Trg?cJv#7;MM-z|C~Cb8x2
zai6iSS>Hb>25<nS1<v*Z&X-ySvRGpOI^b&2>22bd6--#ryuhj0ns!0A(_?@tr068D
znO`>3J#oG#K(3>}`9*7>w%cTy<d-Z;^ouF~O))e(v~h6fm-<Ap%{vc<K+&DltooqT
zD@<J;v9bI3_s^4`Zt`e-c#v4W<@ndf$^9!!<1~myZCt3y61N^#o7wTb2~gpB!7{S4
zQBWDj{@fz8lVRzhTe>{gnd>{*&tB?X6~%bc2+wB=lzkn3#G6<i+6~ULU6>k>zw|!#
z@#DuKIJ84#kjwmMfk<IPXu2-Q_gqwxysR=-B=JDWRg@?!kGkWME+xaM<ogiq+F%so
z!U*yc4D5#;p)E`gY6H~?O>fvDxC36xhAH)E#G`h+wpYyk&F)F)Li$Kfg(#s90F}Ve
z%fFS*wpxr(##-rwpPN#3!|9>{nTJ?!Bxn&8%PiN)FArU{G}rXf!eAmzY-QpWklzJ0
z62>gK4aAu4tnnJjD%`m;M=>T^>!EA;aZ=ce7cWjS#a53&-1cU9sF9a&{#jSAm-M~9
zMc--R#2c^d6$THb7NxPmHY;#C2ddUynqv`gBk=6nTTaRptLSX5srml?5lPaukSt#Y
z{Yxo|Ba3R*45>+JeH$-7$CBRkc`Gyn7!-tSV@X|}HL$i`yG!VEHe_*Ot8-zAbNSRD
ze1J?3G*2v0kl-@9pU)K%L|H%76*JbHZY*sbINL(1OoVo{l;NiN5ppbE46C&+ZcI5%
zEUG+(JyCg>*orkTIxsNc_IB^R9d~=v^b?6Z>VoiX!2f6cb-B*lefqabRS7Ly#JlZ6
z!=qDoiY9A>m?&)2vuDpPqvo7`{)!L@n(DI-2@B~}OMpue`iPknE*l2+Ka6Vhhe$;2
zw|p~3WG_ycew|xXKq`d{9QmL%c`;eFeGTr2k0reK0s4j#(M2qEUuAIcgdD&c3bpWR
z-{Y^M%o4p-tJz$_|8B4vHBxDDKf*yohJ+;3)Ri$!3n{|ur12X>1-pH^&b>1gKGJ&4
zO#X9AR1o(|^ooR5L`Z>iXVBPe7dSxPcj6PdolLV_aWd>zR)f^V*Q^IlO_Lrak_;rD
z>-Om_;!M3`6h{$bMtC0n*aD*Q;=8-#!1qf@g-S#n6HoB}`lJnzmkeGofMtQhQb{^>
zXWv=@i8Mun<o^Elul+Dv*Vl7vVIYJrtUjRh81_r2WjO>`Fs7u(Uu3gJA2?=*hRc@h
zFYy@{l{U!?frH;C`(pH&S3-7qs>CQUC7drx6`^<Zl%<F`3t;7&jzXzI5ahMywmvbG
z{PTxhKc*!H`8(xS@65%#(0}F@*?|%S2e#i53lacfQ4fL&=DIxUkIi>^WC#c60NJ~I
znUQYb8)A5wFW2)#r0PD@g4iH_sNuQ2zBXgsr&ZJF)=6qLF^h|HtR=5V?((xO%j&CO
z&WICRkN-}Bq7m5VC;%=Jo|nqbnM>DdkAxf$@pvzvJ6^t2gY#8-<4dj(`X_3$Y|;7n
z=?;<&T}4n}J@6!sQY^fi`Owy`i#s|draB>DY!|<kr-3kmgT;{?I(w4I#C3Q7R9_8{
z9~Xcq>AQ2JwR+`y5(?QT7iJq)El^a`D27fEOV<FE)h(trBKK^9{49eO1`J+!vx<h2
z!foNES2_~I*R9`B<(N~pli1F_U*bld<(64<IhFoPMW`%t^1~wI6*8ylni3uoQrL}`
z&1WBWKB3AZO;xVsFTTsgMG@NQt>_P3DAYat)aF*qs^U)fOJWlr>{h>fSz}vvV;M-i
znoeIQbmpF{Rez{tLI|I<iPO+O6h{Ic_@3g-q4Q;k$DWgTO#a-UaX;d_YdMJ?waDv!
zI&nh;{~X@ahHw6#evv5MwmOrhaT4f^NRHahTsXT1N|0r<2^G+2Waxq}zN>FQI$($7
zE0Rccn|9?W)u}gZsH6E98LHi!vGdKG(kUGx#-7)!FQv%Nhd%(Nlds?0mQb4cjf?A(
z<8$j*K@jUzFp#T!JOl5ZldgzV>M8o?*6l2Cf6=EKn~9B^L_QXHapd?ww4p5k%%*)x
zX<u)i^ENInc7N;0p~<Sy?G<0$C{Mh5{07_n2IG}x4yBuwQ~Usljwg5|#Km_WG}}gS
z4rrhSoUV8_J6f^2V$=StBJ!+GF39LgeGfa;`6d_FOa8(-iBUEGnGm3Wj0?O28B!_3
z)EzDX2s)AxyBHL@bQ9ah0pn-8_Xdm=ODcN~Z6iGlO@2@h9*`)M){=5Wj%%^gW2k&&
zHT#JACZapey;h2smsm#a<;B^Iu0fLZA=~tYc95{0HEad@iP|Rydgonk5Qm)OCv&X|
zyXYwVnwU!RQA9#UPNR3$q5?ul%3fcqfL%g9-Cm}BbMUXSgn+@*SBZXdn`^h{ujzn7
zx(rv>oNc8-GEJY}Kp#!bAH>vEzqV!xf%t+4et;Y#uno+VJ|m<~@g?HA_T9T=n~ETk
z?-apm+JUQR$Vj!)^x|!S2`y1e<J8rFqs|>i#l?XJLa^weAt8Xp>UR4?5$Mba67PY$
z)(mf)dtj|pT2-rstH|lQ2c-^<gh^+IfcC4vsaC8K6ZO482v3Ns*}m`0<HPj;XnqoH
zAwk1ckxH$J6arq&Sr$qKV8x=<l_fi{U@ops+rh!XbF?j2=cNk_CL#KoQ<CvJNX1BO
zxmANRL6V5g(-A^SvU5EF<CkH}k0RM1sjnS9D$Bbo24GW6COtVX@90-Xju;{5(wWB7
zI5t>rZDchWr6&IqSirbRl8A_Rq-R6avHp;u-U{j(Dlg8C@CV&8o%3?NDQy7@L-I-U
zLKhKI9GSwd!+L77&BSnBNbqKLVBi|A*pSn*^z937KvLb(>eubXIN4p|Ww*jvXvv;W
zedrRFRnT#O92MyZ&iLxe_?78Q*6fp`;Pkaz4kCRGThVUNVf)952NPz4wsLWuzj<op
z5Osxvi%n~;pspT;hBC6YPH-t-_+o_F&co=XB2r4j>#0!fsesEAB0^K58!@nknvY0C
zr29}&MhzL3!#kP6GujBh%o#1P3(d%ijv^nL$)PSwvygf|0Zt5KXmzDhJX?%SQ~YPY
z8W;ECg@@weB$tp%iH7XF3$8aPT9(vUICTZ_SqVO_>5q-u8?UWffA;2vEsao4hB{IT
z4vl-P+~4lS?^r_}HRJO<aRfPTaX5t2d-v{r0_Wg>cLFY1>tLQv1B8bM?%C)`rOe#Y
z;OuV6vC$C0<P8I6^ojj|MmX1jjKmNO(AcD}5f65|3mW=MTzq*phpOvZI;j;FGE=!(
zZbxfAs5=!#DHYO>KUE}frePQ>jnlZV_ww{d<OO2aKS1MsNYu~}K|p~h$2;A76tm=j
z)K5yhF{`lW!I!%Dhi7$$;Xi)eBBXc*OsoGu-cG9o@q-~Qx#_-r!u_*44zF%}zgAjM
zlC_Rh3f2sg5O8wcS6^>&q$K#ykH!1Xjp7H_Zk6}8wf}I+f$2P#ZsmBd)^jKjG{|jn
zaj)UVy}Gf7cFUOO?Vla%R#CXpyq^WUbEt{fH4KrYgO)l?tlNcMkwQv(I8<H4i~0~z
zx_9>J>fqOYEen`O`2asjd2jbUd}OG1d~X@z(_!lBJhe%my4Yl7ZvFrQ$duIvrI>&m
z;0|u~&OZHwIAnLRTXD$ENC9RrTq&fZLVl&GFJ6vWVqw8D3_<v-R93IzM}SctDv(B`
zxdR5)0fsgsa$uxugAE9J2d@K=inPjBkq6`x5CT^`LL`}nH1M!<ev8TQOq0G`7mC$$
z>d2+{`zfUSPmo^@Lk_q;Ktzb}K?hys8Z+xT-lH}<-doWjPx8f+n#zdsnlL1duX!}$
zfSl1d`vE!Xxg3UMO7sel9hZzPjUF`NX>2KM8j<3dUp&sm_21`S8v=BsyjUFyTLcdM
zJuwaQRcf9|yohlssXUU<tXg-34A~IrM!qM?($V)SCpCBb8!jI02ePXBJgrBs#6(9M
zZF~oaOhL|)CYj(Xo-#vyr4G-S2L+ubwmhWm7^qIhL|i;l`1rF!&d9c&0FIWwnpUJw
z39C)LkqGwFqKU?1rqEEvcNwU39&j)%`fLaCnnq(&s~9v@Yv#Eph_{9r6)RrKNbWXI
z7do{cw!$n)rRd)*gFJJ97!U3oNAQiBBd%|WqT(cslP)3-cmfSO{Op}<#^K&`_VF=b
zqkHK3yXe8&+M=g0ehwJjVR)`Hh~M<nA3ru@PS5z=48-yvxKle)Fh*P)vN<r=flMoq
zPm0q88_^QP2wLjwO?{x?m<rRJLS0?z#i(GJvAIwVdQ=U^<4B3xz#|$bsOS`n1pI95
z9K>WQXryww8N%JO@suQ=3l+GW!LiP)SG-E*5w9w&y#6^Q$5F^qp>41}F|h|S{J?Y^
z#^Z@|XF*F(#gy1aldb*B^Sv6gxR;4(kVql|z$T2bHS4gR^6;bP%yZ8Hjn=W=Fo!1R
z#uiJ}aXPkFP$YAp_=N<L=R%HMbB&Oj$#o$}+y~hrq^((n)QmV=d56YFL+#J)V-^CC
z#$)G)(i^j;*4!BuC)f^VA999ukdCWd_9NRH1S({$A$LX^4&t_iw#kCf2n-g;M8XzO
zyOytw<c|i<wWm!45<(z59$>8Tefxn~y|`l}Q047i9`ng~--Ojzr9+)sz+428AL8N(
zL5ss}h}V<s>k~+_9TMV;`|8J`WF4Mk751u=yog<ll$@8B*u*Rbla0_s1bV3fp<+u-
zK0*Qb0VS|6qJbci`;qzfML5E|YvB?KI-WJB+vhgvsqmHOP!4A3SzsA=(4ru-*37g3
z^R11@q!fAZT6Ei4;LId>ASoiL6N%?XAraxp%vk~?_$QtUv|e~93!~fsPOfwWgjW!G
zkAc$EtRl(oL#Jn_X1=zJ9C2Qc1kcI|@j_zXu0;)-ImM#%=(A)oNFr!7paS7RvJ8z?
za_zY?jpfQ}<Q;wW;~Rbu*rqM&_xpuK_z)(zfrb;q8RCLSj^oJr*LAG*6o|AV0D8v4
z>*2XX#vl<ORzBSdVd1N;O7qL(RBD;15*OF!Pn*AAs?9ar<$~je`b#P;RV7aCv0<8C
zUj{INmzOLfuH2i)C(-xe@;hc~FE6PQWy)(X5E<wdgb|>l5JFhChr%0VGM-7Ve{vT2
zN;=2cRnur=Zt!M)Eh0Srr8%G)L!IW7jR)pz8?9HJK10xr#LMFqt3jnuKx9$Sh6FDO
z*dDx;Gn|_e-8$lClpWA=Ig?X7H5a14dKYTe2C0z$4(ob3i-F#j9LJ7YS`N^_*d>G0
zZTal?Q$!?^5D2k~(^@D1d|3;E7k%E7lu9wlG$@OR9OSUFrPgFgO587?dis9B^?IQZ
zX^pxNIeQ_?mM3Wmf;6=`Gq^Q1Vtjv<szxMJ(Lq76;1`9#i4hlG|7l#z0%2dkT4F!h
zo`<k!{1zK%L3thCzYSwPqX32`_Y1z(k4!HfG|#)7A4oS{kpGj5YvSV4FR#k?rKF^g
zI6*+w_bPIvlv)O{b4aps=7Pwq|9C6Lq}<ocOWTv-&6`#GUkkroE$v`y+y1K1$vTzs
zDmaJ2RzK-1<yPbrIo>~)#wbAg;)I@>|5}g8Z`&TC0^i50C=nsz`{lm9Eqq`UiL{`D
z`=N9rv5*KFHnqvIoKM&OEKN%?>9I!2MWj429Fu5_8r(>E&xl#mZFar;y1e{zUZY}E
zj+>@t-z-T=E#0d55JE@9st5X$b%z^Zt%|tYEB6@Cgjec+Gh4_f;w2di2{QI<2yY>|
z(urTlB8GQzq42ugyL-7S(Py!~-$%U25L6vGNpbPD!1{}bqLUd1@m7e+c&SG|RaFX*
z1Cb+3o`xW)EBMhnOU%F&xkaT$p0T;tl2sxj4Z1S8_ojjj9>#Dl=y_FMuI(tHUUtKu
z+&Dla3Q>RVL_QXoTBlCE6{PJSgG$P!EKK=AeQ#<a>H5G-Ct3JKiJCl6^_vo;H=<UL
zfrc^CH%yUcsV|Lghu*QjU`}?t_pH1_(Gb;$uK4v;C##gj29Z^ov4a4@B-hKHWqu}`
zUyO+v%kwi9pXFD-QlMkk78%%q`Xck$l=j32iFyKHQ$We3>z?Q+ZY=_olkGjgA-hsg
zivTP~peDtCXC>;@57i$EgLQ;#;ahH8);&P;%;wO9#V8X$mx5SrYVDxS`O`V75W8!p
z4$|vVUED4lm{eCQWTXK665)?pK89&4mg*#{J7`sscgPvBEuu45qlF{4ux+b`3=<@g
zZ8FKx4L@p(D?U}Up(_?WgY6~wk^V3Cjqf+xzK@kRu9-sCT>~L6L}X!%;f$#_xUZUQ
za!F$(gH3{apL`uf#mQ>)fPD$sQyPB(TG<nyhN(3v?j<YBI{Fqau3|iS)9cx!Yd7`z
zE!lJ9%*Xs?*udZ@vQLND5`>rvf#t12oAGzQ@Sy<?jRO)9>g*vQ6Imz`(>DqAMJMSS
zGJNUxO}JYUJ(9;8$j%3Q{&OSr90HvLX~|}nYysrm`m0EGd*;DWDH1xhd|AbW?||Nn
z5?f`{9aRPIoejeg)j+_DVv8QG)Z;6mr?EV<Us_sP_(E14$*)M~az0CHgpxHnG%qhH
zOevB%H_YVDFCzf*E=cAE$OJM|niRoNB0sSz7s^<+n&Ky(<yhYz+xxNHjR60UH69;%
zreiJHe07ss8@FWl<^6rK)2f1u;?sR_G!z9t1f@XMt><#QoS;7&aMC2(vmI_skq?*~
zWkWZvq{Jt2kpD{t;dJRjuBE&L_$*<{-LR?D0(mo`S3{xs=n4$W?ResZMz-w#v;Rg;
zkmc>Swz)#yh=sgBPT8FKS}6X5z;Eop^kxttfd=B(;j=9U#<Ml*6`$_2VW4%$GJwn@
zF2aNGEvfY}&cy4r#|8YRzf?o-l1n9+q8YwZra#s$Dirlip2(llF388zCs2np0Wh99
zEn8cY01COQH9Un#A@VzO&dm$xJ2TuQNuuZ?tO`k;2oS+xakq{XujjgUFta{pSQJ*N
z8A^}*nL&8ZpZ!}I@Sswapj}vqCys1qYNUX?xYy9f-O$31z%*&t?H(+{^2^bR0gArw
z-QkdC1VnF!2snzzjGAFgD~<aN7iW@F3)*bMi3uV8y)q_?D9y9x%XZy&Wvw2N2TAhU
zFFj1b@1^3&kL0U-qtWR>nHD;U)(U}8>~a)UMmo_1#7)ki^;509+xL>Iz+*B6wK4BA
z0-~UB!9l077}X_~jVRs1Ztv5uy4i>8k$4lgh#q`$I28gY4{?jh{dpAh6w!k*4rDbB
z4+&5;QCTt0`7yCE&9shes0~s0vuH0v+*c!-+`4EJ1<9%*p4Q2*<XeHp)x#cS7>t?j
zttM@=S3M<K6kd%;ULyogdBl%m9k`zbKnSM&JEK&GgHoL<(jU<F_z)|fd?;(`06UQ~
zbxLQri7`$z|023FK~Tvh4%_S|i1z#HaPXCZ#G#POPK7y7(N%2U!@?sZ8G(B`(@FNx
zjEOWtGZ`V#$0I=8DP(~27Y=B+I}Om78F|^xf0r<Flu6%xHSWg`KJe}hT>FhY=)e?E
z*dvl2<O3iTkP1cOxrURP`8F|$-oHJW+Ac~+wT`~@qIX#~9~oB*_=$YH1D+g!4ZtHO
zo2E1CM?CPzRto$_N@HWA=bPQP9=*LIX}X}f5zjB4Gtf!wQ|;XH2qOc6qmh*<QbqO;
zB;7%%GU>nU_llo9Aw}BP^6IPaZHE2X9Hf0v#ag$virBIz`fNIt?LR!=BkP7U0m#Ra
z1Lnub10R{Q^`?kfxozH_9BeB>dUbH$nb>W2B=w_U_9!QKZfzMt%|nqS9}k+klUVgm
zu0ptCu_dRxz>9`RiL4LF6LGfi+mpb!wZ|UFXiv#shk=xSRd;WUI8?IkC4d4P?fv-r
z!g_xMf_CKTrnChA12A?XfTdYR0g*yjr!k{Q#zknKq;O<ep^E*cBd7U0l;f>Zf3z<G
z;<mP9l}LNIcKwJ4P`UoQ`_;EEzSZDcAAFmIZ+P$x6Tk7oH#+<#3BJjqZ_@CaJpN`8
jzB!}+EoZd2%GLVjr;UHtmkvW>aGg4-r<wiB`5XTau+%v^

diff --git a/software/seleniumserver/test/data/test.TestFirefox102.test_screenshot.png b/software/seleniumserver/test/data/test.TestFirefox102.test_screenshot.png
new file mode 100644
index 0000000000000000000000000000000000000000..1950900abfe8cb1d2fb20445a53e295dd3c15e35
GIT binary patch
literal 14784
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

literal 0
HcmV?d00001

diff --git a/software/seleniumserver/test/data/test.TestFirefox60.test_screenshot.png b/software/seleniumserver/test/data/test.TestFirefox60.test_screenshot.png
deleted file mode 100644
index 07b06567349d485531f9722832ac7c7ab13ebab7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 7922
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

diff --git a/software/seleniumserver/test/data/test.TestFirefox68.test_screenshot.png b/software/seleniumserver/test/data/test.TestFirefox68.test_screenshot.png
deleted file mode 100644
index 9c61d97f1c8c044ced61e4d2d47deba21c9b8612..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 11602
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

diff --git a/software/seleniumserver/test/data/test.TestFirefox78.test_screenshot.png b/software/seleniumserver/test/data/test.TestFirefox78.test_screenshot.png
deleted file mode 100644
index 9c61d97f1c8c044ced61e4d2d47deba21c9b8612..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 11602
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

diff --git a/software/seleniumserver/test/test.py b/software/seleniumserver/test/test.py
index e70aac1bb..c24b39d53 100644
--- a/software/seleniumserver/test/test.py
+++ b/software/seleniumserver/test/test.py
@@ -282,12 +282,12 @@ class TestBrowserSelection(WebServerMixin, SeleniumServerTestCase):
     webdriver_url = parameter_dict['backend-url']
 
     desired_capabilities = DesiredCapabilities.FIREFOX.copy()
-    desired_capabilities['version'] = '60.0.2esr'
+    desired_capabilities['version'] = '102.15.1esr'
     driver = webdriver.Remote(
         command_executor=webdriver_url,
         desired_capabilities=desired_capabilities)
     self.assertIn(
-        'Gecko/20100101 Firefox/60.0',
+        'Gecko/20100101 Firefox/102.0',
         driver.execute_script('return navigator.userAgent'))
     driver.quit()
     desired_capabilities['version'] = '115.3.1esr'
@@ -409,31 +409,18 @@ class TestSSHServer(SeleniumServerTestCase):
       self.assertIn(b"Welcome to SlapOS Selenium Server.", received)
 
 
-class TestFirefox60(
+class TestFirefox102(
     BrowserCompatibilityMixin,
     SeleniumServerTestCase,
     ImageComparisonTestCase,
 ):
-  desired_capabilities = dict(DesiredCapabilities.FIREFOX, version='60.0.2esr')
-  user_agent = 'Gecko/20100101 Firefox/60.0'
+  desired_capabilities = dict(DesiredCapabilities.FIREFOX, version='102.15.1esr')
+  user_agent = 'Gecko/20100101 Firefox/102.0'
 
-
-class TestFirefox68(
-    BrowserCompatibilityMixin,
-    SeleniumServerTestCase,
-    ImageComparisonTestCase,
-):
-  desired_capabilities = dict(DesiredCapabilities.FIREFOX, version='68.0.2esr')
-  user_agent = 'Gecko/20100101 Firefox/68.0'
-
-
-class TestFirefox78(
-    BrowserCompatibilityMixin,
-    SeleniumServerTestCase,
-    ImageComparisonTestCase,
-):
-  desired_capabilities = dict(DesiredCapabilities.FIREFOX, version='78.1.0esr')
-  user_agent = 'Gecko/20100101 Firefox/78.0'
+  # resizing window does not work, but we don't really depend on it
+  @unittest.expectedFailure
+  def test_resize_window(self):
+    super().test_resize_window()
 
 
 class TestFirefox115(
@@ -450,19 +437,19 @@ class TestFirefox115(
     super().test_resize_window()
 
 
-class TestChrome69(
+class TestChrome91(
     BrowserCompatibilityMixin,
     SeleniumServerTestCase,
     ImageComparisonTestCase,
 ):
-  desired_capabilities = dict(DesiredCapabilities.CHROME, version='69.0.3497.0')
-  user_agent = 'Chrome/69.0.3497.0'
+  desired_capabilities = dict(DesiredCapabilities.CHROME, version='91.0.4472.114')
+  user_agent = 'Chrome/91.0.4472.0'
 
 
-class TestChrome91(
+class TestChrome120(
     BrowserCompatibilityMixin,
     SeleniumServerTestCase,
     ImageComparisonTestCase,
 ):
-  desired_capabilities = dict(DesiredCapabilities.CHROME, version='91.0.4472.114')
-  user_agent = 'Chrome/91.0.4472.0'
+  desired_capabilities = dict(DesiredCapabilities.CHROME, version='120.0.6099.109')
+  user_agent = 'Chrome/120.0.0.0'
-- 
2.30.9