@@ -440,8 +440,8 @@ pub trait SeleniumManager {
440
440
Ok ( ( ) )
441
441
}
442
442
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 ( ) ;
445
445
let timeout = self . get_timeout ( ) ;
446
446
let http_client = create_http_client ( timeout, proxy) ?;
447
447
self . set_http_client ( http_client) ;
@@ -453,7 +453,9 @@ pub trait SeleniumManager {
453
453
// Public functions
454
454
// ----------------------------------------------------------
455
455
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 > > {
457
459
let browser_name_lower_case = browser_name. to_ascii_lowercase ( ) ;
458
460
if browser_name_lower_case. eq ( CHROME_NAME ) {
459
461
Ok ( ChromeManager :: new ( ) ?)
@@ -468,11 +470,16 @@ pub fn get_manager_by_browser(browser_name: String) -> Result<Box<dyn SeleniumMa
468
470
} else if SAFARITP_NAMES . contains ( & browser_name_lower_case. as_str ( ) ) {
469
471
Ok ( SafariTPManager :: new ( ) ?)
470
472
} 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
+ ) ) )
472
477
}
473
478
}
474
479
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 > > {
476
483
if driver_name. eq_ignore_ascii_case ( CHROMEDRIVER_NAME ) {
477
484
Ok ( ChromeManager :: new ( ) ?)
478
485
} 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
484
491
} else if driver_name. eq_ignore_ascii_case ( SAFARIDRIVER_NAME ) {
485
492
Ok ( SafariManager :: new ( ) ?)
486
493
} 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
+ ) ) )
488
498
}
489
499
}
490
500
@@ -502,20 +512,13 @@ pub fn clear_cache(log: &Logger) {
502
512
}
503
513
}
504
514
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 ( )
507
517
. danger_accept_invalid_certs ( true )
508
518
. use_rustls_tls ( )
509
519
. timeout ( Duration :: from_secs ( timeout) ) ;
510
520
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) ?;
519
522
}
520
523
Ok ( client_builder. build ( ) . unwrap_or_default ( ) )
521
524
}
0 commit comments