diff options
author | haitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-07 19:53:06 +0000 |
---|---|---|
committer | haitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-07 19:53:06 +0000 |
commit | 14a496ac45e7f3904a1ff1ff2f2cd605be72c6e8 (patch) | |
tree | a919a426696410daf5adb4bd65dc3d919682d7b4 /chrome/browser/sync/about_sync_util.cc | |
parent | d89670fe1ca11c633f82371002b18db044f1a03c (diff) | |
download | chromium_src-14a496ac45e7f3904a1ff1ff2f2cd605be72c6e8.zip chromium_src-14a496ac45e7f3904a1ff1ff2f2cd605be72c6e8.tar.gz chromium_src-14a496ac45e7f3904a1ff1ff2f2cd605be72c6e8.tar.bz2 |
Reveal information about sync server connection and token on about tab.
The information includes server connection status, token
request/response time, error message and next scheduled request time
if in exponential backoff state.
BUG=309103,311414
NOTRY=true
Review URL: https://codereview.chromium.org/60703002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233665 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync/about_sync_util.cc')
-rw-r--r-- | chrome/browser/sync/about_sync_util.cc | 51 |
1 files changed, 49 insertions, 2 deletions
diff --git a/chrome/browser/sync/about_sync_util.cc b/chrome/browser/sync/about_sync_util.cc index c4a75ab..7e3205a 100644 --- a/chrome/browser/sync/about_sync_util.cc +++ b/chrome/browser/sync/about_sync_util.cc @@ -7,6 +7,7 @@ #include <string> #include "base/strings/string16.h" +#include "base/strings/stringprintf.h" #include "base/values.h" #include "chrome/browser/signin/signin_manager.h" #include "chrome/browser/sync/profile_sync_service.h" @@ -155,6 +156,34 @@ std::string GetTimeStr(base::Time time, const std::string& default_msg) { return time_str; } +std::string GetConnectionStatus( + const ProfileSyncService::SyncTokenStatus& status) { + std::string message; + switch (status.connection_status) { + case syncer::CONNECTION_NOT_ATTEMPTED: + base::StringAppendF(&message, "not attempted"); + break; + case syncer::CONNECTION_OK: + base::StringAppendF( + &message, "OK since %s", + GetTimeStr(status.connection_status_update_time, "n/a").c_str()); + break; + case syncer::CONNECTION_AUTH_ERROR: + base::StringAppendF( + &message, "auth error since %s", + GetTimeStr(status.connection_status_update_time, "n/a").c_str()); + break; + case syncer::CONNECTION_SERVER_ERROR: + base::StringAppendF( + &message, "server error since %s", + GetTimeStr(status.connection_status_update_time, "n/a").c_str()); + break; + default: + NOTREACHED(); + } + return message; +} + } // namespace namespace sync_ui_util { @@ -182,9 +211,16 @@ scoped_ptr<DictionaryValue> ConstructAboutInformation( StringSyncStat sync_id(section_credentials, "Sync Client ID"); StringSyncStat invalidator_id(section_credentials, "Invalidator Client ID"); StringSyncStat username(section_credentials, "Username"); - BoolSyncStat is_token_available(section_credentials, "Sync Token Available"); + StringSyncStat request_token_time(section_credentials, "Requested Token"); + StringSyncStat receive_token_time(section_credentials, "Received Token"); + StringSyncStat token_request_status(section_credentials, + "Token Request Status"); + StringSyncStat next_token_request(section_credentials, + "Next Token Request"); ListValue* section_local = AddSection(stats_list, "Local State"); + StringSyncStat server_connection(section_local, + "Server Connection"); StringSyncStat last_synced(section_local, "Last Synced"); BoolSyncStat is_setup_complete(section_local, "Sync First-Time Setup Complete"); @@ -296,7 +332,18 @@ scoped_ptr<DictionaryValue> ConstructAboutInformation( invalidator_id.SetValue(full_status.invalidator_client_id); if (service->signin()) username.SetValue(service->signin()->GetAuthenticatedUsername()); - is_token_available.SetValue(service->IsOAuthRefreshTokenAvailable()); + + const ProfileSyncService::SyncTokenStatus& token_status = + service->GetSyncTokenStatus(); + server_connection.SetValue(GetConnectionStatus(token_status)); + request_token_time.SetValue(GetTimeStr(token_status.token_request_time, + "n/a")); + receive_token_time.SetValue(GetTimeStr(token_status.token_receive_time, + "n/a")); + std::string err = token_status.last_get_token_error.error_message(); + token_request_status.SetValue(err.empty() ? "OK" : err); + next_token_request.SetValue( + GetTimeStr(token_status.next_token_request_time, "not scheduled")); last_synced.SetValue(service->GetLastSyncedTimeString()); is_setup_complete.SetValue(service->HasSyncSetupCompleted()); |