<h2 dir="auto">Steps to Reproduce</h2>

<ol dir="auto">
<li>flutter upgrade 0.2 to 0.3</li>
<li>flutter doctor in my project folder</li>
<li>got things like below:</li>
</ol>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
Downloading package sky_engine...(cached)
Downloading common tools...                                  7.0s
Downloading windows-x64 tools...                             9.9s
Downloading android-arm-profile/windows-x64 tools...
Could not authenticate download server. You may be experiencing a man-in-the-middle attack,
your network may be compromised, or you may have malware installed on your computer.
URL: https://storage.flutter-io.cn/flutter_infra/flutter/06afdfe54ebef9168a90ca00a6721c2d36e6aafa/android-arm-profile/windows-x64.zip"><pre class="notranslate"><code class="notranslate">Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
Downloading package sky_engine...(cached)
Downloading common tools...                                  7.0s
Downloading windows-x64 tools...                             9.9s
Downloading android-arm-profile/windows-x64 tools...
Could not authenticate download server. You may be experiencing a man-in-the-middle attack,
your network may be compromised, or you may have malware installed on your computer.
URL: https://storage.flutter-io.cn/flutter_infra/flutter/06afdfe54ebef9168a90ca00a6721c2d36e6aafa/android-arm-profile/windows-x64.zip
</code></pre></div>
<p dir="auto">Each time I run flutter doctor, I got different logs. After several times, I got one log like below:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
Downloading package sky_engine...(cached)
Downloading common tools...(cached)
Downloading windows-x64 tools...(cached)
Downloading android-arm-profile/windows-x64 tools...(cached)
Downloading android-arm-release/windows-x64 tools...(cached)
Downloading android-arm64-profile/windows-x64 tools...(cached)
Downloading android-arm64-release/windows-x64 tools...(cached)
Downloading android-x86 tools...                            116.9s
Downloading android-x64 tools...                            42.0s
Downloading android-arm tools...                            45.0s
Downloading android-arm-profile tools...
Could not authenticate download server. You may be experiencing a man-in-the-middle attack,
your network may be compromised, or you may have malware installed on your computer.
URL: https://storage.flutter-io.cn/flutter_infra/flutter/06afdfe54ebef9168a90ca00a6721c2d36e6aafa/android-arm-profile/artifacts.zip"><pre class="notranslate"><code class="notranslate">Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
Downloading package sky_engine...(cached)
Downloading common tools...(cached)
Downloading windows-x64 tools...(cached)
Downloading android-arm-profile/windows-x64 tools...(cached)
Downloading android-arm-release/windows-x64 tools...(cached)
Downloading android-arm64-profile/windows-x64 tools...(cached)
Downloading android-arm64-release/windows-x64 tools...(cached)
Downloading android-x86 tools...                            116.9s
Downloading android-x64 tools...                            42.0s
Downloading android-arm tools...                            45.0s
Downloading android-arm-profile tools...
Could not authenticate download server. You may be experiencing a man-in-the-middle attack,
your network may be compromised, or you may have malware installed on your computer.
URL: https://storage.flutter-io.cn/flutter_infra/flutter/06afdfe54ebef9168a90ca00a6721c2d36e6aafa/android-arm-profile/artifacts.zip
</code></pre></div>
<p dir="auto">After many many times, it become a normal flutter doctor:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, v0.4.4, on Microsoft Windows [Version 10.0.17134.81], locale zh-CN)
[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[√] Android Studio (version 3.1)
    X Flutter plugin not installed; this adds Flutter specific functionality.
    X Dart plugin not installed; this adds Dart specific functionality.
[√] Connected devices (1 available)

• No issues found!"><pre class="notranslate"><code class="notranslate">Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, v0.4.4, on Microsoft Windows [Version 10.0.17134.81], locale zh-CN)
[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[√] Android Studio (version 3.1)
    X Flutter plugin not installed; this adds Flutter specific functionality.
    X Dart plugin not installed; this adds Dart specific functionality.
[√] Connected devices (1 available)

• No issues found!
</code></pre></div>
<p dir="auto">I'm from China, and add the environment variable like wiki article said.</p>
<p dir="auto">Working on issues with the Firestore plugin, specifically <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="274407399" data-permission-text="Title is private" data-url="https://github.com/flutter/flutter/issues/13043" data-hovercard-type="issue" data-hovercard-url="/flutter/flutter/issues/13043/hovercard" href="https://github.com/flutter/flutter/issues/13043">#13043</a>, and the need to have support for additional types that are specific to the Firestore plugin, led to the creation of <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="286970545" data-permission-text="Title is private" data-url="https://github.com/flutter/plugins/issues/343" data-hovercard-type="pull_request" data-hovercard-url="/flutter/plugins/pull/343/hovercard" href="https://github.com/flutter/plugins/pull/343">flutter/plugins#343</a> .</p>
<p dir="auto">This solution works, but introduces code duplication and additional maintenance needs.</p>
<p dir="auto">A more permanently correct solution would be to allow for StandardMessageCodec to be extended somehow. The particulars of how to do so are why I opened this for discussion.</p>