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

Side by Side Diff: google_apis/gcm/gcm_client_impl.cc

Issue 288433002: G-services settings v3 implementation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressing CR feedback Created 6 years, 7 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "google_apis/gcm/gcm_client_impl.h" 5 #include "google_apis/gcm/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 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 } 264 }
265 265
266 state_ = INITIAL_DEVICE_CHECKIN; 266 state_ = INITIAL_DEVICE_CHECKIN;
267 device_checkin_info_.Reset(); 267 device_checkin_info_.Reset();
268 StartCheckin(); 268 StartCheckin();
269 } 269 }
270 270
271 void GCMClientImpl::InitializeMCSClient( 271 void GCMClientImpl::InitializeMCSClient(
272 scoped_ptr<GCMStore::LoadResult> result) { 272 scoped_ptr<GCMStore::LoadResult> result) {
273 std::vector<GURL> endpoints; 273 std::vector<GURL> endpoints;
274 endpoints.push_back(gservices_settings_.mcs_main_endpoint()); 274 endpoints.push_back(gservices_settings_.GetMCSMainEndpoint());
275 endpoints.push_back(gservices_settings_.mcs_fallback_endpoint()); 275 endpoints.push_back(gservices_settings_.GetMCSFallbackEndpoint());
276 connection_factory_ = internals_builder_->BuildConnectionFactory( 276 connection_factory_ = internals_builder_->BuildConnectionFactory(
277 endpoints, 277 endpoints,
278 kDefaultBackoffPolicy, 278 kDefaultBackoffPolicy,
279 network_session_, 279 network_session_,
280 net_log_.net_log(), 280 net_log_.net_log(),
281 &recorder_); 281 &recorder_);
282 mcs_client_ = internals_builder_->BuildMCSClient( 282 mcs_client_ = internals_builder_->BuildMCSClient(
283 chrome_build_proto_.chrome_version(), 283 chrome_build_proto_.chrome_version(),
284 clock_.get(), 284 clock_.get(),
285 connection_factory_.get(), 285 connection_factory_.get(),
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 // Make sure no checkin is in progress. 332 // Make sure no checkin is in progress.
333 if (checkin_request_.get()) 333 if (checkin_request_.get())
334 return; 334 return;
335 335
336 CheckinRequest::RequestInfo request_info(device_checkin_info_.android_id, 336 CheckinRequest::RequestInfo request_info(device_checkin_info_.android_id,
337 device_checkin_info_.secret, 337 device_checkin_info_.secret,
338 gservices_settings_.digest(), 338 gservices_settings_.digest(),
339 account_ids_, 339 account_ids_,
340 chrome_build_proto_); 340 chrome_build_proto_);
341 checkin_request_.reset( 341 checkin_request_.reset(
342 new CheckinRequest(gservices_settings_.checkin_url(), 342 new CheckinRequest(gservices_settings_.GetCheckinURL(),
343 request_info, 343 request_info,
344 kDefaultBackoffPolicy, 344 kDefaultBackoffPolicy,
345 base::Bind(&GCMClientImpl::OnCheckinCompleted, 345 base::Bind(&GCMClientImpl::OnCheckinCompleted,
346 weak_ptr_factory_.GetWeakPtr()), 346 weak_ptr_factory_.GetWeakPtr()),
347 url_request_context_getter_, 347 url_request_context_getter_,
348 &recorder_)); 348 &recorder_));
349 checkin_request_->Start(); 349 checkin_request_->Start();
350 } 350 }
351 351
352 void GCMClientImpl::OnCheckinCompleted( 352 void GCMClientImpl::OnCheckinCompleted(
(...skipping 18 matching lines...) Expand all
371 // would invalidate the registratoin IDs. 371 // would invalidate the registratoin IDs.
372 DCHECK_EQ(READY, state_); 372 DCHECK_EQ(READY, state_);
373 DCHECK_EQ(device_checkin_info_.android_id, checkin_info.android_id); 373 DCHECK_EQ(device_checkin_info_.android_id, checkin_info.android_id);
374 DCHECK_EQ(device_checkin_info_.secret, checkin_info.secret); 374 DCHECK_EQ(device_checkin_info_.secret, checkin_info.secret);
375 } 375 }
376 376
377 if (device_checkin_info_.IsValid()) { 377 if (device_checkin_info_.IsValid()) {
378 // First update G-services settings, as something might have changed. 378 // First update G-services settings, as something might have changed.
379 if (gservices_settings_.UpdateFromCheckinResponse(checkin_response)) { 379 if (gservices_settings_.UpdateFromCheckinResponse(checkin_response)) {
380 gcm_store_->SetGServicesSettings( 380 gcm_store_->SetGServicesSettings(
381 gservices_settings_.GetSettingsMap(), 381 gservices_settings_.settings_map(),
382 gservices_settings_.digest(), 382 gservices_settings_.digest(),
383 base::Bind(&GCMClientImpl::SetGServicesSettingsCallback, 383 base::Bind(&GCMClientImpl::SetGServicesSettingsCallback,
384 weak_ptr_factory_.GetWeakPtr())); 384 weak_ptr_factory_.GetWeakPtr()));
385 } 385 }
386 386
387 last_checkin_time_ = clock_->Now(); 387 last_checkin_time_ = clock_->Now();
388 gcm_store_->SetLastCheckinTime( 388 gcm_store_->SetLastCheckinTime(
389 last_checkin_time_, 389 last_checkin_time_,
390 base::Bind(&GCMClientImpl::SetLastCheckinTimeCallback, 390 base::Bind(&GCMClientImpl::SetLastCheckinTimeCallback,
391 weak_ptr_factory_.GetWeakPtr())); 391 weak_ptr_factory_.GetWeakPtr()));
(...skipping 19 matching lines...) Expand all
411 time_to_next_checkin = base::TimeDelta(); 411 time_to_next_checkin = base::TimeDelta();
412 412
413 base::MessageLoop::current()->PostDelayedTask( 413 base::MessageLoop::current()->PostDelayedTask(
414 FROM_HERE, 414 FROM_HERE,
415 base::Bind(&GCMClientImpl::StartCheckin, 415 base::Bind(&GCMClientImpl::StartCheckin,
416 periodic_checkin_ptr_factory_.GetWeakPtr()), 416 periodic_checkin_ptr_factory_.GetWeakPtr()),
417 time_to_next_checkin); 417 time_to_next_checkin);
418 } 418 }
419 419
420 base::TimeDelta GCMClientImpl::GetTimeToNextCheckin() const { 420 base::TimeDelta GCMClientImpl::GetTimeToNextCheckin() const {
421 return last_checkin_time_ + gservices_settings_.checkin_interval() - 421 return last_checkin_time_ + gservices_settings_.GetCheckinInterval() -
422 clock_->Now(); 422 clock_->Now();
423 } 423 }
424 424
425 void GCMClientImpl::SetLastCheckinTimeCallback(bool success) { 425 void GCMClientImpl::SetLastCheckinTimeCallback(bool success) {
426 // TODO(fgorski): This is one of the signals that store needs a rebuild. 426 // TODO(fgorski): This is one of the signals that store needs a rebuild.
427 DCHECK(success); 427 DCHECK(success);
428 } 428 }
429 429
430 void GCMClientImpl::SetDeviceCredentialsCallback(bool success) { 430 void GCMClientImpl::SetDeviceCredentialsCallback(bool success) {
431 // TODO(fgorski): This is one of the signals that store needs a rebuild. 431 // TODO(fgorski): This is one of the signals that store needs a rebuild.
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 } 469 }
470 470
471 RegistrationRequest::RequestInfo request_info( 471 RegistrationRequest::RequestInfo request_info(
472 device_checkin_info_.android_id, 472 device_checkin_info_.android_id,
473 device_checkin_info_.secret, 473 device_checkin_info_.secret,
474 app_id, 474 app_id,
475 sender_ids); 475 sender_ids);
476 DCHECK_EQ(0u, pending_registration_requests_.count(app_id)); 476 DCHECK_EQ(0u, pending_registration_requests_.count(app_id));
477 477
478 RegistrationRequest* registration_request = 478 RegistrationRequest* registration_request =
479 new RegistrationRequest(gservices_settings_.registration_url(), 479 new RegistrationRequest(gservices_settings_.GetRegistrationURL(),
480 request_info, 480 request_info,
481 kDefaultBackoffPolicy, 481 kDefaultBackoffPolicy,
482 base::Bind(&GCMClientImpl::OnRegisterCompleted, 482 base::Bind(&GCMClientImpl::OnRegisterCompleted,
483 weak_ptr_factory_.GetWeakPtr(), 483 weak_ptr_factory_.GetWeakPtr(),
484 app_id, 484 app_id,
485 sender_ids), 485 sender_ids),
486 kMaxRegistrationRetries, 486 kMaxRegistrationRetries,
487 url_request_context_getter_, 487 url_request_context_getter_,
488 &recorder_); 488 &recorder_);
489 pending_registration_requests_[app_id] = registration_request; 489 pending_registration_requests_[app_id] = registration_request;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 gcm_store_->RemoveRegistration( 543 gcm_store_->RemoveRegistration(
544 app_id, 544 app_id,
545 base::Bind(&GCMClientImpl::UpdateRegistrationCallback, 545 base::Bind(&GCMClientImpl::UpdateRegistrationCallback,
546 weak_ptr_factory_.GetWeakPtr())); 546 weak_ptr_factory_.GetWeakPtr()));
547 547
548 UnregistrationRequest::RequestInfo request_info( 548 UnregistrationRequest::RequestInfo request_info(
549 device_checkin_info_.android_id, 549 device_checkin_info_.android_id,
550 device_checkin_info_.secret, 550 device_checkin_info_.secret,
551 app_id); 551 app_id);
552 552
553 UnregistrationRequest* unregistration_request = 553 UnregistrationRequest* unregistration_request = new UnregistrationRequest(
554 new UnregistrationRequest( 554 gservices_settings_.GetRegistrationURL(),
555 gservices_settings_.registration_url(), 555 request_info,
556 request_info, 556 kDefaultBackoffPolicy,
557 kDefaultBackoffPolicy, 557 base::Bind(&GCMClientImpl::OnUnregisterCompleted,
558 base::Bind(&GCMClientImpl::OnUnregisterCompleted, 558 weak_ptr_factory_.GetWeakPtr(),
559 weak_ptr_factory_.GetWeakPtr(), 559 app_id),
560 app_id), 560 url_request_context_getter_,
561 url_request_context_getter_, 561 &recorder_);
562 &recorder_);
563 pending_unregistration_requests_[app_id] = unregistration_request; 562 pending_unregistration_requests_[app_id] = unregistration_request;
564 unregistration_request->Start(); 563 unregistration_request->Start();
565 } 564 }
566 565
567 void GCMClientImpl::OnUnregisterCompleted( 566 void GCMClientImpl::OnUnregisterCompleted(
568 const std::string& app_id, 567 const std::string& app_id,
569 UnregistrationRequest::Status status) { 568 UnregistrationRequest::Status status) {
570 DVLOG(1) << "Unregister completed for app: " << app_id 569 DVLOG(1) << "Unregister completed for app: " << app_id
571 << " with " << (status ? "success." : "failure."); 570 << " with " << (status ? "success." : "failure.");
572 delegate_->OnUnregisterFinished( 571 delegate_->OnUnregisterFinished(
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
805 804
806 recorder_.RecordIncomingSendError( 805 recorder_.RecordIncomingSendError(
807 data_message_stanza.category(), 806 data_message_stanza.category(),
808 data_message_stanza.to(), 807 data_message_stanza.to(),
809 data_message_stanza.id()); 808 data_message_stanza.id());
810 delegate_->OnMessageSendError(data_message_stanza.category(), 809 delegate_->OnMessageSendError(data_message_stanza.category(),
811 send_error_details); 810 send_error_details);
812 } 811 }
813 812
814 } // namespace gcm 813 } // namespace gcm
OLDNEW
« no previous file with comments | « google_apis/gcm/engine/gservices_settings_unittest.cc ('k') | google_apis/gcm/gcm_client_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698