(
&mut self,
browser_name: &str,
)
| 1190 | } |
| 1191 | |
| 1192 | fn general_request_browser_version( |
| 1193 | &mut self, |
| 1194 | browser_name: &str, |
| 1195 | ) -> Result<Option<String>, Error> { |
| 1196 | let browser_version; |
| 1197 | let original_browser_version = self.get_config().browser_version.clone(); |
| 1198 | let major_browser_version = self.get_major_browser_version(); |
| 1199 | let cache_path = self.get_cache_path()?; |
| 1200 | let mut metadata = get_metadata(self.get_logger(), &cache_path); |
| 1201 | |
| 1202 | // Browser version is checked in the local metadata |
| 1203 | match get_browser_version_from_metadata( |
| 1204 | &metadata.browsers, |
| 1205 | browser_name, |
| 1206 | &major_browser_version, |
| 1207 | ) { |
| 1208 | Some(version) => { |
| 1209 | self.get_logger().trace(format!( |
| 1210 | "Browser with valid TTL. Getting {} version from metadata", |
| 1211 | browser_name |
| 1212 | )); |
| 1213 | browser_version = version; |
| 1214 | self.set_browser_version(browser_version.clone()); |
| 1215 | } |
| 1216 | _ => { |
| 1217 | // If not in metadata, discover version using online endpoints |
| 1218 | browser_version = |
| 1219 | if major_browser_version.is_empty() || self.is_browser_version_stable() { |
| 1220 | self.request_latest_browser_version_from_online(&original_browser_version)? |
| 1221 | } else { |
| 1222 | self.request_fixed_browser_version_from_online(&original_browser_version)? |
| 1223 | }; |
| 1224 | |
| 1225 | let browser_ttl = self.get_ttl(); |
| 1226 | if browser_ttl > 0 { |
| 1227 | metadata.browsers.push(create_browser_metadata( |
| 1228 | browser_name, |
| 1229 | &major_browser_version, |
| 1230 | &browser_version, |
| 1231 | browser_ttl, |
| 1232 | )); |
| 1233 | write_metadata(&metadata, self.get_logger(), cache_path); |
| 1234 | } |
| 1235 | } |
| 1236 | } |
| 1237 | |
| 1238 | Ok(Some(browser_version)) |
| 1239 | } |
| 1240 | |
| 1241 | fn general_discover_browser_version( |
| 1242 | &mut self, |
no test coverage detected