(
&mut self,
browser_name: &str,
)
| 1172 | } |
| 1173 | |
| 1174 | fn general_request_browser_version( |
| 1175 | &mut self, |
| 1176 | browser_name: &str, |
| 1177 | ) -> Result<Option<String>, Error> { |
| 1178 | let browser_version; |
| 1179 | let original_browser_version = self.get_config().browser_version.clone(); |
| 1180 | let major_browser_version = self.get_major_browser_version(); |
| 1181 | let cache_path = self.get_cache_path()?; |
| 1182 | let mut metadata = get_metadata(self.get_logger(), &cache_path); |
| 1183 | |
| 1184 | // Browser version is checked in the local metadata |
| 1185 | match get_browser_version_from_metadata( |
| 1186 | &metadata.browsers, |
| 1187 | browser_name, |
| 1188 | &major_browser_version, |
| 1189 | ) { |
| 1190 | Some(version) => { |
| 1191 | self.get_logger().trace(format!( |
| 1192 | "Browser with valid TTL. Getting {} version from metadata", |
| 1193 | browser_name |
| 1194 | )); |
| 1195 | browser_version = version; |
| 1196 | self.set_browser_version(browser_version.clone()); |
| 1197 | } |
| 1198 | _ => { |
| 1199 | // If not in metadata, discover version using online endpoints |
| 1200 | browser_version = |
| 1201 | if major_browser_version.is_empty() || self.is_browser_version_stable() { |
| 1202 | self.request_latest_browser_version_from_online(&original_browser_version)? |
| 1203 | } else { |
| 1204 | self.request_fixed_browser_version_from_online(&original_browser_version)? |
| 1205 | }; |
| 1206 | |
| 1207 | let browser_ttl = self.get_ttl(); |
| 1208 | if browser_ttl > 0 { |
| 1209 | metadata.browsers.push(create_browser_metadata( |
| 1210 | browser_name, |
| 1211 | &major_browser_version, |
| 1212 | &browser_version, |
| 1213 | browser_ttl, |
| 1214 | )); |
| 1215 | write_metadata(&metadata, self.get_logger(), cache_path); |
| 1216 | } |
| 1217 | } |
| 1218 | } |
| 1219 | |
| 1220 | Ok(Some(browser_version)) |
| 1221 | } |
| 1222 | |
| 1223 | fn general_discover_browser_version( |
| 1224 | &mut self, |
no test coverage detected