Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / managed_mode / managed_user_service.cc
index 46ca0c0..bf58cbb 100644 (file)
@@ -9,9 +9,9 @@
 #include "base/prefs/pref_service.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/browser/browser_process.h"
 #include "chrome/browser/chrome_notification_types.h"
 #include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/extensions/extension_system.h"
 #include "chrome/browser/managed_mode/custodian_profile_downloader_service.h"
 #include "chrome/browser/managed_mode/custodian_profile_downloader_service_factory.h"
 #include "chrome/browser/managed_mode/managed_mode_site_list.h"
 #include "chrome/browser/managed_mode/managed_user_settings_service_factory.h"
 #include "chrome/browser/managed_mode/managed_user_sync_service.h"
 #include "chrome/browser/managed_mode/managed_user_sync_service_factory.h"
+#include "chrome/browser/managed_mode/supervised_user_pref_mapping_service.h"
+#include "chrome/browser/managed_mode/supervised_user_pref_mapping_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/profiles/profile_info_cache.h"
+#include "chrome/browser/profiles/profile_manager.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"
@@ -38,6 +42,7 @@
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/notification_details.h"
 #include "content/public/browser/notification_source.h"
+#include "extensions/browser/extension_system.h"
 #include "extensions/common/extension_set.h"
 #include "google_apis/gaia/google_service_auth_error.h"
 #include "grit/generated_resources.h"
@@ -530,6 +535,9 @@ void ManagedUserService::Init() {
 
   settings_service->Activate();
 
+  SupervisedUserPrefMappingServiceFactory::GetForBrowserContext(profile_)
+      ->Init();
+
   CommandLine* command_line = CommandLine::ForCurrentProcess();
   if (command_line->HasSwitch(switches::kManagedUserSyncToken)) {
     InitSync(
@@ -624,6 +632,12 @@ void ManagedUserService::OnManagedUserRegistered(
         SigninManagerFactory::GetForProfile(custodian_profile);
     profile_->GetPrefs()->SetString(prefs::kManagedUserCustodianEmail,
                                     signin->GetAuthenticatedUsername());
+
+    // The managed-user profile is now ready for use.
+    ProfileManager* profile_manager = g_browser_process->profile_manager();
+    ProfileInfoCache& cache = profile_manager->GetProfileInfoCache();
+    size_t index = cache.GetIndexOfProfileWithPath(profile_->GetPath());
+    cache.SetIsOmittedProfileAtIndex(index, false);
   } else {
     DCHECK_EQ(std::string(), token);
   }