• 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_continuously_test.dart Loading commit data...
analyze_suggestion_test.dart Loading commit data...
analyze_test.dart Loading commit data...
assemble_test.dart Loading commit data...
attach_test.dart Loading commit data...
build_darwin_framework_test.dart Loading commit data...
build_ios_test.dart Loading commit data...
build_ipa_test.dart Loading commit data...
build_linux_test.dart Loading commit data...
build_macos_test.dart Loading commit data...
build_test.dart Loading commit data...
build_web_test.dart Loading commit data...
build_windows_test.dart Loading commit data...
clean_test.dart Loading commit data...
config_test.dart Loading commit data...
create_usage_test.dart Loading commit data...
custom_devices_test.dart Loading commit data...
daemon_test.dart Loading commit data...
devices_test.dart Loading commit data...
doctor_test.dart Loading commit data...
downgrade_test.dart Loading commit data...
drive_test.dart Loading commit data...
generate_localizations_test.dart Loading commit data...
http_host_validator_test.dart Loading commit data...
ide_config_test.dart Loading commit data...
install_test.dart Loading commit data...
logs_test.dart Loading commit data...
precache_test.dart Loading commit data...
proxied_devices_test.dart Loading commit data...
proxy_validator_test.dart Loading commit data...
pub_get_test.dart Loading commit data...
run_test.dart Loading commit data...
screenshot_command_test.dart Loading commit data...
shell_completion_test.dart Loading commit data...
symbolize_test.dart Loading commit data...
test_test.dart Loading commit data...
update_packages_test.dart Loading commit data...
upgrade_test.dart Loading commit data...