Index: chrome/browser/push_messaging/push_messaging_service_factory.cc |
diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/chrome/browser/push_messaging/push_messaging_service_factory.cc |
index a0767551fdb44e81768f4ad41839d23b7f675427..711294e918d560e4f6ee3c667e1e3b058ca06c11 100644 |
--- a/chrome/browser/push_messaging/push_messaging_service_factory.cc |
+++ b/chrome/browser/push_messaging/push_messaging_service_factory.cc |
@@ -12,20 +12,28 @@ |
#include "chrome/browser/profiles/incognito_helpers.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/push_messaging/push_messaging_service_impl.h" |
-#include "chrome/browser/services/gcm/fake_gcm_profile_service.h" |
#include "chrome/browser/services/gcm/gcm_profile_service_factory.h" |
+#include "chrome/browser/services/gcm/instance_id/instance_id_profile_service.h" |
+#include "chrome/browser/services/gcm/instance_id/instance_id_profile_service_factory.h" |
#include "components/keyed_service/content/browser_context_dependency_manager.h" |
// static |
PushMessagingServiceImpl* PushMessagingServiceFactory::GetForProfile( |
- content::BrowserContext* profile) { |
+ content::BrowserContext* context) { |
// The Push API is not currently supported in incognito mode. |
// See https://crbug.com/401439. |
- if (profile->IsOffTheRecord()) |
- return NULL; |
+ if (context->IsOffTheRecord()) |
+ return nullptr; |
+ |
+ if (!instance_id::InstanceIDProfileService::IsInstanceIDEnabled( |
+ Profile::FromBrowserContext(context))) { |
+ LOG(WARNING) << "PushMessagingService could not be built because " |
+ "InstanceID is unexpectedly disabled"; |
+ return nullptr; |
+ } |
return static_cast<PushMessagingServiceImpl*>( |
- GetInstance()->GetServiceForBrowserContext(profile, true)); |
+ GetInstance()->GetServiceForBrowserContext(context, true)); |
} |
// static |
@@ -39,6 +47,7 @@ PushMessagingServiceFactory::PushMessagingServiceFactory() |
BrowserContextDependencyManager::GetInstance()) { |
DependsOn(BudgetManagerFactory::GetInstance()); |
DependsOn(gcm::GCMProfileServiceFactory::GetInstance()); |
+ DependsOn(instance_id::InstanceIDProfileServiceFactory::GetInstance()); |
DependsOn(HostContentSettingsMapFactory::GetInstance()); |
DependsOn(PermissionManagerFactory::GetInstance()); |
} |