• Ian Hickson's avatar
    Improve network resources doctor check (#120417) · d29668dd
    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.
    d29668dd
Name
Last commit
Last update
..
analyze_size_test.dart Loading commit data...
async_guard_test.dart Loading commit data...
bot_detector_test.dart Loading commit data...
build_test.dart Loading commit data...
command_help_test.dart Loading commit data...
common_test.dart Loading commit data...
context_test.dart Loading commit data...
deferred_component_test.dart Loading commit data...
error_handling_io_test.dart Loading commit data...
file_system_test.dart Loading commit data...
fingerprint_test.dart Loading commit data...
io_test.dart Loading commit data...
logger_test.dart Loading commit data...
multi_root_file_system_test.dart Loading commit data...
net_test.dart Loading commit data...
os_test.dart Loading commit data...
os_utils_test.dart Loading commit data...
platform_test.dart Loading commit data...
process_test.dart Loading commit data...
pub_join_caches_test.dart Loading commit data...
signals_test.dart Loading commit data...
task_queue_test.dart Loading commit data...
terminal_test.dart Loading commit data...
user_messages_test.dart Loading commit data...