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

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 feedback from Jian Li 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 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 } 261 }
262 262
263 state_ = INITIAL_DEVICE_CHECKIN; 263 state_ = INITIAL_DEVICE_CHECKIN;
264 device_checkin_info_.Reset(); 264 device_checkin_info_.Reset();
265 StartCheckin(); 265 StartCheckin();
266 } 266 }
267 267
268 void GCMClientImpl::InitializeMCSClient( 268 void GCMClientImpl::InitializeMCSClient(
269 scoped_ptr<GCMStore::LoadResult> result) { 269 scoped_ptr<GCMStore::LoadResult> result) {
270 std::vector<GURL> endpoints; 270 std::vector<GURL> endpoints;
271 endpoints.push_back(gservices_settings_.mcs_main_endpoint()); 271 endpoints.push_back(gservices_settings_.GetMCSMainEndpoint());
272 endpoints.push_back(gservices_settings_.mcs_fallback_endpoint()); 272 endpoints.push_back(gservices_settings_.GetMCSFallbackEndpoint());
273 connection_factory_ = internals_builder_->BuildConnectionFactory( 273 connection_factory_ = internals_builder_->BuildConnectionFactory(
274 endpoints, 274 endpoints,
275 kDefaultBackoffPolicy, 275 kDefaultBackoffPolicy,
276 network_session_, 276 network_session_,
277 net_log_.net_log(), 277 net_log_.net_log(),
278 &recorder_); 278 &recorder_);
279 mcs_client_ = internals_builder_->BuildMCSClient( 279 mcs_client_ = internals_builder_->BuildMCSClient(
280 chrome_build_proto_.chrome_version(), 280 chrome_build_proto_.chrome_version(),
281 clock_.get(), 281 clock_.get(),
282 connection_factory_.get(), 282 connection_factory_.get(),
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 // Make sure no checkin is in progress. 329 // Make sure no checkin is in progress.
330 if (checkin_request_.get()) 330 if (checkin_request_.get())
331 return; 331 return;
332 332
333 CheckinRequest::RequestInfo request_info(device_checkin_info_.android_id, 333 CheckinRequest::RequestInfo request_info(device_checkin_info_.android_id,
334 device_checkin_info_.secret, 334 device_checkin_info_.secret,
335 gservices_settings_.digest(), 335 gservices_settings_.digest(),
336 account_ids_, 336 account_ids_,
337 chrome_build_proto_); 337 chrome_build_proto_);
338 checkin_request_.reset( 338 checkin_request_.reset(
339 new CheckinRequest(gservices_settings_.checkin_url(), 339 new CheckinRequest(gservices_settings_.GetCheckinURL(),
340 request_info, 340 request_info,
341 kDefaultBackoffPolicy, 341 kDefaultBackoffPolicy,
342 base::Bind(&GCMClientImpl::OnCheckinCompleted, 342 base::Bind(&GCMClientImpl::OnCheckinCompleted,
343 weak_ptr_factory_.GetWeakPtr()), 343 weak_ptr_factory_.GetWeakPtr()),
344 url_request_context_getter_, 344 url_request_context_getter_,
345 &recorder_)); 345 &recorder_));
346 checkin_request_->Start(); 346 checkin_request_->Start();
347 } 347 }
348 348
349 void GCMClientImpl::OnCheckinCompleted( 349 void GCMClientImpl::OnCheckinCompleted(
(...skipping 18 matching lines...) Expand all
368 // would invalidate the registratoin IDs. 368 // would invalidate the registratoin IDs.
369 DCHECK_EQ(READY, state_); 369 DCHECK_EQ(READY, state_);
370 DCHECK_EQ(device_checkin_info_.android_id, checkin_info.android_id); 370 DCHECK_EQ(device_checkin_info_.android_id, checkin_info.android_id);
371 DCHECK_EQ(device_checkin_info_.secret, checkin_info.secret); 371 DCHECK_EQ(device_checkin_info_.secret, checkin_info.secret);
372 } 372 }
373 373
374 if (device_checkin_info_.IsValid()) { 374 if (device_checkin_info_.IsValid()) {
375 // First update G-services settings, as something might have changed. 375 // First update G-services settings, as something might have changed.
376 if (gservices_settings_.UpdateFromCheckinResponse(checkin_response)) { 376 if (gservices_settings_.UpdateFromCheckinResponse(checkin_response)) {
377 gcm_store_->SetGServicesSettings( 377 gcm_store_->SetGServicesSettings(
378 gservices_settings_.GetSettingsMap(), 378 gservices_settings_.get_settings_map(),
379 gservices_settings_.digest(), 379 gservices_settings_.digest(),
380 base::Bind(&GCMClientImpl::SetGServicesSettingsCallback, 380 base::Bind(&GCMClientImpl::SetGServicesSettingsCallback,
381 weak_ptr_factory_.GetWeakPtr())); 381 weak_ptr_factory_.GetWeakPtr()));
382 } 382 }
383 383
384 last_checkin_time_ = clock_->Now(); 384 last_checkin_time_ = clock_->Now();
385 gcm_store_->SetLastCheckinTime( 385 gcm_store_->SetLastCheckinTime(
386 last_checkin_time_, 386 last_checkin_time_,
387 base::Bind(&GCMClientImpl::SetLastCheckinTimeCallback, 387 base::Bind(&GCMClientImpl::SetLastCheckinTimeCallback,
388 weak_ptr_factory_.GetWeakPtr())); 388 weak_ptr_factory_.GetWeakPtr()));
(...skipping 19 matching lines...) Expand all
408 time_to_next_checkin = base::TimeDelta(); 408 time_to_next_checkin = base::TimeDelta();
409 409
410 base::MessageLoop::current()->PostDelayedTask( 410 base::MessageLoop::current()->PostDelayedTask(
411 FROM_HERE, 411 FROM_HERE,
412 base::Bind(&GCMClientImpl::StartCheckin, 412 base::Bind(&GCMClientImpl::StartCheckin,
413 periodic_checkin_ptr_factory_.GetWeakPtr()), 413 periodic_checkin_ptr_factory_.GetWeakPtr()),
414 time_to_next_checkin); 414 time_to_next_checkin);
415 } 415 }
416 416
417 base::TimeDelta GCMClientImpl::GetTimeToNextCheckin() const { 417 base::TimeDelta GCMClientImpl::GetTimeToNextCheckin() const {
418 return last_checkin_time_ + gservices_settings_.checkin_interval() - 418 return last_checkin_time_ + gservices_settings_.GetCheckinInterval() -
419 clock_->Now(); 419 clock_->Now();
420 } 420 }
421 421
422 void GCMClientImpl::SetLastCheckinTimeCallback(bool success) { 422 void GCMClientImpl::SetLastCheckinTimeCallback(bool success) {
423 // TODO(fgorski): This is one of the signals that store needs a rebuild. 423 // TODO(fgorski): This is one of the signals that store needs a rebuild.
424 DCHECK(success); 424 DCHECK(success);
425 } 425 }
426 426
427 void GCMClientImpl::SetDeviceCredentialsCallback(bool success) { 427 void GCMClientImpl::SetDeviceCredentialsCallback(bool success) {
428 // TODO(fgorski): This is one of the signals that store needs a rebuild. 428 // 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
466 } 466 }
467 467
468 RegistrationRequest::RequestInfo request_info( 468 RegistrationRequest::RequestInfo request_info(
469 device_checkin_info_.android_id, 469 device_checkin_info_.android_id,
470 device_checkin_info_.secret, 470 device_checkin_info_.secret,
471 app_id, 471 app_id,
472 sender_ids); 472 sender_ids);
473 DCHECK_EQ(0u, pending_registration_requests_.count(app_id)); 473 DCHECK_EQ(0u, pending_registration_requests_.count(app_id));
474 474
475 RegistrationRequest* registration_request = 475 RegistrationRequest* registration_request =
476 new RegistrationRequest(gservices_settings_.registration_url(), 476 new RegistrationRequest(gservices_settings_.GetRegistrationURL(),
477 request_info, 477 request_info,
478 kDefaultBackoffPolicy, 478 kDefaultBackoffPolicy,
479 base::Bind(&GCMClientImpl::OnRegisterCompleted, 479 base::Bind(&GCMClientImpl::OnRegisterCompleted,
480 weak_ptr_factory_.GetWeakPtr(), 480 weak_ptr_factory_.GetWeakPtr(),
481 app_id, 481 app_id,
482 sender_ids), 482 sender_ids),
483 kMaxRegistrationRetries, 483 kMaxRegistrationRetries,
484 url_request_context_getter_, 484 url_request_context_getter_,
485 &recorder_); 485 &recorder_);
486 pending_registration_requests_[app_id] = registration_request; 486 pending_registration_requests_[app_id] = registration_request;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 gcm_store_->RemoveRegistration( 540 gcm_store_->RemoveRegistration(
541 app_id, 541 app_id,
542 base::Bind(&GCMClientImpl::UpdateRegistrationCallback, 542 base::Bind(&GCMClientImpl::UpdateRegistrationCallback,
543 weak_ptr_factory_.GetWeakPtr())); 543 weak_ptr_factory_.GetWeakPtr()));
544 544
545 UnregistrationRequest::RequestInfo request_info( 545 UnregistrationRequest::RequestInfo request_info(
546 device_checkin_info_.android_id, 546 device_checkin_info_.android_id,
547 device_checkin_info_.secret, 547 device_checkin_info_.secret,
548 app_id); 548 app_id);
549 549
550 UnregistrationRequest* unregistration_request = 550 UnregistrationRequest* unregistration_request = new UnregistrationRequest(
551 new UnregistrationRequest( 551 gservices_settings_.GetRegistrationURL(),
552 gservices_settings_.registration_url(), 552 request_info,
553 request_info, 553 kDefaultBackoffPolicy,
554 kDefaultBackoffPolicy, 554 base::Bind(&GCMClientImpl::OnUnregisterCompleted,
555 base::Bind(&GCMClientImpl::OnUnregisterCompleted, 555 weak_ptr_factory_.GetWeakPtr(),
556 weak_ptr_factory_.GetWeakPtr(), 556 app_id),
557 app_id), 557 url_request_context_getter_,
558 url_request_context_getter_, 558 &recorder_);
559 &recorder_);
560 pending_unregistration_requests_[app_id] = unregistration_request; 559 pending_unregistration_requests_[app_id] = unregistration_request;
561 unregistration_request->Start(); 560 unregistration_request->Start();
562 } 561 }
563 562
564 void GCMClientImpl::OnUnregisterCompleted( 563 void GCMClientImpl::OnUnregisterCompleted(
565 const std::string& app_id, 564 const std::string& app_id,
566 UnregistrationRequest::Status status) { 565 UnregistrationRequest::Status status) {
567 DVLOG(1) << "Unregister completed for app: " << app_id 566 DVLOG(1) << "Unregister completed for app: " << app_id
568 << " with " << (status ? "success." : "failure."); 567 << " with " << (status ? "success." : "failure.");
569 delegate_->OnUnregisterFinished( 568 delegate_->OnUnregisterFinished(
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 801
803 recorder_.RecordIncomingSendError( 802 recorder_.RecordIncomingSendError(
804 data_message_stanza.category(), 803 data_message_stanza.category(),
805 data_message_stanza.to(), 804 data_message_stanza.to(),
806 data_message_stanza.id()); 805 data_message_stanza.id());
807 delegate_->OnMessageSendError(data_message_stanza.category(), 806 delegate_->OnMessageSendError(data_message_stanza.category(),
808 send_error_details); 807 send_error_details);
809 } 808 }
810 809
811 } // namespace gcm 810 } // namespace gcm
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698