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 |