@@ -449,15 +449,15 @@ impl SeleniumManager for ChromeManager {
449449 let major_browser_version_int =
450450 major_browser_version. parse :: < i32 > ( ) . unwrap_or_default ( ) ;
451451 let driver_version =
452- if !major_browser_version. is_empty ( ) && major_browser_version_int < 115 {
452+ if self . is_browser_version_stable ( ) || major_browser_version. is_empty ( ) {
453+ // For discovering the latest driver version, the CfT endpoints are also used
454+ self . request_latest_driver_version_from_cft ( ) ?
455+ } else if !major_browser_version. is_empty ( ) && major_browser_version_int < 115 {
453456 // For old versions (chromedriver 114-), the traditional method should work:
454457 // https://chromedriver.chromium.org/downloads
455458 self . request_driver_version_from_latest (
456459 self . create_latest_release_with_version_url ( ) ,
457460 ) ?
458- } else if major_browser_version. is_empty ( ) {
459- // For discovering the latest driver version, the CfT endpoints are also used
460- self . request_latest_driver_version_from_cft ( ) ?
461461 } else {
462462 // As of chromedriver 115+, the metadata for version discovery are published
463463 // by the "Chrome for Testing" (CfT) JSON endpoints:
@@ -481,6 +481,10 @@ impl SeleniumManager for ChromeManager {
481481 }
482482 }
483483
484+ fn request_browser_version ( & mut self ) -> Result < Option < String > , Box < dyn Error > > {
485+ Ok ( Some ( self . request_latest_browser_version_from_cft ( ) ?) )
486+ }
487+
484488 fn get_driver_url ( & mut self ) -> Result < String , Box < dyn Error > > {
485489 let major_driver_version = self
486490 . get_major_driver_version ( )
@@ -551,15 +555,14 @@ impl SeleniumManager for ChromeManager {
551555 }
552556
553557 fn download_browser ( & mut self ) -> Result < Option < PathBuf > , Box < dyn Error > > {
558+ let browser_version;
554559 let browser_name = self . browser_name ;
555- let browser_version_unstable = self . is_browser_version_unstable ( ) ;
556560 let mut metadata = get_metadata ( self . get_logger ( ) ) ;
557- let mut browser_version = self . get_browser_version ( ) . to_string ( ) ;
558561 let major_browser_version = self . get_major_browser_version ( ) ;
559562 let major_browser_version_int = major_browser_version. parse :: < i32 > ( ) . unwrap_or_default ( ) ;
560563
561- if !browser_version_unstable
562- && !major_browser_version . is_empty ( )
564+ if !self . is_browser_version_unstable ( )
565+ && !self . is_browser_version_stable ( )
563566 && major_browser_version_int < MIN_CHROME_VERSION_CFT
564567 {
565568 return Err ( format_three_args (
@@ -587,13 +590,15 @@ impl SeleniumManager for ChromeManager {
587590 }
588591 _ => {
589592 // If not in metadata, discover version using Chrome for Testing (CfT) endpoints
590- if browser_version . is_empty ( ) {
593+ if self . is_browser_version_stable ( ) {
591594 browser_version = self . request_latest_browser_version_from_cft ( ) ?;
592595 } else {
593596 browser_version = self . request_fixed_browser_version_from_cft ( ) ?;
594597 }
598+ self . set_browser_version ( browser_version. clone ( ) ) ;
599+
595600 let browser_ttl = self . get_browser_ttl ( ) ;
596- if browser_ttl > 0 && !browser_version . is_empty ( ) {
601+ if browser_ttl > 0 && !self . is_browser_version_stable ( ) {
597602 metadata. browsers . push ( create_browser_metadata (
598603 browser_name,
599604 & major_browser_version,
@@ -608,7 +613,6 @@ impl SeleniumManager for ChromeManager {
608613 "Required browser: {} {}" ,
609614 browser_name, browser_version
610615 ) ) ;
611- self . set_browser_version ( browser_version. clone ( ) ) ;
612616
613617 // Checking if browser version is in the cache
614618 let browser_binary_path = self . get_browser_binary_path_in_cache ( ) ;
@@ -622,7 +626,7 @@ impl SeleniumManager for ChromeManager {
622626 let browser_url = if let Some ( url) = self . browser_url . clone ( ) {
623627 url
624628 } else {
625- if browser_version . is_empty ( ) {
629+ if self . is_browser_version_stable ( ) {
626630 self . request_latest_browser_version_from_cft ( ) ?;
627631 } else {
628632 self . request_fixed_browser_version_from_cft ( ) ?;
0 commit comments