Skip to content

Commit 6459008

Browse files
bonigarciadiemol
andauthored
[rust] Reuse driver mirror URL (when available) to discover Firefox versions (#13941) (#14493)
Co-authored-by: Diego Molina <[email protected]>
1 parent 2970ad3 commit 6459008

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

rust/src/firefox.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -223,9 +223,11 @@ impl SeleniumManager for FirefoxManager {
223223
_ => {
224224
self.assert_online_or_err(OFFLINE_REQUEST_ERR_MSG)?;
225225

226+
let driver_version_url =
227+
self.get_driver_mirror_versions_url_or_default(DRIVER_VERSIONS_URL);
226228
let driver_version = match parse_json_from_url::<GeckodriverReleases>(
227229
self.get_http_client(),
228-
DRIVER_VERSIONS_URL,
230+
&driver_version_url,
229231
) {
230232
Ok(driver_releases) => {
231233
let major_browser_version_int =

rust/src/lib.rs

+20
Original file line numberDiff line numberDiff line change
@@ -1288,6 +1288,26 @@ pub trait SeleniumManager {
12881288
}
12891289
}
12901290

1291+
fn get_driver_mirror_versions_url_or_default<'a>(&'a self, default_url: &'a str) -> String {
1292+
let driver_mirror_url = self.get_driver_mirror_url();
1293+
if !driver_mirror_url.is_empty() {
1294+
let driver_versions_path = default_url.rfind('/').map(|i| &default_url[i + 1..]);
1295+
if let Some(path) = driver_versions_path {
1296+
let driver_mirror_versions_url = if driver_mirror_url.ends_with('/') {
1297+
format!("{}{}", driver_mirror_url, path)
1298+
} else {
1299+
format!("{}/{}", driver_mirror_url, path)
1300+
};
1301+
self.get_logger().debug(format!(
1302+
"Using mirror URL to discover driver versions: {}",
1303+
driver_mirror_versions_url
1304+
));
1305+
return driver_mirror_versions_url;
1306+
}
1307+
}
1308+
default_url.to_string()
1309+
}
1310+
12911311
fn get_driver_mirror_url_or_default<'a>(&'a self, default_url: &'a str) -> String {
12921312
self.get_url_or_default(self.get_driver_mirror_url(), default_url)
12931313
}

0 commit comments

Comments
 (0)