Index: google_apis/gaia/oauth2_access_token_fetcher.cc |
diff --git a/google_apis/gaia/oauth2_access_token_fetcher.cc b/google_apis/gaia/oauth2_access_token_fetcher.cc |
index 679891c347e45f4aa6ba57dd967eb0984ae4a2ed..0cd4456537cb6199a9ca1268ac291257f3ff3bd7 100644 |
--- a/google_apis/gaia/oauth2_access_token_fetcher.cc |
+++ b/google_apis/gaia/oauth2_access_token_fetcher.cc |
@@ -69,6 +69,11 @@ static URLFetcher* CreateFetcher(URLRequestContextGetter* getter, |
result->SetRequestContext(getter); |
result->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | |
net::LOAD_DO_NOT_SAVE_COOKIES); |
+ // Fetchers are sometimes cancelled because a network change was detected, |
+ // especially at startup and after sign-in on ChromeOS. Retrying once should |
+ // be enough in those cases; let the fetcher retry up to 3 times just in case. |
+ // http://crbug.com/163710 |
+ result->SetAutomaticallyRetryOnNetworkChanges(3); |
if (!empty_body) |
result->SetUploadData("application/x-www-form-urlencoded", body); |