summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync/about_sync_util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/sync/about_sync_util.cc')
-rw-r--r--chrome/browser/sync/about_sync_util.cc51
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());