summaryrefslogtreecommitdiff
path: root/chromium/chrome/browser/signin/signin_profile_attributes_updater_factory.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/chrome/browser/signin/signin_profile_attributes_updater_factory.cc')
-rw-r--r--chromium/chrome/browser/signin/signin_profile_attributes_updater_factory.cc53
1 files changed, 53 insertions, 0 deletions
diff --git a/chromium/chrome/browser/signin/signin_profile_attributes_updater_factory.cc b/chromium/chrome/browser/signin/signin_profile_attributes_updater_factory.cc
new file mode 100644
index 00000000000..86c62a2ce6e
--- /dev/null
+++ b/chromium/chrome/browser/signin/signin_profile_attributes_updater_factory.cc
@@ -0,0 +1,53 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/signin/signin_profile_attributes_updater_factory.h"
+
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/signin/identity_manager_factory.h"
+#include "chrome/browser/signin/signin_profile_attributes_updater.h"
+#include "components/keyed_service/content/browser_context_dependency_manager.h"
+
+// static
+SigninProfileAttributesUpdater*
+SigninProfileAttributesUpdaterFactory::GetForProfile(Profile* profile) {
+ return static_cast<SigninProfileAttributesUpdater*>(
+ GetInstance()->GetServiceForBrowserContext(profile, true));
+}
+
+// static
+SigninProfileAttributesUpdaterFactory*
+SigninProfileAttributesUpdaterFactory::GetInstance() {
+ return base::Singleton<SigninProfileAttributesUpdaterFactory>::get();
+}
+
+SigninProfileAttributesUpdaterFactory::SigninProfileAttributesUpdaterFactory()
+ : BrowserContextKeyedServiceFactory(
+ "SigninProfileAttributesUpdater",
+ BrowserContextDependencyManager::GetInstance()) {
+ DependsOn(IdentityManagerFactory::GetInstance());
+}
+
+SigninProfileAttributesUpdaterFactory::
+ ~SigninProfileAttributesUpdaterFactory() {}
+
+KeyedService* SigninProfileAttributesUpdaterFactory::BuildServiceInstanceFor(
+ content::BrowserContext* context) const {
+ Profile* profile = Profile::FromBrowserContext(context);
+ // Some tests don't have a ProfileManager, disable this service.
+ if (!g_browser_process->profile_manager())
+ return nullptr;
+
+ return new SigninProfileAttributesUpdater(
+ IdentityManagerFactory::GetForProfile(profile),
+ &g_browser_process->profile_manager()->GetProfileAttributesStorage(),
+ profile->GetPath(), profile->GetPrefs());
+}
+
+bool SigninProfileAttributesUpdaterFactory::ServiceIsCreatedWithBrowserContext()
+ const {
+ return true;
+}