@@ -34,7 +34,7 @@ use crate::metadata::{
34
34
use crate :: {
35
35
create_browser_metadata, create_http_client, download_to_tmp_folder, format_three_args,
36
36
format_two_args, get_browser_version_from_metadata, path_buf_to_string, uncompress, Logger ,
37
- SeleniumManager , BETA , DASH_VERSION , DEV , NIGHTLY , OFFLINE_REQUEST_ERR_MSG ,
37
+ SeleniumManager , BETA , CANARY , DASH_VERSION , DEV , NIGHTLY , OFFLINE_REQUEST_ERR_MSG ,
38
38
REG_CURRENT_VERSION_ARG , STABLE ,
39
39
} ;
40
40
@@ -115,7 +115,10 @@ impl FirefoxManager {
115
115
. collect ( ) )
116
116
}
117
117
118
- fn get_browser_url ( & mut self ) -> Result < String , Box < dyn Error > > {
118
+ fn get_browser_url (
119
+ & mut self ,
120
+ is_browser_version_nightly : bool ,
121
+ ) -> Result < String , Box < dyn Error > > {
119
122
let arch = self . get_arch ( ) ;
120
123
let os = self . get_os ( ) ;
121
124
let platform_label;
@@ -145,7 +148,7 @@ impl FirefoxManager {
145
148
} else {
146
149
artifact_extension = "pkg" ;
147
150
}
148
- if self . is_browser_version_nightly ( ) {
151
+ if is_browser_version_nightly {
149
152
platform_label = "osx" ;
150
153
} else {
151
154
platform_label = "mac" ;
@@ -156,7 +159,7 @@ impl FirefoxManager {
156
159
artifact_extension = "tar.bz2" ;
157
160
if X32 . is ( arch) {
158
161
platform_label = "linux-i686" ;
159
- } else if self . is_browser_version_nightly ( ) {
162
+ } else if is_browser_version_nightly {
160
163
platform_label = "linux64" ;
161
164
} else {
162
165
platform_label = "linux-x86_64" ;
@@ -165,7 +168,7 @@ impl FirefoxManager {
165
168
166
169
// A possible future improvement is to allow downloading language-specific releases
167
170
let language = FIREFOX_DEFAULT_LANG ;
168
- if self . is_browser_version_nightly ( ) {
171
+ if is_browser_version_nightly {
169
172
Ok ( format_two_args (
170
173
FIREFOX_NIGHTLY_URL ,
171
174
platform_label,
@@ -383,8 +386,11 @@ impl SeleniumManager for FirefoxManager {
383
386
fn download_browser ( & mut self ) -> Result < Option < PathBuf > , Box < dyn Error > > {
384
387
let browser_version;
385
388
let browser_name = self . browser_name ;
389
+ let original_browser_version = self . get_config ( ) . browser_version . clone ( ) ;
386
390
let mut metadata = get_metadata ( self . get_logger ( ) , self . get_cache_path ( ) ?) ;
387
391
let major_browser_version = self . get_major_browser_version ( ) ;
392
+ let is_browser_version_nightly = original_browser_version. eq_ignore_ascii_case ( NIGHTLY )
393
+ || original_browser_version. eq_ignore_ascii_case ( CANARY ) ;
388
394
389
395
// Browser version is checked in the local metadata
390
396
match get_browser_version_from_metadata (
@@ -438,7 +444,7 @@ impl SeleniumManager for FirefoxManager {
438
444
) ) ;
439
445
} else {
440
446
// If browser is not in the cache, download it
441
- let browser_url = self . get_browser_url ( ) ?;
447
+ let browser_url = self . get_browser_url ( is_browser_version_nightly ) ?;
442
448
self . get_logger ( ) . debug ( format ! (
443
449
"Downloading {} {} from {}" ,
444
450
self . get_browser_name( ) ,
@@ -452,7 +458,7 @@ impl SeleniumManager for FirefoxManager {
452
458
. get_major_browser_version ( )
453
459
. parse :: < i32 > ( )
454
460
. unwrap_or_default ( ) ;
455
- let volume = if self . is_browser_version_nightly ( ) {
461
+ let volume = if is_browser_version_nightly {
456
462
FIREFOX_NIGHTLY_VOLUME
457
463
} else {
458
464
FIREFOX_VOLUME
0 commit comments