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

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

Issue 2473813002: Notify GCMAppHandlers when the store is reset, so they clear cached IDs (Closed)
Patch Set: Update Cryptauth comment Created 4 years, 1 month 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
« no previous file with comments | « components/gcm_driver/gcm_client.h ('k') | components/gcm_driver/gcm_client_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 794 matching lines...) Expand 10 before | Expand all | Expand 10 after
805 LOG(ERROR) << "Failed to destroy GCM store"; 805 LOG(ERROR) << "Failed to destroy GCM store";
806 RecordResetStoreErrorToUMA(DESTROYING_STORE_FAILED); 806 RecordResetStoreErrorToUMA(DESTROYING_STORE_FAILED);
807 state_ = UNINITIALIZED; 807 state_ = UNINITIALIZED;
808 return; 808 return;
809 } 809 }
810 810
811 state_ = INITIALIZED; 811 state_ = INITIALIZED;
812 } 812 }
813 813
814 void GCMClientImpl::ResetStoreCallback(bool success) { 814 void GCMClientImpl::ResetStoreCallback(bool success) {
815 // Even an incomplete reset may invalidate registrations, and this might be
816 // the only opportunity to notify the delegate. For example a partial reset
817 // that deletes the "CURRENT" file will cause GCMStoreImpl to consider the DB
818 // to no longer exist, in which case the next load will simply create a new
819 // store rather than resetting it.
820 delegate_->OnStoreReset();
821
815 if (!success) { 822 if (!success) {
816 LOG(ERROR) << "Failed to reset GCM store"; 823 LOG(ERROR) << "Failed to reset GCM store";
817 RecordResetStoreErrorToUMA(DESTROYING_STORE_FAILED); 824 RecordResetStoreErrorToUMA(DESTROYING_STORE_FAILED);
818 state_ = UNINITIALIZED; 825 state_ = UNINITIALIZED;
819 return; 826 return;
820 } 827 }
821 828
822 state_ = INITIALIZED; 829 state_ = INITIALIZED;
823 Start(start_mode_); 830 Start(start_mode_);
824 } 831 }
(...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after
1433 bool GCMClientImpl::HasStandaloneRegisteredApp() const { 1440 bool GCMClientImpl::HasStandaloneRegisteredApp() const {
1434 if (registrations_.empty()) 1441 if (registrations_.empty())
1435 return false; 1442 return false;
1436 // Note that account mapper is not counted as a standalone app since it is 1443 // Note that account mapper is not counted as a standalone app since it is
1437 // automatically started when other app uses GCM. 1444 // automatically started when other app uses GCM.
1438 return registrations_.size() > 1 || 1445 return registrations_.size() > 1 ||
1439 !ExistsGCMRegistrationInMap(registrations_, kGCMAccountMapperAppId); 1446 !ExistsGCMRegistrationInMap(registrations_, kGCMAccountMapperAppId);
1440 } 1447 }
1441 1448
1442 } // namespace gcm 1449 } // namespace gcm
OLDNEW
« no previous file with comments | « components/gcm_driver/gcm_client.h ('k') | components/gcm_driver/gcm_client_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698