@@ -440,8 +440,8 @@ pub trait SeleniumManager {
440440 Ok ( ( ) )
441441 }
442442
443- fn update_http_client ( & mut self ) -> Result < ( ) , String > {
444- let proxy = self . get_proxy ( ) . to_string ( ) ;
443+ fn update_http_client ( & mut self ) -> Result < ( ) , Box < dyn Error > > {
444+ let proxy = self . get_proxy ( ) ;
445445 let timeout = self . get_timeout ( ) ;
446446 let http_client = create_http_client ( timeout, proxy) ?;
447447 self . set_http_client ( http_client) ;
@@ -453,7 +453,9 @@ pub trait SeleniumManager {
453453// Public functions
454454// ----------------------------------------------------------
455455
456- pub fn get_manager_by_browser ( browser_name : String ) -> Result < Box < dyn SeleniumManager > , String > {
456+ pub fn get_manager_by_browser (
457+ browser_name : String ,
458+ ) -> Result < Box < dyn SeleniumManager > , Box < dyn Error > > {
457459 let browser_name_lower_case = browser_name. to_ascii_lowercase ( ) ;
458460 if browser_name_lower_case. eq ( CHROME_NAME ) {
459461 Ok ( ChromeManager :: new ( ) ?)
@@ -468,11 +470,16 @@ pub fn get_manager_by_browser(browser_name: String) -> Result<Box<dyn SeleniumMa
468470 } else if SAFARITP_NAMES . contains ( & browser_name_lower_case. as_str ( ) ) {
469471 Ok ( SafariTPManager :: new ( ) ?)
470472 } else {
471- Err ( format ! ( "Invalid browser name: {browser_name}" ) )
473+ Err ( Box :: new ( std:: io:: Error :: new (
474+ std:: io:: ErrorKind :: InvalidInput ,
475+ format ! ( "Invalid browser name: {browser_name}" ) ,
476+ ) ) )
472477 }
473478}
474479
475- pub fn get_manager_by_driver ( driver_name : String ) -> Result < Box < dyn SeleniumManager > , String > {
480+ pub fn get_manager_by_driver (
481+ driver_name : String ,
482+ ) -> Result < Box < dyn SeleniumManager > , Box < dyn Error > > {
476483 if driver_name. eq_ignore_ascii_case ( CHROMEDRIVER_NAME ) {
477484 Ok ( ChromeManager :: new ( ) ?)
478485 } else if driver_name. eq_ignore_ascii_case ( GECKODRIVER_NAME ) {
@@ -484,7 +491,10 @@ pub fn get_manager_by_driver(driver_name: String) -> Result<Box<dyn SeleniumMana
484491 } else if driver_name. eq_ignore_ascii_case ( SAFARIDRIVER_NAME ) {
485492 Ok ( SafariManager :: new ( ) ?)
486493 } else {
487- Err ( format ! ( "Invalid driver name: {driver_name}" ) )
494+ Err ( Box :: new ( std:: io:: Error :: new (
495+ std:: io:: ErrorKind :: InvalidInput ,
496+ format ! ( "Invalid driver name: {driver_name}" ) ,
497+ ) ) )
488498 }
489499}
490500
@@ -502,20 +512,13 @@ pub fn clear_cache(log: &Logger) {
502512 }
503513}
504514
505- pub fn create_http_client ( timeout : u64 , proxy : String ) -> Result < Client , String > {
506- let mut client_builder = Client :: builder ( )
515+ pub fn create_http_client ( timeout : u64 , proxy : & str ) -> Result < Client , Box < dyn Error > > {
516+ let client_builder = Client :: builder ( )
507517 . danger_accept_invalid_certs ( true )
508518 . use_rustls_tls ( )
509519 . timeout ( Duration :: from_secs ( timeout) ) ;
510520 if !proxy. is_empty ( ) {
511- match Proxy :: all ( proxy) {
512- Ok ( p) => {
513- client_builder = client_builder. proxy ( p) ;
514- }
515- Err ( err) => {
516- return Err ( err. to_string ( ) ) ;
517- }
518- } ;
521+ Proxy :: all ( proxy) ?;
519522 }
520523 Ok ( client_builder. build ( ) . unwrap_or_default ( ) )
521524}
0 commit comments