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

Side by Side Diff: chrome/browser/sync/test/integration/quiesce_status_change_checker.cc

Issue 2657673004: Add shutdown notification and service refs to SyncServiceObserver. (Closed)
Patch Set: Chromeos fix 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 "chrome/browser/sync/test/integration/quiesce_status_change_checker.h" 5 #include "chrome/browser/sync/test/integration/quiesce_status_change_checker.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/format_macros.h" 9 #include "base/format_macros.h"
10 #include "base/scoped_observer.h" 10 #include "base/scoped_observer.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 // 72 //
73 // See the comments in UpdatedProgressMarkerChecker for more details. 73 // See the comments in UpdatedProgressMarkerChecker for more details.
74 // 74 //
75 // The long-term plan is to deprecate this hack by replacing all its usees with 75 // The long-term plan is to deprecate this hack by replacing all its usees with
76 // more reliable status checkers. 76 // more reliable status checkers.
77 class ProgressMarkerWatcher : public syncer::SyncServiceObserver { 77 class ProgressMarkerWatcher : public syncer::SyncServiceObserver {
78 public: 78 public:
79 ProgressMarkerWatcher(browser_sync::ProfileSyncService* service, 79 ProgressMarkerWatcher(browser_sync::ProfileSyncService* service,
80 QuiesceStatusChangeChecker* quiesce_checker); 80 QuiesceStatusChangeChecker* quiesce_checker);
81 ~ProgressMarkerWatcher() override; 81 ~ProgressMarkerWatcher() override;
82 void OnStateChanged() override; 82 void OnStateChanged(syncer::SyncService* sync) override;
83 83
84 bool HasLatestProgressMarkers(); 84 bool HasLatestProgressMarkers();
85 bool IsSyncDisabled(); 85 bool IsSyncDisabled();
86 86
87 private: 87 private:
88 void UpdateHasLatestProgressMarkers(); 88 void UpdateHasLatestProgressMarkers();
89 89
90 browser_sync::ProfileSyncService* service_; 90 browser_sync::ProfileSyncService* service_;
91 QuiesceStatusChangeChecker* quiesce_checker_; 91 QuiesceStatusChangeChecker* quiesce_checker_;
92 ScopedObserver<browser_sync::ProfileSyncService, ProgressMarkerWatcher> 92 ScopedObserver<browser_sync::ProfileSyncService, ProgressMarkerWatcher>
93 scoped_observer_; 93 scoped_observer_;
94 bool probably_has_latest_progress_markers_; 94 bool probably_has_latest_progress_markers_;
95 }; 95 };
96 96
97 ProgressMarkerWatcher::ProgressMarkerWatcher( 97 ProgressMarkerWatcher::ProgressMarkerWatcher(
98 browser_sync::ProfileSyncService* service, 98 browser_sync::ProfileSyncService* service,
99 QuiesceStatusChangeChecker* quiesce_checker) 99 QuiesceStatusChangeChecker* quiesce_checker)
100 : service_(service), 100 : service_(service),
101 quiesce_checker_(quiesce_checker), 101 quiesce_checker_(quiesce_checker),
102 scoped_observer_(this), 102 scoped_observer_(this),
103 probably_has_latest_progress_markers_(false) { 103 probably_has_latest_progress_markers_(false) {
104 scoped_observer_.Add(service); 104 scoped_observer_.Add(service);
105 UpdateHasLatestProgressMarkers(); 105 UpdateHasLatestProgressMarkers();
106 } 106 }
107 107
108 ProgressMarkerWatcher::~ProgressMarkerWatcher() { } 108 ProgressMarkerWatcher::~ProgressMarkerWatcher() { }
109 109
110 void ProgressMarkerWatcher::OnStateChanged() { 110 void ProgressMarkerWatcher::OnStateChanged(syncer::SyncService* sync) {
111 UpdateHasLatestProgressMarkers(); 111 UpdateHasLatestProgressMarkers();
112 quiesce_checker_->OnServiceStateChanged(service_); 112 quiesce_checker_->OnServiceStateChanged(service_);
113 } 113 }
114 114
115 void ProgressMarkerWatcher::UpdateHasLatestProgressMarkers() { 115 void ProgressMarkerWatcher::UpdateHasLatestProgressMarkers() {
116 if (IsSyncDisabled()) { 116 if (IsSyncDisabled()) {
117 probably_has_latest_progress_markers_ = false; 117 probably_has_latest_progress_markers_ = false;
118 return; 118 return;
119 } 119 }
120 120
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 208
209 std::string QuiesceStatusChangeChecker::GetDebugMessage() const { 209 std::string QuiesceStatusChangeChecker::GetDebugMessage() const {
210 return base::StringPrintf("Waiting for quiescence of %" PRIuS " clients", 210 return base::StringPrintf("Waiting for quiescence of %" PRIuS " clients",
211 services_.size()); 211 services_.size());
212 } 212 }
213 213
214 void QuiesceStatusChangeChecker::OnServiceStateChanged( 214 void QuiesceStatusChangeChecker::OnServiceStateChanged(
215 browser_sync::ProfileSyncService* service) { 215 browser_sync::ProfileSyncService* service) {
216 CheckExitCondition(); 216 CheckExitCondition();
217 } 217 }
OLDNEW
« no previous file with comments | « chrome/browser/sync/test/integration/p2p_sync_refresher.cc ('k') | chrome/browser/sync_file_system/sync_file_system_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698