Index: chrome/browser/chromeos/login/login_utils.cc |
diff --git a/chrome/browser/chromeos/login/login_utils.cc b/chrome/browser/chromeos/login/login_utils.cc |
index 65e4214925e2ff1a609eee91de842d51a6a70372..42a03ed64495fcffd9929f922dcfc117231627ed 100644 |
--- a/chrome/browser/chromeos/login/login_utils.cc |
+++ b/chrome/browser/chromeos/login/login_utils.cc |
@@ -15,6 +15,7 @@ |
#include "base/string_util.h" |
#include "base/stringprintf.h" |
#include "base/synchronization/lock.h" |
+#include "base/threading/thread_restrictions.h" |
#include "base/time.h" |
#include "base/utf_string_conversions.h" |
#include "chrome/browser/browser_process.h" |
@@ -221,9 +222,15 @@ void LoginUtilsImpl::CompleteLogin( |
logging::RedirectChromeLogging(*(CommandLine::ForCurrentProcess())); |
btl->AddLoginTimeMarker("LoggingRedirected", false); |
- // The default profile will have been changed because the ProfileManager |
- // will process the notification that the UserManager sends out. |
- Profile* profile = profile_manager->GetDefaultProfile(user_data_dir); |
+ Profile* profile = NULL; |
+ { |
+ // Loading user profile causes us to do blocking IO on UI thread. |
+ // Temporarily allow it until we fix http://crosbug.com/11104 |
+ base::ThreadRestrictions::ScopedAllowIO allow_io; |
+ // The default profile will have been changed because the ProfileManager |
+ // will process the notification that the UserManager sends out. |
+ profile = profile_manager->GetDefaultProfile(user_data_dir); |
+ } |
btl->AddLoginTimeMarker("UserProfileGotten", false); |
// Change the proxy configuration service of the default request context to |