Index: chrome/browser/ui/app_list/app_list_service_impl.cc |
diff --git a/chrome/browser/ui/app_list/app_list_service_impl.cc b/chrome/browser/ui/app_list/app_list_service_impl.cc |
index 8b5c91422bc3020ad6c4d5bd64f7bb065c7ddcbf..3808fee61706a952be5251d787ac969d2737f888 100644 |
--- a/chrome/browser/ui/app_list/app_list_service_impl.cc |
+++ b/chrome/browser/ui/app_list/app_list_service_impl.cc |
@@ -123,6 +123,7 @@ class ProfileStoreImpl : public ProfileStore { |
} |
Profile* GetProfileByPath(const base::FilePath& path) override { |
+ DCHECK(!IsProfileLocked(path)); |
return profile_manager_->GetProfileByPath(path); |
} |
@@ -138,6 +139,14 @@ class ProfileStoreImpl : public ProfileStore { |
profile_info.ProfileIsSupervisedAtIndex(profile_index); |
} |
+ bool IsProfileLocked(const base::FilePath& profile_path) override { |
+ ProfileInfoCache& profile_info = |
+ g_browser_process->profile_manager()->GetProfileInfoCache(); |
+ size_t profile_index = profile_info.GetIndexOfProfileWithPath(profile_path); |
+ return profile_index != std::string::npos && |
+ profile_info.ProfileIsSigninRequiredAtIndex(profile_index); |
+ } |
+ |
private: |
ProfileManager* profile_manager_; |
base::WeakPtrFactory<ProfileStoreImpl> weak_factory_; |