| OLD | NEW | 
|    1 // Copyright 2015 The Chromium Authors. All rights reserved. |    1 // Copyright 2015 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 "components/sync/device_info/device_info_sync_bridge.h" |    5 #include "components/sync/device_info/device_info_sync_bridge.h" | 
|    6  |    6  | 
|    7 #include <stdint.h> |    7 #include <stdint.h> | 
|    8  |    8  | 
|    9 #include <algorithm> |    9 #include <algorithm> | 
|   10 #include <set> |   10 #include <set> | 
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  135   std::string local_guid = local_info->guid(); |  135   std::string local_guid = local_info->guid(); | 
|  136   std::unique_ptr<WriteBatch> batch = store_->CreateWriteBatch(); |  136   std::unique_ptr<WriteBatch> batch = store_->CreateWriteBatch(); | 
|  137   for (const auto& kv : entity_data_map) { |  137   for (const auto& kv : entity_data_map) { | 
|  138     const DeviceInfoSpecifics& specifics = |  138     const DeviceInfoSpecifics& specifics = | 
|  139         kv.second.value().specifics.device_info(); |  139         kv.second.value().specifics.device_info(); | 
|  140     DCHECK_EQ(kv.first, specifics.cache_guid()); |  140     DCHECK_EQ(kv.first, specifics.cache_guid()); | 
|  141     if (specifics.cache_guid() == local_guid) { |  141     if (specifics.cache_guid() == local_guid) { | 
|  142       // Don't Put local data if it's the same as the remote copy. |  142       // Don't Put local data if it's the same as the remote copy. | 
|  143       if (local_info->Equals(*SpecificsToModel(specifics))) { |  143       if (local_info->Equals(*SpecificsToModel(specifics))) { | 
|  144         local_guids_to_put.erase(local_guid); |  144         local_guids_to_put.erase(local_guid); | 
|  145       } else { |  | 
|  146         // This device is valid right now and this entry is about to be |  | 
|  147         // committed, use this as an opportunity to refresh the timestamp. |  | 
|  148         all_data_[local_guid]->set_last_updated_timestamp( |  | 
|  149             TimeToProtoTime(Time::Now())); |  | 
|  150       } |  145       } | 
|  151     } else { |  146     } else { | 
|  152       // Remote data wins conflicts. |  147       // Remote data wins conflicts. | 
|  153       local_guids_to_put.erase(specifics.cache_guid()); |  148       local_guids_to_put.erase(specifics.cache_guid()); | 
|  154       has_changes = true; |  149       has_changes = true; | 
|  155       StoreSpecifics(base::MakeUnique<DeviceInfoSpecifics>(specifics), |  150       StoreSpecifics(base::MakeUnique<DeviceInfoSpecifics>(specifics), | 
|  156                      batch.get()); |  151                      batch.get()); | 
|  157     } |  152     } | 
|  158   } |  153   } | 
|  159  |  154  | 
| (...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  455 } |  450 } | 
|  456  |  451  | 
|  457 void DeviceInfoSyncBridge::ReportStartupErrorToSync(const std::string& msg) { |  452 void DeviceInfoSyncBridge::ReportStartupErrorToSync(const std::string& msg) { | 
|  458   // TODO(skym): Shouldn't need to log this here, reporting should always log. |  453   // TODO(skym): Shouldn't need to log this here, reporting should always log. | 
|  459   LOG(WARNING) << msg; |  454   LOG(WARNING) << msg; | 
|  460   change_processor()->OnMetadataLoaded( |  455   change_processor()->OnMetadataLoaded( | 
|  461       change_processor()->CreateAndUploadError(FROM_HERE, msg), nullptr); |  456       change_processor()->CreateAndUploadError(FROM_HERE, msg), nullptr); | 
|  462 } |  457 } | 
|  463  |  458  | 
|  464 }  // namespace syncer |  459 }  // namespace syncer | 
| OLD | NEW |