(feature)
| 189 | |
| 190 | |
| 191 | def caniuse(feature): |
| 192 | if feature in disable_override_features: |
| 193 | return False |
| 194 | if feature in enable_override_features: |
| 195 | return True |
| 196 | |
| 197 | # Certain features are incompatible with certain settings. |
| 198 | # TODO(sbc): Make this more generate, perhaps based on INCOMPATIBLE_SETTINGS |
| 199 | if feature == Feature.GROWABLE_ARRAYBUFFERS and settings.WASM2JS: |
| 200 | logger.debug(f'cannot use {feature.name} because WASM2JS is enabled') |
| 201 | return False |
| 202 | |
| 203 | min_versions = min_browser_versions[feature] |
| 204 | |
| 205 | def report_missing(setting_name): |
| 206 | setting_value = getattr(settings, setting_name) |
| 207 | logger.debug(f'cannot use {feature.name} because {setting_name} is too old: {setting_value}') |
| 208 | |
| 209 | if settings.MIN_CHROME_VERSION < min_versions['chrome']: |
| 210 | report_missing('MIN_CHROME_VERSION') |
| 211 | return False |
| 212 | if settings.MIN_FIREFOX_VERSION < min_versions['firefox']: |
| 213 | report_missing('MIN_FIREFOX_VERSION') |
| 214 | return False |
| 215 | if settings.MIN_SAFARI_VERSION < min_versions['safari']: |
| 216 | report_missing('MIN_SAFARI_VERSION') |
| 217 | return False |
| 218 | if 'node' in min_versions and settings.MIN_NODE_VERSION < min_versions['node']: |
| 219 | report_missing('MIN_NODE_VERSION') |
| 220 | return False |
| 221 | return True |
| 222 | |
| 223 | |
| 224 | def enable_feature(feature, reason, override=False): |
no test coverage detected