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

Side by Side Diff: components/invalidation/sync_system_resources.cc

Issue 348503002: Report InvalidatorState correctly from GCMNetworkChannel (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@GCM.ConnectionState
Patch Set: Fix SyncNetworkChannelTest Created 6 years, 6 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/invalidation/sync_system_resources.h" 5 #include "components/invalidation/sync_system_resources.h"
6 6
7 #include <cstdlib> 7 #include <cstdlib>
8 #include <cstring> 8 #include <cstring>
9 #include <string> 9 #include <string>
10 10
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 } 125 }
126 126
127 void SyncInvalidationScheduler::RunPostedTask(invalidation::Closure* task) { 127 void SyncInvalidationScheduler::RunPostedTask(invalidation::Closure* task) {
128 CHECK_EQ(created_on_loop_, base::MessageLoop::current()); 128 CHECK_EQ(created_on_loop_, base::MessageLoop::current());
129 task->Run(); 129 task->Run();
130 posted_tasks_.erase(task); 130 posted_tasks_.erase(task);
131 delete task; 131 delete task;
132 } 132 }
133 133
134 SyncNetworkChannel::SyncNetworkChannel() 134 SyncNetworkChannel::SyncNetworkChannel()
135 : invalidator_state_(DEFAULT_INVALIDATION_ERROR), 135 : last_network_status_(false),
136 received_messages_count_(0) {} 136 received_messages_count_(0) {}
137 137
138 SyncNetworkChannel::~SyncNetworkChannel() { 138 SyncNetworkChannel::~SyncNetworkChannel() {
139 STLDeleteElements(&network_status_receivers_); 139 STLDeleteElements(&network_status_receivers_);
140 } 140 }
141 141
142 void SyncNetworkChannel::SetMessageReceiver( 142 void SyncNetworkChannel::SetMessageReceiver(
143 invalidation::MessageCallback* incoming_receiver) { 143 invalidation::MessageCallback* incoming_receiver) {
144 incoming_receiver_.reset(incoming_receiver); 144 incoming_receiver_.reset(incoming_receiver);
145 } 145 }
146 146
147 void SyncNetworkChannel::AddNetworkStatusReceiver( 147 void SyncNetworkChannel::AddNetworkStatusReceiver(
148 invalidation::NetworkStatusCallback* network_status_receiver) { 148 invalidation::NetworkStatusCallback* network_status_receiver) {
149 network_status_receiver->Run(invalidator_state_ == INVALIDATIONS_ENABLED); 149 network_status_receiver->Run(last_network_status_);
150 network_status_receivers_.push_back(network_status_receiver); 150 network_status_receivers_.push_back(network_status_receiver);
151 } 151 }
152 152
153 void SyncNetworkChannel::SetSystemResources( 153 void SyncNetworkChannel::SetSystemResources(
154 invalidation::SystemResources* resources) { 154 invalidation::SystemResources* resources) {
155 // Do nothing. 155 // Do nothing.
156 } 156 }
157 157
158 void SyncNetworkChannel::AddObserver(Observer* observer) { 158 void SyncNetworkChannel::AddObserver(Observer* observer) {
159 observers_.AddObserver(observer); 159 observers_.AddObserver(observer);
(...skipping 11 matching lines...) Expand all
171 new PushClientChannel(push_client.Pass())); 171 new PushClientChannel(push_client.Pass()));
172 } 172 }
173 173
174 scoped_ptr<SyncNetworkChannel> SyncNetworkChannel::CreateGCMNetworkChannel( 174 scoped_ptr<SyncNetworkChannel> SyncNetworkChannel::CreateGCMNetworkChannel(
175 scoped_refptr<net::URLRequestContextGetter> request_context_getter, 175 scoped_refptr<net::URLRequestContextGetter> request_context_getter,
176 scoped_ptr<GCMNetworkChannelDelegate> delegate) { 176 scoped_ptr<GCMNetworkChannelDelegate> delegate) {
177 return scoped_ptr<SyncNetworkChannel>(new GCMNetworkChannel( 177 return scoped_ptr<SyncNetworkChannel>(new GCMNetworkChannel(
178 request_context_getter, delegate.Pass())); 178 request_context_getter, delegate.Pass()));
179 } 179 }
180 180
181 void SyncNetworkChannel::NotifyStateChange(InvalidatorState invalidator_state) { 181 void SyncNetworkChannel::NotifyNetworkStatusChange(bool online) {
182 // Remember state for future NetworkStatusReceivers. 182 // Remember network state for future NetworkStatusReceivers.
183 invalidator_state_ = invalidator_state; 183 last_network_status_ = online;
184 // Notify NetworkStatusReceivers in cacheinvalidation. 184 // Notify NetworkStatusReceivers in cacheinvalidation.
185 for (NetworkStatusReceiverList::const_iterator it = 185 for (NetworkStatusReceiverList::const_iterator it =
186 network_status_receivers_.begin(); 186 network_status_receivers_.begin();
187 it != network_status_receivers_.end(); ++it) { 187 it != network_status_receivers_.end(); ++it) {
188 (*it)->Run(invalidator_state_ == INVALIDATIONS_ENABLED); 188 (*it)->Run(online);
189 } 189 }
190 // Notify observers. 190 }
191
192 void SyncNetworkChannel::NotifyChannelStateChange(
193 InvalidatorState invalidator_state) {
191 FOR_EACH_OBSERVER(Observer, observers_, 194 FOR_EACH_OBSERVER(Observer, observers_,
192 OnNetworkChannelStateChanged(invalidator_state_)); 195 OnNetworkChannelStateChanged(invalidator_state));
193 } 196 }
194 197
195 bool SyncNetworkChannel::DeliverIncomingMessage(const std::string& message) { 198 bool SyncNetworkChannel::DeliverIncomingMessage(const std::string& message) {
196 if (!incoming_receiver_) { 199 if (!incoming_receiver_) {
197 DLOG(ERROR) << "No receiver for incoming notification"; 200 DLOG(ERROR) << "No receiver for incoming notification";
198 return false; 201 return false;
199 } 202 }
200 received_messages_count_++; 203 received_messages_count_++;
201 incoming_receiver_->Run(message); 204 incoming_receiver_->Run(message);
202 return true; 205 return true;
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 327
325 SyncInvalidationScheduler* SyncSystemResources::internal_scheduler() { 328 SyncInvalidationScheduler* SyncSystemResources::internal_scheduler() {
326 return internal_scheduler_.get(); 329 return internal_scheduler_.get();
327 } 330 }
328 331
329 SyncInvalidationScheduler* SyncSystemResources::listener_scheduler() { 332 SyncInvalidationScheduler* SyncSystemResources::listener_scheduler() {
330 return listener_scheduler_.get(); 333 return listener_scheduler_.get();
331 } 334 }
332 335
333 } // namespace syncer 336 } // namespace syncer
OLDNEW
« no previous file with comments | « components/invalidation/sync_system_resources.h ('k') | components/invalidation/sync_system_resources_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698