OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "sync/engine/download.h" | 5 #include "sync/engine/download.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "sync/engine/process_updates_util.h" | 10 #include "sync/engine/process_updates_util.h" |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 proto_request_types, | 227 proto_request_types, |
228 update_handler_map, | 228 update_handler_map, |
229 get_updates); | 229 get_updates); |
230 | 230 |
231 // Set legacy GetUpdatesMessage.GetUpdatesCallerInfo information. | 231 // Set legacy GetUpdatesMessage.GetUpdatesCallerInfo information. |
232 get_updates->mutable_caller_info()->set_source( | 232 get_updates->mutable_caller_info()->set_source( |
233 nudge_tracker.updates_source()); | 233 nudge_tracker.updates_source()); |
234 | 234 |
235 // Set the new and improved version of source, too. | 235 // Set the new and improved version of source, too. |
236 get_updates->set_get_updates_origin(sync_pb::SyncEnums::GU_TRIGGER); | 236 get_updates->set_get_updates_origin(sync_pb::SyncEnums::GU_TRIGGER); |
| 237 get_updates->set_is_retry( |
| 238 nudge_tracker.IsRetryRequired(base::TimeTicks::Now())); |
237 | 239 |
238 // Fill in the notification hints. | 240 // Fill in the notification hints. |
239 for (int i = 0; i < get_updates->from_progress_marker_size(); ++i) { | 241 for (int i = 0; i < get_updates->from_progress_marker_size(); ++i) { |
240 sync_pb::DataTypeProgressMarker* progress_marker = | 242 sync_pb::DataTypeProgressMarker* progress_marker = |
241 get_updates->mutable_from_progress_marker(i); | 243 get_updates->mutable_from_progress_marker(i); |
242 ModelType type = GetModelTypeFromSpecificsFieldNumber( | 244 ModelType type = GetModelTypeFromSpecificsFieldNumber( |
243 progress_marker->data_type_id()); | 245 progress_marker->data_type_id()); |
244 | 246 |
245 DCHECK(!nudge_tracker.IsTypeThrottled(type)) | 247 DCHECK(!nudge_tracker.IsTypeThrottled(type)) |
246 << "Throttled types should have been removed from the request_types."; | 248 << "Throttled types should have been removed from the request_types."; |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 get_updates); | 326 get_updates); |
325 | 327 |
326 // Set legacy GetUpdatesMessage.GetUpdatesCallerInfo information. | 328 // Set legacy GetUpdatesMessage.GetUpdatesCallerInfo information. |
327 get_updates->mutable_caller_info()->set_source( | 329 get_updates->mutable_caller_info()->set_source( |
328 sync_pb::GetUpdatesCallerInfo::PERIODIC); | 330 sync_pb::GetUpdatesCallerInfo::PERIODIC); |
329 | 331 |
330 // Set the new and improved version of source, too. | 332 // Set the new and improved version of source, too. |
331 get_updates->set_get_updates_origin(sync_pb::SyncEnums::PERIODIC); | 333 get_updates->set_get_updates_origin(sync_pb::SyncEnums::PERIODIC); |
332 } | 334 } |
333 | 335 |
| 336 void BuildDownloadUpdatesForRetry( |
| 337 SyncSession* session, |
| 338 bool create_mobile_bookmarks_folder, |
| 339 ModelTypeSet request_types, |
| 340 sync_pb::ClientToServerMessage* client_to_server_message) { |
| 341 DVLOG(1) << "Retrying for types " |
| 342 << ModelTypeSetToString(request_types); |
| 343 |
| 344 InitDownloadUpdatesContext( |
| 345 session, |
| 346 create_mobile_bookmarks_folder, |
| 347 client_to_server_message); |
| 348 BuildDownloadUpdatesForRetryImpl( |
| 349 Intersection(request_types, ProtocolTypes()), |
| 350 session->context()->update_handler_map(), |
| 351 client_to_server_message->mutable_get_updates()); |
| 352 } |
| 353 |
| 354 void BuildDownloadUpdatesForRetryImpl( |
| 355 ModelTypeSet proto_request_types, |
| 356 UpdateHandlerMap* update_handler_map, |
| 357 sync_pb::GetUpdatesMessage* get_updates) { |
| 358 DCHECK(!proto_request_types.Empty()); |
| 359 |
| 360 InitDownloadUpdatesProgress( |
| 361 proto_request_types, |
| 362 update_handler_map, |
| 363 get_updates); |
| 364 |
| 365 // Set legacy GetUpdatesMessage.GetUpdatesCallerInfo information. |
| 366 get_updates->mutable_caller_info()->set_source( |
| 367 sync_pb::GetUpdatesCallerInfo::RETRY); |
| 368 |
| 369 // Set the new and improved version of source, too. |
| 370 get_updates->set_get_updates_origin(sync_pb::SyncEnums::RETRY); |
| 371 get_updates->set_is_retry(true); |
| 372 } |
| 373 |
334 SyncerError ExecuteDownloadUpdates( | 374 SyncerError ExecuteDownloadUpdates( |
335 ModelTypeSet request_types, | 375 ModelTypeSet request_types, |
336 SyncSession* session, | 376 SyncSession* session, |
337 sync_pb::ClientToServerMessage* msg) { | 377 sync_pb::ClientToServerMessage* msg) { |
338 sync_pb::ClientToServerResponse update_response; | 378 sync_pb::ClientToServerResponse update_response; |
339 StatusController* status = session->mutable_status_controller(); | 379 StatusController* status = session->mutable_status_controller(); |
340 bool need_encryption_key = ShouldRequestEncryptionKey(session->context()); | 380 bool need_encryption_key = ShouldRequestEncryptionKey(session->context()); |
341 | 381 |
342 if (session->context()->debug_info_getter()) { | 382 if (session->context()->debug_info_getter()) { |
343 sync_pb::DebugInfo* debug_info = msg->mutable_debug_info(); | 383 sync_pb::DebugInfo* debug_info = msg->mutable_debug_info(); |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
417 void CopyClientDebugInfo( | 457 void CopyClientDebugInfo( |
418 sessions::DebugInfoGetter* debug_info_getter, | 458 sessions::DebugInfoGetter* debug_info_getter, |
419 sync_pb::DebugInfo* debug_info) { | 459 sync_pb::DebugInfo* debug_info) { |
420 DVLOG(1) << "Copying client debug info to send."; | 460 DVLOG(1) << "Copying client debug info to send."; |
421 debug_info_getter->GetDebugInfo(debug_info); | 461 debug_info_getter->GetDebugInfo(debug_info); |
422 } | 462 } |
423 | 463 |
424 } // namespace download | 464 } // namespace download |
425 | 465 |
426 } // namespace syncer | 466 } // namespace syncer |
OLD | NEW |