@@ -28,7 +28,7 @@ use crate::metadata::{
28
28
} ;
29
29
use crate :: {
30
30
create_http_client, format_three_args, format_two_args, Logger , SeleniumManager , BETA ,
31
- DASH_VERSION , DEV , NIGHTLY , OFFLINE_REQUEST_ERR_MSG , REG_CURRENT_VERSION_ARG , STABLE ,
31
+ DASH_VERSION , DEV , ESR , NIGHTLY , OFFLINE_REQUEST_ERR_MSG , REG_CURRENT_VERSION_ARG , STABLE ,
32
32
} ;
33
33
use anyhow:: anyhow;
34
34
use anyhow:: Error ;
@@ -49,6 +49,7 @@ const FIREFOX_STABLE_LABEL: &str = "LATEST_FIREFOX_VERSION";
49
49
const FIREFOX_BETA_LABEL : & str = "LATEST_FIREFOX_RELEASED_DEVEL_VERSION" ;
50
50
const FIREFOX_DEV_LABEL : & str = "FIREFOX_DEVEDITION" ;
51
51
const FIREFOX_CANARY_LABEL : & str = "FIREFOX_NIGHTLY" ;
52
+ const FIREFOX_ESR_LABEL : & str = "FIREFOX_ESR" ;
52
53
const FIREFOX_VERSIONS_ENDPOINT : & str = "firefox_versions.json" ;
53
54
const FIREFOX_HISTORY_ENDPOINT : & str = "firefox_history_stability_releases.json" ;
54
55
const FIREFOX_HISTORY_DEV_ENDPOINT : & str = "firefox_history_development_releases.json" ;
@@ -146,6 +147,10 @@ impl SeleniumManager for FirefoxManager {
146
147
BrowserPath :: new ( WINDOWS , NIGHTLY ) ,
147
148
r#"Firefox Nightly\firefox.exe"# ,
148
149
) ,
150
+ (
151
+ BrowserPath :: new ( WINDOWS , ESR ) ,
152
+ r#"Mozilla Firefox\firefox.exe"# ,
153
+ ) ,
149
154
(
150
155
BrowserPath :: new ( MACOS , STABLE ) ,
151
156
r#"/Applications/Firefox.app/Contents/MacOS/firefox"# ,
@@ -162,10 +167,15 @@ impl SeleniumManager for FirefoxManager {
162
167
BrowserPath :: new ( MACOS , NIGHTLY ) ,
163
168
r#"/Applications/Firefox Nightly.app/Contents/MacOS/firefox"# ,
164
169
) ,
170
+ (
171
+ BrowserPath :: new ( MACOS , ESR ) ,
172
+ r#"/Applications/Firefox.app/Contents/MacOS/firefox"# ,
173
+ ) ,
165
174
( BrowserPath :: new ( LINUX , STABLE ) , "/usr/bin/firefox" ) ,
166
175
( BrowserPath :: new ( LINUX , BETA ) , "/usr/bin/firefox" ) ,
167
176
( BrowserPath :: new ( LINUX , DEV ) , "/usr/bin/firefox" ) ,
168
177
( BrowserPath :: new ( LINUX , NIGHTLY ) , "/usr/bin/firefox-trunk" ) ,
178
+ ( BrowserPath :: new ( LINUX , ESR ) , "/usr/bin/firefox" ) ,
169
179
] )
170
180
}
171
181
@@ -358,32 +368,33 @@ impl SeleniumManager for FirefoxManager {
358
368
359
369
fn request_fixed_browser_version_from_online (
360
370
& mut self ,
361
- _browser_version : & str ,
371
+ browser_version : & str ,
362
372
) -> Result < String , Error > {
363
373
let browser_name = self . browser_name ;
364
- let browser_version = self . get_browser_version ( ) . to_string ( ) ;
365
374
self . get_logger ( ) . trace ( format ! (
366
375
"Using Firefox endpoints to find out {} {}" ,
367
376
browser_name, browser_version
368
377
) ) ;
369
378
370
- if self . is_browser_version_unstable ( ) {
379
+ if self . is_unstable ( browser_version ) {
371
380
let firefox_versions_url = self . create_firefox_details_url ( FIREFOX_VERSIONS_ENDPOINT ) ;
372
381
let firefox_versions =
373
382
parse_generic_json_from_url ( self . get_http_client ( ) , firefox_versions_url) ?;
374
- let version_label = if browser_version . eq_ignore_ascii_case ( BETA ) {
383
+ let version_label = if self . is_beta ( browser_version ) {
375
384
FIREFOX_BETA_LABEL
376
- } else if browser_version . eq_ignore_ascii_case ( DEV ) {
385
+ } else if self . is_dev ( browser_version ) {
377
386
FIREFOX_DEV_LABEL
387
+ } else if self . is_esr ( browser_version) {
388
+ FIREFOX_ESR_LABEL
378
389
} else {
379
390
FIREFOX_CANARY_LABEL
380
391
} ;
381
- let browser_version = firefox_versions
392
+ let discovered_browser_version = firefox_versions
382
393
. get ( version_label)
383
394
. unwrap ( )
384
395
. as_str ( )
385
396
. unwrap ( ) ;
386
- Ok ( browser_version . to_string ( ) )
397
+ Ok ( discovered_browser_version . to_string ( ) )
387
398
} else {
388
399
let major_browser_version = self
389
400
. get_major_browser_version ( )
@@ -395,7 +406,7 @@ impl SeleniumManager for FirefoxManager {
395
406
return Err ( anyhow ! ( format_three_args(
396
407
UNAVAILABLE_DOWNLOAD_ERROR_MESSAGE ,
397
408
browser_name,
398
- & browser_version,
409
+ browser_version,
399
410
& min_downloadable_version. to_string( ) ,
400
411
) ) ) ;
401
412
}
0 commit comments