OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "google_apis/gcm/engine/connection_factory_impl.h" | 5 #include "google_apis/gcm/engine/connection_factory_impl.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/location.h" | 9 #include "base/location.h" |
10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 if (!last_login_time_.is_null()) { | 202 if (!last_login_time_.is_null()) { |
203 UMA_HISTOGRAM_CUSTOM_TIMES("GCM.ConnectionUpTime", | 203 UMA_HISTOGRAM_CUSTOM_TIMES("GCM.ConnectionUpTime", |
204 NowTicks() - last_login_time_, | 204 NowTicks() - last_login_time_, |
205 base::TimeDelta::FromSeconds(1), | 205 base::TimeDelta::FromSeconds(1), |
206 base::TimeDelta::FromHours(24), | 206 base::TimeDelta::FromHours(24), |
207 50); | 207 50); |
208 // |last_login_time_| will be reset below, before attempting the new | 208 // |last_login_time_| will be reset below, before attempting the new |
209 // connection. | 209 // connection. |
210 } | 210 } |
211 | 211 |
212 if (reason == LOGIN_FAILURE) | 212 // SignalConnectionReset can be called at any time without regard to whether |
213 event_tracker_.ConnectionLoginFailed(); | 213 // a connection attempt is currently in progress. Only notify the event |
214 event_tracker_.EndConnectionAttempt(); | 214 // tracker if there is an event in progress. |
| 215 if (event_tracker_.IsEventInProgress()) { |
| 216 if (reason == LOGIN_FAILURE) |
| 217 event_tracker_.ConnectionLoginFailed(); |
| 218 event_tracker_.EndConnectionAttempt(); |
| 219 } |
215 | 220 |
216 CloseSocket(); | 221 CloseSocket(); |
217 DCHECK(!IsEndpointReachable()); | 222 DCHECK(!IsEndpointReachable()); |
218 | 223 |
219 // TODO(zea): if the network is offline, don't attempt to connect. | 224 // TODO(zea): if the network is offline, don't attempt to connect. |
220 // See crbug.com/396687 | 225 // See crbug.com/396687 |
221 | 226 |
222 // Network changes get special treatment as they can trigger a one-off canary | 227 // Network changes get special treatment as they can trigger a one-off canary |
223 // request that bypasses backoff (but does nothing if a connection is in | 228 // request that bypasses backoff (but does nothing if a connection is in |
224 // progress). Other connection reset events can be ignored as a connection | 229 // progress). Other connection reset events can be ignored as a connection |
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
595 return; | 600 return; |
596 | 601 |
597 gcm_network_session_->http_auth_cache()->UpdateAllFrom( | 602 gcm_network_session_->http_auth_cache()->UpdateAllFrom( |
598 *http_network_session_->http_auth_cache()); | 603 *http_network_session_->http_auth_cache()); |
599 | 604 |
600 if (!http_network_session_->IsQuicEnabled()) | 605 if (!http_network_session_->IsQuicEnabled()) |
601 gcm_network_session_->DisableQuic(); | 606 gcm_network_session_->DisableQuic(); |
602 } | 607 } |
603 | 608 |
604 } // namespace gcm | 609 } // namespace gcm |
OLD | NEW |