Index: chrome/browser/supervised_user/child_accounts/child_account_service.h |
diff --git a/chrome/browser/supervised_user/child_accounts/child_account_service.h b/chrome/browser/supervised_user/child_accounts/child_account_service.h |
index a0b434ff808559354c3b767d3ecb52e00f352a16..dcab4426374658b47445a2baf713f1ce5e79aef9 100644 |
--- a/chrome/browser/supervised_user/child_accounts/child_account_service.h |
+++ b/chrome/browser/supervised_user/child_accounts/child_account_service.h |
@@ -8,6 +8,7 @@ |
#include <string> |
#include <vector> |
+#include "base/callback.h" |
#include "base/macros.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/memory/weak_ptr.h" |
@@ -24,6 +25,10 @@ namespace base { |
class FilePath; |
} |
+namespace user_prefs { |
+class PrefRegistrySyncable; |
+} |
+ |
class Profile; |
// This class handles detection of child accounts (on sign-in as well as on |
@@ -38,6 +43,8 @@ class ChildAccountService : public KeyedService, |
static bool IsChildAccountDetectionEnabled(); |
+ static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); |
+ |
void Init(); |
// Sets whether the signed-in account is a child account. |
@@ -45,9 +52,15 @@ class ChildAccountService : public KeyedService, |
// happens outside of this class (like Android). |
void SetIsChildAccount(bool is_child_account); |
+ // Responds whether at least one request for child status was successful. |
+ // And we got answer whether the profile belongs to a child account or not. |
+ bool IsChildAccountStatusKnown(); |
+ |
// KeyedService: |
void Shutdown() override; |
+ void AddChildStatusReceivedCallback(const base::Closure& callback); |
+ |
private: |
friend class ChildAccountServiceFactory; |
// Use |ChildAccountServiceFactory::GetForProfile(...)| to get an instance of |
@@ -111,6 +124,9 @@ class ChildAccountService : public KeyedService, |
base::OneShotTimer<ChildAccountService> family_fetch_timer_; |
net::BackoffEntry family_fetch_backoff_; |
+ // Callbacks to run when the user status becomes known. |
+ std::vector<base::Closure> status_received_callback_list_; |
+ |
base::WeakPtrFactory<ChildAccountService> weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(ChildAccountService); |