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

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

Issue 15580002: Make use of InvalidationService (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/invalidation/invalidation_service_factory.cc
diff --git a/chrome/browser/invalidation/invalidation_service_factory.cc b/chrome/browser/invalidation/invalidation_service_factory.cc
index 0fa857b3fca40d40312848a3ce1643f6e570621e..208541776e98f6737c8b02815402a33c84e83c63 100644
--- a/chrome/browser/invalidation/invalidation_service_factory.cc
+++ b/chrome/browser/invalidation/invalidation_service_factory.cc
@@ -4,13 +4,19 @@
#include "chrome/browser/invalidation/invalidation_service_factory.h"
-#include "chrome/browser/invalidation/invalidation_frontend.h"
+#include "base/prefs/pref_registry.h"
+#include "chrome/browser/invalidation/fake_invalidation_service.h"
+#include "chrome/browser/invalidation/invalidation_service.h"
#include "chrome/browser/invalidation/invalidation_service_android.h"
+#include "chrome/browser/invalidation/invalidator_storage.h"
#include "chrome/browser/invalidation/p2p_invalidation_service.h"
#include "chrome/browser/invalidation/ticl_invalidation_service.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/signin/profile_oauth2_token_service.h"
+#include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
#include "chrome/browser/signin/signin_manager.h"
#include "chrome/browser/signin/signin_manager_factory.h"
+#include "chrome/browser/signin/token_service.h"
#include "chrome/browser/signin/token_service_factory.h"
#include "components/browser_context_keyed_service/browser_context_dependency_manager.h"
@@ -18,14 +24,12 @@ class TokenService;
namespace invalidation {
-// TODO(rlarocque): Re-enable this once InvalidationFrontend can
-// extend BrowserContextKeyedService.
-// // static
-// InvalidationFrontend* InvalidationServiceFactory::GetForProfile(
-// Profile* profile) {
-// return static_cast<InvalidationFrontend*>(
-// GetInstance()->GetServiceForBrowserContext(profile, true));
-// }
+// static
+InvalidationService* InvalidationServiceFactory::GetForProfile(
+ Profile* profile) {
+ return static_cast<InvalidationService*>(
+ GetInstance()->GetServiceForBrowserContext(profile, true));
+}
// static
InvalidationServiceFactory* InvalidationServiceFactory::GetInstance() {
@@ -35,24 +39,52 @@ InvalidationServiceFactory* InvalidationServiceFactory::GetInstance() {
InvalidationServiceFactory::InvalidationServiceFactory()
: BrowserContextKeyedServiceFactory(
"InvalidationService",
- BrowserContextDependencyManager::GetInstance()) {
+ BrowserContextDependencyManager::GetInstance()),
+ build_fake_invalidators_(false) {
#if !defined(OS_ANDROID)
DependsOn(SigninManagerFactory::GetInstance());
- DependsOn(TokenServiceFactory::GetInstance());
+ DependsOn(ProfileOAuth2TokenServiceFactory::GetInstance());
#endif
}
InvalidationServiceFactory::~InvalidationServiceFactory() {}
-// static
-BrowserContextKeyedService*
-InvalidationServiceFactory::BuildP2PInvalidationServiceFor(Profile* profile) {
+namespace {
+
+BrowserContextKeyedService* BuildP2PInvalidationService(
+ content::BrowserContext* context) {
+ Profile* profile = static_cast<Profile*>(context);
return new P2PInvalidationService(profile);
}
+BrowserContextKeyedService* BuildFakeInvalidationService(
+ content::BrowserContext* context) {
+ return new FakeInvalidationService();
+}
+
+} // namespace
+
+void InvalidationServiceFactory::SetBuildOnlyFakeInvalidatorsForTest(
+ bool test_mode_enabled) {
+ build_fake_invalidators_ = test_mode_enabled;
+}
+
+P2PInvalidationService*
+InvalidationServiceFactory::BuildAndUseP2PInvalidationServiceForTest(
+ content::BrowserContext* context) {
+ BrowserContextKeyedService* service =
+ SetTestingFactoryAndUse(context, BuildP2PInvalidationService);
+ return static_cast<P2PInvalidationService*>(service);
+}
+
BrowserContextKeyedService* InvalidationServiceFactory::BuildServiceInstanceFor(
content::BrowserContext* context) const {
Profile* profile = static_cast<Profile*>(context);
+
+ if (build_fake_invalidators_) {
+ return BuildFakeInvalidationService(context);
+ }
+
#if defined(OS_ANDROID)
InvalidationServiceAndroid* service = new InvalidationServiceAndroid(profile);
return service;
@@ -60,12 +92,22 @@ BrowserContextKeyedService* InvalidationServiceFactory::BuildServiceInstanceFor(
SigninManagerBase* signin_manager =
SigninManagerFactory::GetForProfile(profile);
TokenService* token_service = TokenServiceFactory::GetForProfile(profile);
+ OAuth2TokenService* oauth2_token_service =
+ ProfileOAuth2TokenServiceFactory::GetForProfile(profile);
TiclInvalidationService* service = new TiclInvalidationService(
- signin_manager, token_service, profile);
+ signin_manager,
+ token_service,
+ oauth2_token_service,
+ profile);
service->Init();
return service;
#endif
}
+void InvalidationServiceFactory::RegisterUserPrefs(
+ user_prefs::PrefRegistrySyncable* registry) {
+ InvalidatorStorage::RegisterUserPrefs(registry);
+}
+
} // namespace invalidation

Powered by Google App Engine
This is Rietveld 408576698