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

Unified Diff: chrome/browser/invalidation/ticl_invalidation_service.cc

Issue 221963003: Reduce dependency of TiclInvalidationService on Profile (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Pass scoped_refptr as const reference. Created 6 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/invalidation/ticl_invalidation_service.cc
diff --git a/chrome/browser/invalidation/ticl_invalidation_service.cc b/chrome/browser/invalidation/ticl_invalidation_service.cc
index 536d9657a9b3d510dc7a7740824cb208c45ac230..a84d218da2d8784236dacfe3f1b9e9d82f756832 100644
--- a/chrome/browser/invalidation/ticl_invalidation_service.cc
+++ b/chrome/browser/invalidation/ticl_invalidation_service.cc
@@ -19,6 +19,7 @@
#include "chrome/common/pref_names.h"
#include "components/signin/core/browser/profile_oauth2_token_service.h"
#include "google_apis/gaia/gaia_constants.h"
+#include "net/url_request/url_request_context_getter.h"
#include "sync/notifier/gcm_network_channel_delegate.h"
#include "sync/notifier/invalidation_util.h"
#include "sync/notifier/invalidator.h"
@@ -62,13 +63,17 @@ namespace invalidation {
TiclInvalidationService::TiclInvalidationService(
scoped_ptr<InvalidationAuthProvider> auth_provider,
+ const scoped_refptr<net::URLRequestContextGetter>& request_context,
+ scoped_ptr<syncer::InvalidationStateTracker> invalidation_state_tracker,
Profile* profile)
: OAuth2TokenService::Consumer("ticl_invalidation"),
profile_(profile),
auth_provider_(auth_provider.Pass()),
invalidator_registrar_(new syncer::InvalidatorRegistrar()),
+ invalidation_state_tracker_(invalidation_state_tracker.Pass()),
request_access_token_backoff_(&kRequestAccessTokenBackoffPolicy),
network_channel_type_(PUSH_CLIENT_CHANNEL),
+ request_context_(request_context),
logger_() {}
TiclInvalidationService::~TiclInvalidationService() {
@@ -78,11 +83,11 @@ TiclInvalidationService::~TiclInvalidationService() {
void TiclInvalidationService::Init() {
DCHECK(CalledOnValidThread());
- invalidator_storage_.reset(new InvalidatorStorage(profile_->GetPrefs()));
- if (invalidator_storage_->GetInvalidatorClientId().empty()) {
+ if (invalidation_state_tracker_->GetInvalidatorClientId().empty()) {
// This also clears any existing state. We can't reuse old invalidator
// state with the new ID anyway.
- invalidator_storage_->SetInvalidatorClientId(GenerateInvalidatorClientId());
+ invalidation_state_tracker_->SetInvalidatorClientId(
+ GenerateInvalidatorClientId());
}
pref_change_registrar_.Init(profile_->GetPrefs());
@@ -169,7 +174,7 @@ syncer::InvalidatorState TiclInvalidationService::GetInvalidatorState() const {
std::string TiclInvalidationService::GetInvalidatorClientId() const {
DCHECK(CalledOnValidThread());
- return invalidator_storage_->GetInvalidatorClientId();
+ return invalidation_state_tracker_->GetInvalidatorClientId();
}
InvalidationLogger* TiclInvalidationService::GetInvalidationLogger() {
@@ -280,11 +285,11 @@ void TiclInvalidationService::OnInvalidationAuthLogout() {
StopInvalidator();
}
- // This service always expects to have a valid invalidator storage.
- // So we must not only clear the old one, but also start a new one.
- invalidator_storage_->Clear();
- invalidator_storage_.reset(new InvalidatorStorage(profile_->GetPrefs()));
- invalidator_storage_->SetInvalidatorClientId(GenerateInvalidatorClientId());
+ // This service always expects to have a valid invalidation state. Thus, we
+ // must generate a new client ID to replace the existing one. Setting a new
+ // client ID also clears all other state.
+ invalidation_state_tracker_->
+ SetInvalidatorClientId(GenerateInvalidatorClientId());
dcheng 2014/04/11 19:54:00 It might be nice to rename this method to make it
bartfab (slow) 2014/04/14 09:20:08 Done.
}
void TiclInvalidationService::OnInvalidatorStateChange(
@@ -325,7 +330,7 @@ void TiclInvalidationService::Shutdown() {
if (IsStarted()) {
StopInvalidator();
}
- invalidator_storage_.reset();
+ invalidation_state_tracker_.reset();
invalidator_registrar_.reset();
}
@@ -365,8 +370,8 @@ void TiclInvalidationService::StartInvalidator(
InvalidationNetworkChannel network_channel) {
DCHECK(CalledOnValidThread());
DCHECK(!invalidator_);
- DCHECK(invalidator_storage_);
- DCHECK(!invalidator_storage_->GetInvalidatorClientId().empty());
+ DCHECK(invalidation_state_tracker_);
+ DCHECK(!invalidation_state_tracker_->GetInvalidatorClientId().empty());
// Request access token for PushClientChannel. GCMNetworkChannel will request
// access token before sending message to server.
@@ -384,7 +389,7 @@ void TiclInvalidationService::StartInvalidator(
case PUSH_CLIENT_CHANNEL: {
notifier::NotifierOptions options =
ParseNotifierOptions(*CommandLine::ForCurrentProcess());
- options.request_context_getter = profile_->GetRequestContext();
+ options.request_context_getter = request_context_;
options.auth_mechanism = "X-OAUTH2";
network_channel_options_.SetString("Options.HostPort",
options.xmpp_host_port.ToString());
@@ -402,7 +407,7 @@ void TiclInvalidationService::StartInvalidator(
new GCMInvalidationBridge(gcm_profile_service, auth_provider_.get()));
network_channel_creator =
syncer::NonBlockingInvalidator::MakeGCMNetworkChannelCreator(
- profile_->GetRequestContext(),
+ request_context_,
gcm_invalidation_bridge_->CreateDelegate().Pass());
break;
}
@@ -413,13 +418,13 @@ void TiclInvalidationService::StartInvalidator(
}
invalidator_.reset(new syncer::NonBlockingInvalidator(
network_channel_creator,
- invalidator_storage_->GetInvalidatorClientId(),
- invalidator_storage_->GetSavedInvalidations(),
- invalidator_storage_->GetBootstrapData(),
+ invalidation_state_tracker_->GetInvalidatorClientId(),
+ invalidation_state_tracker_->GetSavedInvalidations(),
+ invalidation_state_tracker_->GetBootstrapData(),
syncer::WeakHandle<syncer::InvalidationStateTracker>(
- invalidator_storage_->AsWeakPtr()),
+ invalidation_state_tracker_->GetWeakPtr()),
GetUserAgent(),
- profile_->GetRequestContext()));
+ request_context_));
UpdateInvalidatorCredentials();

Powered by Google App Engine
This is Rietveld 408576698