Skip to content

Commit dd5f973

Browse files
committed
[rust] Use original browser version in Firefox management logic
1 parent 8c97367 commit dd5f973

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

rust/src/firefox.rs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ use crate::metadata::{
3434
use crate::{
3535
create_browser_metadata, create_http_client, download_to_tmp_folder, format_three_args,
3636
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,
3838
REG_CURRENT_VERSION_ARG, STABLE,
3939
};
4040

@@ -115,7 +115,10 @@ impl FirefoxManager {
115115
.collect())
116116
}
117117

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>> {
119122
let arch = self.get_arch();
120123
let os = self.get_os();
121124
let platform_label;
@@ -145,7 +148,7 @@ impl FirefoxManager {
145148
} else {
146149
artifact_extension = "pkg";
147150
}
148-
if self.is_browser_version_nightly() {
151+
if is_browser_version_nightly {
149152
platform_label = "osx";
150153
} else {
151154
platform_label = "mac";
@@ -156,7 +159,7 @@ impl FirefoxManager {
156159
artifact_extension = "tar.bz2";
157160
if X32.is(arch) {
158161
platform_label = "linux-i686";
159-
} else if self.is_browser_version_nightly() {
162+
} else if is_browser_version_nightly {
160163
platform_label = "linux64";
161164
} else {
162165
platform_label = "linux-x86_64";
@@ -165,7 +168,7 @@ impl FirefoxManager {
165168

166169
// A possible future improvement is to allow downloading language-specific releases
167170
let language = FIREFOX_DEFAULT_LANG;
168-
if self.is_browser_version_nightly() {
171+
if is_browser_version_nightly {
169172
Ok(format_two_args(
170173
FIREFOX_NIGHTLY_URL,
171174
platform_label,
@@ -383,8 +386,11 @@ impl SeleniumManager for FirefoxManager {
383386
fn download_browser(&mut self) -> Result<Option<PathBuf>, Box<dyn Error>> {
384387
let browser_version;
385388
let browser_name = self.browser_name;
389+
let original_browser_version = self.get_config().browser_version.clone();
386390
let mut metadata = get_metadata(self.get_logger(), self.get_cache_path()?);
387391
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);
388394

389395
// Browser version is checked in the local metadata
390396
match get_browser_version_from_metadata(
@@ -438,7 +444,7 @@ impl SeleniumManager for FirefoxManager {
438444
));
439445
} else {
440446
// 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)?;
442448
self.get_logger().debug(format!(
443449
"Downloading {} {} from {}",
444450
self.get_browser_name(),
@@ -452,7 +458,7 @@ impl SeleniumManager for FirefoxManager {
452458
.get_major_browser_version()
453459
.parse::<i32>()
454460
.unwrap_or_default();
455-
let volume = if self.is_browser_version_nightly() {
461+
let volume = if is_browser_version_nightly {
456462
FIREFOX_NIGHTLY_VOLUME
457463
} else {
458464
FIREFOX_VOLUME

rust/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,6 @@ pub trait SeleniumManager {
486486
let browser_version = self.get_browser_version();
487487
browser_version.eq_ignore_ascii_case(NIGHTLY)
488488
|| browser_version.eq_ignore_ascii_case(CANARY)
489-
|| browser_version.contains('a') // This happens in Firefox versions
490489
}
491490

492491
fn is_browser_version_unstable(&self) -> bool {

0 commit comments

Comments
 (0)