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 "components/gcm_driver/gcm_client_impl.h" | 5 #include "components/gcm_driver/gcm_client_impl.h" |
6 | 6 |
| 7 #include <stddef.h> |
| 8 |
7 #include "base/bind.h" | 9 #include "base/bind.h" |
8 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
9 #include "base/location.h" | 11 #include "base/location.h" |
10 #include "base/logging.h" | 12 #include "base/logging.h" |
11 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/scoped_ptr.h" |
12 #include "base/metrics/histogram_macros.h" | 14 #include "base/metrics/histogram_macros.h" |
13 #include "base/sequenced_task_runner.h" | 15 #include "base/sequenced_task_runner.h" |
14 #include "base/single_thread_task_runner.h" | 16 #include "base/single_thread_task_runner.h" |
15 #include "base/stl_util.h" | 17 #include "base/stl_util.h" |
16 #include "base/strings/string_number_conversions.h" | 18 #include "base/strings/string_number_conversions.h" |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 | 77 |
76 const char kGCMScope[] = "GCM"; | 78 const char kGCMScope[] = "GCM"; |
77 const int kMaxRegistrationRetries = 5; | 79 const int kMaxRegistrationRetries = 5; |
78 const int kMaxUnregistrationRetries = 5; | 80 const int kMaxUnregistrationRetries = 5; |
79 const char kMessageTypeDataMessage[] = "gcm"; | 81 const char kMessageTypeDataMessage[] = "gcm"; |
80 const char kMessageTypeDeletedMessagesKey[] = "deleted_messages"; | 82 const char kMessageTypeDeletedMessagesKey[] = "deleted_messages"; |
81 const char kMessageTypeKey[] = "message_type"; | 83 const char kMessageTypeKey[] = "message_type"; |
82 const char kMessageTypeSendErrorKey[] = "send_error"; | 84 const char kMessageTypeSendErrorKey[] = "send_error"; |
83 const char kSendErrorMessageIdKey[] = "google.message_id"; | 85 const char kSendErrorMessageIdKey[] = "google.message_id"; |
84 const char kSendMessageFromValue[] = "gcm@chrome.com"; | 86 const char kSendMessageFromValue[] = "gcm@chrome.com"; |
85 const int64 kDefaultUserSerialNumber = 0LL; | 87 const int64_t kDefaultUserSerialNumber = 0LL; |
86 const int kDestroyGCMStoreDelayMS = 5 * 60 * 1000; // 5 minutes. | 88 const int kDestroyGCMStoreDelayMS = 5 * 60 * 1000; // 5 minutes. |
87 | 89 |
88 GCMClient::Result ToGCMClientResult(MCSClient::MessageSendStatus status) { | 90 GCMClient::Result ToGCMClientResult(MCSClient::MessageSendStatus status) { |
89 switch (status) { | 91 switch (status) { |
90 case MCSClient::QUEUED: | 92 case MCSClient::QUEUED: |
91 return GCMClient::SUCCESS; | 93 return GCMClient::SUCCESS; |
92 case MCSClient::QUEUE_SIZE_LIMIT_REACHED: | 94 case MCSClient::QUEUE_SIZE_LIMIT_REACHED: |
93 return GCMClient::NETWORK_ERROR; | 95 return GCMClient::NETWORK_ERROR; |
94 case MCSClient::APP_QUEUE_SIZE_LIMIT_REACHED: | 96 case MCSClient::APP_QUEUE_SIZE_LIMIT_REACHED: |
95 return GCMClient::NETWORK_ERROR; | 97 return GCMClient::NETWORK_ERROR; |
(...skipping 1112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1208 case kDataMessageStanzaTag: | 1210 case kDataMessageStanzaTag: |
1209 DVLOG(1) << "A downstream message received. Processing..."; | 1211 DVLOG(1) << "A downstream message received. Processing..."; |
1210 HandleIncomingMessage(message); | 1212 HandleIncomingMessage(message); |
1211 return; | 1213 return; |
1212 default: | 1214 default: |
1213 NOTREACHED() << "Message with unexpected tag received by GCMClient"; | 1215 NOTREACHED() << "Message with unexpected tag received by GCMClient"; |
1214 return; | 1216 return; |
1215 } | 1217 } |
1216 } | 1218 } |
1217 | 1219 |
1218 void GCMClientImpl::OnMessageSentToMCS(int64 user_serial_number, | 1220 void GCMClientImpl::OnMessageSentToMCS(int64_t user_serial_number, |
1219 const std::string& app_id, | 1221 const std::string& app_id, |
1220 const std::string& message_id, | 1222 const std::string& message_id, |
1221 MCSClient::MessageSendStatus status) { | 1223 MCSClient::MessageSendStatus status) { |
1222 DCHECK_EQ(user_serial_number, kDefaultUserSerialNumber); | 1224 DCHECK_EQ(user_serial_number, kDefaultUserSerialNumber); |
1223 DCHECK(delegate_); | 1225 DCHECK(delegate_); |
1224 | 1226 |
1225 // TTL_EXCEEDED is singled out here, because it can happen long time after the | 1227 // TTL_EXCEEDED is singled out here, because it can happen long time after the |
1226 // message was sent. That is why it comes as |OnMessageSendError| event rather | 1228 // message was sent. That is why it comes as |OnMessageSendError| event rather |
1227 // than |OnSendFinished|. SendErrorDetails.additional_data is left empty. | 1229 // than |OnSendFinished|. SendErrorDetails.additional_data is left empty. |
1228 // All other errors will be raised immediately, through asynchronous callback. | 1230 // All other errors will be raised immediately, through asynchronous callback. |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1373 bool GCMClientImpl::HasStandaloneRegisteredApp() const { | 1375 bool GCMClientImpl::HasStandaloneRegisteredApp() const { |
1374 if (registrations_.empty()) | 1376 if (registrations_.empty()) |
1375 return false; | 1377 return false; |
1376 // Note that account mapper is not counted as a standalone app since it is | 1378 // Note that account mapper is not counted as a standalone app since it is |
1377 // automatically started when other app uses GCM. | 1379 // automatically started when other app uses GCM. |
1378 return registrations_.size() > 1 || | 1380 return registrations_.size() > 1 || |
1379 !ExistsGCMRegistrationInMap(registrations_, kGCMAccountMapperAppId); | 1381 !ExistsGCMRegistrationInMap(registrations_, kGCMAccountMapperAppId); |
1380 } | 1382 } |
1381 | 1383 |
1382 } // namespace gcm | 1384 } // namespace gcm |
OLD | NEW |