• 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
.github Loading commit data...
bin Loading commit data...
dev Loading commit data...
examples Loading commit data...
packages Loading commit data...
.ci.yaml Loading commit data...
.cirrus.yml Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CODEOWNERS Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
CONTRIBUTING.md Loading commit data...
LICENSE Loading commit data...
PATENT_GRANT Loading commit data...
README.md Loading commit data...
TESTOWNERS Loading commit data...
analysis_options.yaml Loading commit data...
dartdoc_options.yaml Loading commit data...
flutter_console.bat Loading commit data...