| Index: sync/engine/download.cc
|
| diff --git a/sync/engine/download.cc b/sync/engine/download.cc
|
| index 53d36f5a4f4226c7e9c2f1712dd6a19ec0666672..7d00bebee7e38d7be7a713dfae3e5f026268a0e2 100644
|
| --- a/sync/engine/download.cc
|
| +++ b/sync/engine/download.cc
|
| @@ -94,11 +94,6 @@ void InitDownloadUpdatesContext(
|
| // (e.g. Bookmark URLs but not their containing folders).
|
| get_updates->set_fetch_folders(true);
|
|
|
| - sync_pb::DebugInfo* debug_info = message->mutable_debug_info();
|
| - AppendClientDebugInfoIfNeeded(session->context()->debug_info_getter(),
|
| - session->mutable_status_controller(),
|
| - debug_info);
|
| -
|
| get_updates->set_create_mobile_bookmarks_folder(
|
| create_mobile_bookmarks_folder);
|
| bool need_encryption_key = ShouldRequestEncryptionKey(session->context());
|
| @@ -344,6 +339,11 @@ SyncerError ExecuteDownloadUpdates(
|
| StatusController* status = session->mutable_status_controller();
|
| bool need_encryption_key = ShouldRequestEncryptionKey(session->context());
|
|
|
| + if (session->context()->debug_info_getter()) {
|
| + sync_pb::DebugInfo* debug_info = msg->mutable_debug_info();
|
| + CopyClientDebugInfo(session->context()->debug_info_getter(), debug_info);
|
| + }
|
| +
|
| SyncerError result = SyncerProtoUtil::PostClientToServerMessage(
|
| msg,
|
| &update_response,
|
| @@ -366,6 +366,12 @@ SyncerError ExecuteDownloadUpdates(
|
| << update_response.get_updates().changes_remaining()
|
| << " updates left on server.";
|
|
|
| + if (session->context()->debug_info_getter()) {
|
| + // Clear debug info now that we have successfully sent it to the server.
|
| + DVLOG(1) << "Clearing client debug info.";
|
| + session->context()->debug_info_getter()->ClearDebugInfo();
|
| + }
|
| +
|
| if (need_encryption_key ||
|
| update_response.get_updates().encryption_keys_size() > 0) {
|
| syncable::Directory* dir = session->context()->directory();
|
| @@ -392,20 +398,11 @@ SyncerError ExecuteDownloadUpdates(
|
| }
|
| }
|
|
|
| -void AppendClientDebugInfoIfNeeded(
|
| +void CopyClientDebugInfo(
|
| sessions::DebugInfoGetter* debug_info_getter,
|
| - StatusController* status,
|
| sync_pb::DebugInfo* debug_info) {
|
| - // We want to send the debug info only once per sync cycle. Check if it has
|
| - // already been sent.
|
| - if (!status->debug_info_sent()) {
|
| - DVLOG(1) << "Sending client debug info ...";
|
| - // Could be null in some unit tests.
|
| - if (debug_info_getter) {
|
| - debug_info_getter->GetAndClearDebugInfo(debug_info);
|
| - }
|
| - status->set_debug_info_sent();
|
| - }
|
| + DVLOG(1) << "Copying client debug info to send.";
|
| + debug_info_getter->GetDebugInfo(debug_info);
|
| }
|
|
|
| } // namespace download
|
|
|