Chromium Code Reviews| Index: sync/engine/net/server_connection_manager.cc |
| diff --git a/sync/engine/net/server_connection_manager.cc b/sync/engine/net/server_connection_manager.cc |
| index 75c5e5394ab05962ec56a7e047f9ad1ebbf475d7..9f3d0268467c66d2719a0931ebc2963e7095ba74 100644 |
| --- a/sync/engine/net/server_connection_manager.cc |
| +++ b/sync/engine/net/server_connection_manager.cc |
| @@ -11,6 +11,7 @@ |
| #include <vector> |
| #include "base/command_line.h" |
| +#include "base/metrics/histogram.h" |
| #include "build/build_config.h" |
| #include "googleurl/src/gurl.h" |
| #include "net/base/net_errors.h" |
| @@ -213,6 +214,17 @@ void ServerConnectionManager::OnConnectionDestroyed(Connection* connection) { |
| } |
| void ServerConnectionManager::OnInvalidationCredentialsRejected() { |
| + if (!auth_token_time_.is_null()) { |
| + base::TimeDelta age = base::Time::Now() - auth_token_time_; |
| + if (age < base::TimeDelta::FromHours(1)) { |
| + UMA_HISTOGRAM_CUSTOM_TIMES("Sync.InvalidationRejectionAuthAgeShort", |
|
tim (not reviewing)
2013/05/03 00:46:43
nit - might be nice to group auth related things i
Nicolas Zea
2013/05/03 01:31:41
Done.
|
| + age, |
| + base::TimeDelta::FromSeconds(1), |
| + base::TimeDelta::FromHours(1), |
| + 50); |
| + } |
| + UMA_HISTOGRAM_COUNTS("Sync.InvalidationRejectionAuthAgeLong", age.InDays()); |
| + } |
| InvalidateAndClearAuthToken(); |
| SetServerStatus(HttpResponse::SYNC_AUTH_ERROR); |
| } |
| @@ -223,6 +235,7 @@ void ServerConnectionManager::InvalidateAndClearAuthToken() { |
| if (!auth_token_.empty()) { |
| previously_invalidated_token.assign(auth_token_); |
| auth_token_ = std::string(); |
| + auth_token_time_ = base::Time(); |
| } |
| } |
| @@ -273,8 +286,21 @@ bool ServerConnectionManager::PostBufferToPath(PostBufferParams* params, |
| bool ok = post.get()->Init( |
| path.c_str(), auth_token, params->buffer_in, ¶ms->response); |
| - if (params->response.server_status == HttpResponse::SYNC_AUTH_ERROR) |
| + if (params->response.server_status == HttpResponse::SYNC_AUTH_ERROR) { |
| + if (!auth_token_time_.is_null()) { |
| + base::TimeDelta age = base::Time::Now() - auth_token_time_; |
| + if (age < base::TimeDelta::FromHours(1)) { |
| + UMA_HISTOGRAM_CUSTOM_TIMES("Sync.ServerRejectionAuthAgeShort", |
| + age, |
| + base::TimeDelta::FromSeconds(1), |
| + base::TimeDelta::FromHours(1), |
| + 50); |
| + } |
| + UMA_HISTOGRAM_COUNTS("Sync.ServerRejectionAuthAgeLong", |
|
tim (not reviewing)
2013/05/03 00:46:43
So no breakdown between 1 hour and 24 hours? I gue
Nicolas Zea
2013/05/03 01:31:41
Well, this is going to cover those, they'll simply
|
| + age.InDays()); |
| + } |
| InvalidateAndClearAuthToken(); |
| + } |
| if (!ok || net::HTTP_OK != params->response.response_code) |
| return false; |