| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "google_apis/gcm/engine/gcm_store_impl.h" | 5 #include "google_apis/gcm/engine/gcm_store_impl.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 << status.ToString(); | 159 << status.ToString(); |
| 160 foreground_task_runner_->PostTask(FROM_HERE, base::Bind(callback, result)); | 160 foreground_task_runner_->PostTask(FROM_HERE, base::Bind(callback, result)); |
| 161 return; | 161 return; |
| 162 } | 162 } |
| 163 db_.reset(db); | 163 db_.reset(db); |
| 164 | 164 |
| 165 if (!LoadDeviceCredentials(&result.device_android_id, | 165 if (!LoadDeviceCredentials(&result.device_android_id, |
| 166 &result.device_security_token) || | 166 &result.device_security_token) || |
| 167 !LoadIncomingMessages(&result.incoming_messages) || | 167 !LoadIncomingMessages(&result.incoming_messages) || |
| 168 !LoadOutgoingMessages(&result.outgoing_messages) || | 168 !LoadOutgoingMessages(&result.outgoing_messages) || |
| 169 !LoadNextSerialNumber(&result.next_serial_number) || | 169 !LoadNextSerialNumber( |
| 170 !LoadUserSerialNumberMap(&result.user_serial_numbers)) { | 170 &result.serial_number_mappings.next_serial_number) || |
| 171 !LoadUserSerialNumberMap( |
| 172 &result.serial_number_mappings.user_serial_numbers)) { |
| 171 result.device_android_id = 0; | 173 result.device_android_id = 0; |
| 172 result.device_security_token = 0; | 174 result.device_security_token = 0; |
| 173 result.incoming_messages.clear(); | 175 result.incoming_messages.clear(); |
| 174 STLDeleteContainerPairSecondPointers(result.outgoing_messages.begin(), | 176 STLDeleteContainerPairSecondPointers(result.outgoing_messages.begin(), |
| 175 result.outgoing_messages.end()); | 177 result.outgoing_messages.end()); |
| 176 result.outgoing_messages.clear(); | 178 result.outgoing_messages.clear(); |
| 177 foreground_task_runner_->PostTask(FROM_HERE, base::Bind(callback, result)); | 179 foreground_task_runner_->PostTask(FROM_HERE, base::Bind(callback, result)); |
| 178 return; | 180 return; |
| 179 } | 181 } |
| 180 | 182 |
| 181 // Only record histograms if GCM had already been set up for this device. | 183 // Only record histograms if GCM had already been set up for this device. |
| 182 if (result.device_android_id != 0 && result.device_security_token != 0) { | 184 if (result.device_android_id != 0 && result.device_security_token != 0) { |
| 183 int64 file_size = 0; | 185 int64 file_size = 0; |
| 184 if (base::GetFileSize(path_, &file_size)) { | 186 if (base::GetFileSize(path_, &file_size)) { |
| 185 UMA_HISTOGRAM_COUNTS("GCM.StoreSizeKB", | 187 UMA_HISTOGRAM_COUNTS("GCM.StoreSizeKB", |
| 186 static_cast<int>(file_size / 1024)); | 188 static_cast<int>(file_size / 1024)); |
| 187 } | 189 } |
| 188 UMA_HISTOGRAM_COUNTS("GCM.RestoredOutgoingMessages", | 190 UMA_HISTOGRAM_COUNTS("GCM.RestoredOutgoingMessages", |
| 189 result.outgoing_messages.size()); | 191 result.outgoing_messages.size()); |
| 190 UMA_HISTOGRAM_COUNTS("GCM.RestoredIncomingMessages", | 192 UMA_HISTOGRAM_COUNTS("GCM.RestoredIncomingMessages", |
| 191 result.incoming_messages.size()); | 193 result.incoming_messages.size()); |
| 192 UMA_HISTOGRAM_COUNTS("GCM.NumUsers", result.user_serial_numbers.size()); | 194 UMA_HISTOGRAM_COUNTS( |
| 195 "GCM.NumUsers", |
| 196 result.serial_number_mappings.user_serial_numbers.size()); |
| 193 } | 197 } |
| 194 | 198 |
| 195 | |
| 196 DVLOG(1) << "Succeeded in loading " << result.incoming_messages.size() | 199 DVLOG(1) << "Succeeded in loading " << result.incoming_messages.size() |
| 197 << " unacknowledged incoming messages and " | 200 << " unacknowledged incoming messages and " |
| 198 << result.outgoing_messages.size() | 201 << result.outgoing_messages.size() |
| 199 << " unacknowledged outgoing messages."; | 202 << " unacknowledged outgoing messages."; |
| 200 result.success = true; | 203 result.success = true; |
| 201 foreground_task_runner_->PostTask(FROM_HERE, base::Bind(callback, result)); | 204 foreground_task_runner_->PostTask(FROM_HERE, base::Bind(callback, result)); |
| 202 return; | 205 return; |
| 203 } | 206 } |
| 204 | 207 |
| 205 void GCMStoreImpl::Backend::Destroy(const UpdateCallback& callback) { | 208 void GCMStoreImpl::Backend::Destroy(const UpdateCallback& callback) { |
| (...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 789 removed_message_counts.begin(); | 792 removed_message_counts.begin(); |
| 790 iter != removed_message_counts.end(); ++iter) { | 793 iter != removed_message_counts.end(); ++iter) { |
| 791 DCHECK_NE(app_message_counts_.count(iter->first), 0U); | 794 DCHECK_NE(app_message_counts_.count(iter->first), 0U); |
| 792 app_message_counts_[iter->first] -= iter->second; | 795 app_message_counts_[iter->first] -= iter->second; |
| 793 DCHECK_GE(app_message_counts_[iter->first], 0); | 796 DCHECK_GE(app_message_counts_[iter->first], 0); |
| 794 } | 797 } |
| 795 callback.Run(true); | 798 callback.Run(true); |
| 796 } | 799 } |
| 797 | 800 |
| 798 } // namespace gcm | 801 } // namespace gcm |
| OLD | NEW |