-
Ian Hickson authored
...and various other minor cleanup: * Moved "FLUTTER_STORAGE_BASE_URL" into a constant throughout the code. There are other strings that we should do that to but this one was relevant to the code I was changing. * Fixed the logger's handling of slow warnings. Previously it deleted too much text. Fixed the test for that to actually verify it entirely, too. * Made the logger delete the slow warning when it's finished. * Fixed 'Please choose one (To quit, press "q/Q")' message to be the cleaner 'Please choose one (or "q" to quit)'. * Added a debug toString to ValidationResult for debugging purposes (not used). * In http_host_validator: - Shortened constant names to be clearer (e.g. kPubDevHttpHost -> kPubDev). - Added GitHub as a tested host since when you run `flutter` we hit that immediately. - Renamed the check "Network resources". - Updated the `slowWarning` of the check to say which hosts are pending. - Removed all timeout logic. Timeouts violate our style guide. - Removed `int.parse(... ?? '10')`; passing a constant to `int.parse` is inefficient. - Replaced the `_HostValidationResult` class with `String?` for simplicity. - Improved the error messages to be more detailed. - Removed all checks that dependened on the stringification of exceptions. That's very brittle. - Added a warning specifically for HandshakeException that talks about the implications (MITM attacks). - Replaced exception-message-parsing logic with just calling `Uri.tryParse` and validating the result. - Replaced a lot of list-filtering logic with just a single for loop to check the results. - Replaced code that added a constant to a known-empty list with just returning a constant list. - Revamped the logic for deciding which hosts to check to just use a single chain of if/else blocks instead of getters, lists literals with `if` expressions, `??`, functions, etc spread over multiple places in the code.