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

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

Issue 320993003: [GCM] Add app handler support for connection events (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add basic tests 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 | Annotate | Revision Log
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 "base/bind.h" 7 #include "base/bind.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 new ConnectionFactoryImpl(endpoints, 243 new ConnectionFactoryImpl(endpoints,
244 backoff_policy, 244 backoff_policy,
245 network_session, 245 network_session,
246 net_log, 246 net_log,
247 recorder)); 247 recorder));
248 } 248 }
249 249
250 GCMClientImpl::GCMClientImpl(scoped_ptr<GCMInternalsBuilder> internals_builder) 250 GCMClientImpl::GCMClientImpl(scoped_ptr<GCMInternalsBuilder> internals_builder)
251 : internals_builder_(internals_builder.Pass()), 251 : internals_builder_(internals_builder.Pass()),
252 state_(UNINITIALIZED), 252 state_(UNINITIALIZED),
253 delegate_(NULL),
253 clock_(internals_builder_->BuildClock()), 254 clock_(internals_builder_->BuildClock()),
254 url_request_context_getter_(NULL), 255 url_request_context_getter_(NULL),
255 pending_registration_requests_deleter_(&pending_registration_requests_), 256 pending_registration_requests_deleter_(&pending_registration_requests_),
256 pending_unregistration_requests_deleter_( 257 pending_unregistration_requests_deleter_(
257 &pending_unregistration_requests_), 258 &pending_unregistration_requests_),
258 periodic_checkin_ptr_factory_(this), 259 periodic_checkin_ptr_factory_(this),
259 weak_ptr_factory_(this) { 260 weak_ptr_factory_(this) {
260 } 261 }
261 262
262 GCMClientImpl::~GCMClientImpl() { 263 GCMClientImpl::~GCMClientImpl() {
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 } 499 }
499 500
500 void GCMClientImpl::UpdateRegistrationCallback(bool success) { 501 void GCMClientImpl::UpdateRegistrationCallback(bool success) {
501 // TODO(fgorski): This is one of the signals that store needs a rebuild. 502 // TODO(fgorski): This is one of the signals that store needs a rebuild.
502 DCHECK(success); 503 DCHECK(success);
503 } 504 }
504 505
505 void GCMClientImpl::Stop() { 506 void GCMClientImpl::Stop() {
506 device_checkin_info_.Reset(); 507 device_checkin_info_.Reset();
507 connection_factory_.reset(); 508 connection_factory_.reset();
509 delegate_->OnDisconnected();
508 mcs_client_.reset(); 510 mcs_client_.reset();
509 checkin_request_.reset(); 511 checkin_request_.reset();
510 pending_registration_requests_.clear(); 512 pending_registration_requests_.clear();
511 state_ = INITIALIZED; 513 state_ = INITIALIZED;
512 gcm_store_->Close(); 514 gcm_store_->Close();
513 } 515 }
514 516
515 void GCMClientImpl::CheckOut() { 517 void GCMClientImpl::CheckOut() {
516 Stop(); 518 Stop();
517 gcm_store_->Destroy(base::Bind(&GCMClientImpl::OnGCMStoreDestroyed, 519 gcm_store_->Destroy(base::Bind(&GCMClientImpl::OnGCMStoreDestroyed,
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
728 } 730 }
729 return stats; 731 return stats;
730 } 732 }
731 733
732 void GCMClientImpl::OnActivityRecorded() { 734 void GCMClientImpl::OnActivityRecorded() {
733 delegate_->OnActivityRecorded(); 735 delegate_->OnActivityRecorded();
734 } 736 }
735 737
736 void GCMClientImpl::OnConnected(const GURL& current_server, 738 void GCMClientImpl::OnConnected(const GURL& current_server,
737 const net::IPEndPoint& ip_endpoint) { 739 const net::IPEndPoint& ip_endpoint) {
738 // TODO(zea): inform GCMClient::Delegate and app handlers as well. 740 // TODO(gcm): expose current server in debug page.
739 delegate_->OnActivityRecorded(); 741 delegate_->OnActivityRecorded();
742 delegate_->OnConnected(ip_endpoint);
740 } 743 }
741 744
742 void GCMClientImpl::OnDisconnected() { 745 void GCMClientImpl::OnDisconnected() {
743 // TODO(zea): inform GCMClient::Delegate and app handlers as well.
744 delegate_->OnActivityRecorded(); 746 delegate_->OnActivityRecorded();
747 delegate_->OnDisconnected();
745 } 748 }
746 749
747 void GCMClientImpl::OnMessageReceivedFromMCS(const gcm::MCSMessage& message) { 750 void GCMClientImpl::OnMessageReceivedFromMCS(const gcm::MCSMessage& message) {
748 switch (message.tag()) { 751 switch (message.tag()) {
749 case kLoginResponseTag: 752 case kLoginResponseTag:
750 DVLOG(1) << "Login response received by GCM Client. Ignoring."; 753 DVLOG(1) << "Login response received by GCM Client. Ignoring.";
751 return; 754 return;
752 case kDataMessageStanzaTag: 755 case kDataMessageStanzaTag:
753 DVLOG(1) << "A downstream message received. Processing..."; 756 DVLOG(1) << "A downstream message received. Processing...";
754 HandleIncomingMessage(message); 757 HandleIncomingMessage(message);
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
881 884
882 recorder_.RecordIncomingSendError( 885 recorder_.RecordIncomingSendError(
883 data_message_stanza.category(), 886 data_message_stanza.category(),
884 data_message_stanza.to(), 887 data_message_stanza.to(),
885 data_message_stanza.id()); 888 data_message_stanza.id());
886 delegate_->OnMessageSendError(data_message_stanza.category(), 889 delegate_->OnMessageSendError(data_message_stanza.category(),
887 send_error_details); 890 send_error_details);
888 } 891 }
889 892
890 } // namespace gcm 893 } // namespace gcm
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698