@@ -216,54 +216,57 @@ impl SeleniumManager for FirefoxManager {
216
216
_ => {
217
217
self . assert_online_or_err ( OFFLINE_REQUEST_ERR_MSG ) ?;
218
218
219
- let driver_releases_result = parse_json_from_url :: < GeckodriverReleases > (
219
+ let driver_version = match parse_json_from_url :: < GeckodriverReleases > (
220
220
self . get_http_client ( ) ,
221
221
DRIVER_VERSIONS_URL . to_string ( ) ,
222
- ) ;
223
- let driver_version = if driver_releases_result. is_ok ( ) {
224
- let driver_releases = driver_releases_result. unwrap ( ) ;
225
- let major_browser_version_int =
226
- major_browser_version. parse :: < u32 > ( ) . unwrap_or_default ( ) ;
227
- let filtered_versions: Vec < String > = driver_releases
228
- . geckodriver_releases
229
- . into_iter ( )
230
- . filter ( |r| {
231
- major_browser_version_int >= r. min_firefox_version
232
- && ( r. max_firefox_version . is_none ( )
233
- || ( r. max_firefox_version . is_some ( )
234
- && major_browser_version_int
235
- <= r. max_firefox_version . unwrap ( ) ) )
236
- } )
237
- . map ( |r| r. geckodriver_version )
238
- . collect ( ) ;
239
- self . log . debug ( format ! (
240
- "Valid {} versions for {} {}: {:?}" ,
241
- & self . driver_name,
242
- & self . browser_name,
243
- major_browser_version_int,
244
- filtered_versions
245
- ) ) ;
246
- if filtered_versions. is_empty ( ) {
247
- return Err ( anyhow ! ( format!(
248
- "Not valid {} version found for {} {}" ,
249
- & self . driver_name, & self . browser_name, major_browser_version_int
250
- ) ) ) ;
251
- } else {
252
- filtered_versions. first ( ) . unwrap ( ) . to_string ( )
222
+ ) {
223
+ Ok ( driver_releases) => {
224
+ let major_browser_version_int =
225
+ major_browser_version. parse :: < u32 > ( ) . unwrap_or_default ( ) ;
226
+ let filtered_versions: Vec < String > = driver_releases
227
+ . geckodriver_releases
228
+ . into_iter ( )
229
+ . filter ( |r| {
230
+ major_browser_version_int >= r. min_firefox_version
231
+ && ( r. max_firefox_version . is_none ( )
232
+ || ( r. max_firefox_version . is_some ( )
233
+ && major_browser_version_int
234
+ <= r. max_firefox_version . unwrap ( ) ) )
235
+ } )
236
+ . map ( |r| r. geckodriver_version )
237
+ . collect ( ) ;
238
+ self . log . debug ( format ! (
239
+ "Valid {} versions for {} {}: {:?}" ,
240
+ & self . driver_name,
241
+ & self . browser_name,
242
+ major_browser_version_int,
243
+ filtered_versions
244
+ ) ) ;
245
+ if filtered_versions. is_empty ( ) {
246
+ return Err ( anyhow ! ( format!(
247
+ "Not valid {} version found for {} {}" ,
248
+ & self . driver_name, & self . browser_name, major_browser_version_int
249
+ ) ) ) ;
250
+ } else {
251
+ filtered_versions. first ( ) . unwrap ( ) . to_string ( )
252
+ }
253
+ }
254
+ Err ( err) => {
255
+ self . log . warn ( format ! (
256
+ "Problem reading {} versions: {}. Using latest {} version" ,
257
+ & self . driver_name, err, & self . driver_name,
258
+ ) ) ;
259
+ let latest_url = format ! (
260
+ "{}{}" ,
261
+ self . get_driver_mirror_url_or_default( DRIVER_URL ) ,
262
+ LATEST_RELEASE
263
+ ) ;
264
+ read_redirect_from_link (
265
+ self . get_http_client ( ) ,
266
+ latest_url,
267
+ self . get_logger ( ) ,
268
+ ) ?
253
269
}
254
- } else {
255
- self . log . warn ( format ! (
256
- "Problem reading {} versions: {}. Using latest {} version" ,
257
- & self . driver_name,
258
- driver_releases_result. err( ) . unwrap( ) ,
259
- & self . driver_name,
260
- ) ) ;
261
- let latest_url = format ! (
262
- "{}{}" ,
263
- self . get_driver_mirror_url_or_default( DRIVER_URL ) ,
264
- LATEST_RELEASE
265
- ) ;
266
- read_redirect_from_link ( self . get_http_client ( ) , latest_url, self . get_logger ( ) ) ?
267
270
} ;
268
271
269
272
let driver_ttl = self . get_ttl ( ) ;
0 commit comments