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 "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 Loading... |
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 Loading... |
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 } |
OLD | NEW |