Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Side by Side Diff: components/gcm_driver/gcm_client_impl.cc

Issue 2675293003: Push API: Don't wait for network when unsubscribing (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 943 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 954
955 void GCMClientImpl::OnRegisterCompleted( 955 void GCMClientImpl::OnRegisterCompleted(
956 const linked_ptr<RegistrationInfo>& registration_info, 956 const linked_ptr<RegistrationInfo>& registration_info,
957 RegistrationRequest::Status status, 957 RegistrationRequest::Status status,
958 const std::string& registration_id) { 958 const std::string& registration_id) {
959 DCHECK(delegate_); 959 DCHECK(delegate_);
960 960
961 Result result; 961 Result result;
962 PendingRegistrationRequests::const_iterator iter = 962 PendingRegistrationRequests::const_iterator iter =
963 pending_registration_requests_.find(registration_info); 963 pending_registration_requests_.find(registration_info);
964 if (iter == pending_registration_requests_.end()) 964 if (iter == pending_registration_requests_.end()) {
965 result = UNKNOWN_ERROR; 965 result = UNKNOWN_ERROR;
966 else if (status == RegistrationRequest::INVALID_SENDER) 966 } else if (status == RegistrationRequest::INVALID_SENDER) {
967 result = INVALID_PARAMETER; 967 result = INVALID_PARAMETER;
968 else if (registration_id.empty()) 968 } else if (registration_id.empty()) {
969 // All other errors are currently treated as SERVER_ERROR (including cases
970 // where all retries fail because the device is offline, which might be
971 // expected to result in a NETWORK_ERROR). If this is later changed, update
972 // FakeGCMProfileService's offline simulation to match.
Peter Beverloo 2017/02/07 18:11:08 Here and later, can we shorten and generalize w/ t
johnme 2017/02/08 14:14:36 Done (no longer needs to reference FakeGCMProfileS
969 result = SERVER_ERROR; 973 result = SERVER_ERROR;
970 else 974 } else {
971 result = SUCCESS; 975 result = SUCCESS;
976 }
972 977
973 if (result == SUCCESS) { 978 if (result == SUCCESS) {
974 // Cache it. 979 // Cache it.
975 // Note that the existing cached record has to be removed first because 980 // Note that the existing cached record has to be removed first because
976 // otherwise the key value in registrations_ will not be updated. For GCM 981 // otherwise the key value in registrations_ will not be updated. For GCM
977 // registrations, the key consists of pair of app_id and sender_ids though 982 // registrations, the key consists of pair of app_id and sender_ids though
978 // only app_id is used in the comparison. 983 // only app_id is used in the comparison.
979 registrations_.erase(registration_info); 984 registrations_.erase(registration_info);
980 registrations_[registration_info] = registration_id; 985 registrations_[registration_info] = registration_id;
981 986
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
1107 1112
1108 Result result; 1113 Result result;
1109 switch (status) { 1114 switch (status) {
1110 case UnregistrationRequest::SUCCESS: 1115 case UnregistrationRequest::SUCCESS:
1111 result = SUCCESS; 1116 result = SUCCESS;
1112 break; 1117 break;
1113 case UnregistrationRequest::INVALID_PARAMETERS: 1118 case UnregistrationRequest::INVALID_PARAMETERS:
1114 result = INVALID_PARAMETER; 1119 result = INVALID_PARAMETER;
1115 break; 1120 break;
1116 default: 1121 default:
1117 // All other errors are treated as SERVER_ERROR. 1122 // All other errors are currently treated as SERVER_ERROR (including cases
1123 // where all retries fail because the device is offline, which might be
1124 // expected to result in a NETWORK_ERROR). If this is later changed,
1125 // update FakeGCMProfileService's offline simulation to match.
1118 result = SERVER_ERROR; 1126 result = SERVER_ERROR;
1119 break; 1127 break;
1120 } 1128 }
1121 delegate_->OnUnregisterFinished(registration_info, result); 1129 delegate_->OnUnregisterFinished(registration_info, result);
1122 1130
1123 pending_unregistration_requests_.erase(registration_info); 1131 pending_unregistration_requests_.erase(registration_info);
1124 } 1132 }
1125 1133
1126 void GCMClientImpl::OnGCMStoreDestroyed(bool success) { 1134 void GCMClientImpl::OnGCMStoreDestroyed(bool success) {
1127 DLOG_IF(ERROR, !success) << "GCM store failed to be destroyed!"; 1135 DLOG_IF(ERROR, !success) << "GCM store failed to be destroyed!";
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
1465 bool GCMClientImpl::HasStandaloneRegisteredApp() const { 1473 bool GCMClientImpl::HasStandaloneRegisteredApp() const {
1466 if (registrations_.empty()) 1474 if (registrations_.empty())
1467 return false; 1475 return false;
1468 // Note that account mapper is not counted as a standalone app since it is 1476 // Note that account mapper is not counted as a standalone app since it is
1469 // automatically started when other app uses GCM. 1477 // automatically started when other app uses GCM.
1470 return registrations_.size() > 1 || 1478 return registrations_.size() > 1 ||
1471 !ExistsGCMRegistrationInMap(registrations_, kGCMAccountMapperAppId); 1479 !ExistsGCMRegistrationInMap(registrations_, kGCMAccountMapperAppId);
1472 } 1480 }
1473 1481
1474 } // namespace gcm 1482 } // namespace gcm
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698