Index: chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc |
diff --git a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc |
index 1139ce0ebe69268f4fec40a2d1a2c30b71449945..8ddbcd0bcbf9c345598c36c62882143e79e30ac2 100644 |
--- a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc |
+++ b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc |
@@ -71,10 +71,12 @@ |
#include "components/signin/core/account_id/account_id.h" |
#include "components/user_manager/known_user.h" |
#include "components/user_manager/remove_user_delegate.h" |
+#include "components/user_manager/user.h" |
#include "components/user_manager/user_image/user_image.h" |
#include "components/user_manager/user_type.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/notification_service.h" |
+#include "extensions/common/features/feature_session_type.h" |
#include "ui/base/l10n/l10n_util.h" |
#include "ui/base/resource/resource_bundle.h" |
#include "ui/chromeos/resources/grit/ui_chromeos_resources.h" |
@@ -145,6 +147,19 @@ bool GetUserLockAttributes(const user_manager::User* user, |
return true; |
} |
+extensions::FeatureSessionType GetFeatureSessionTypeForUser( |
+ const user_manager::User* user) { |
+ switch (user->GetType()) { |
+ case user_manager::USER_TYPE_REGULAR: |
+ return extensions::FeatureSessionType::REGULAR; |
+ case user_manager::USER_TYPE_KIOSK_APP: |
+ return extensions::FeatureSessionType::KIOSK; |
+ default: |
+ // The rest of user types is not used by extensions features. |
+ return extensions::FeatureSessionType::UNKNOWN; |
+ } |
+} |
+ |
} // namespace |
// static |
@@ -1237,6 +1252,11 @@ void ChromeUserManagerImpl::UpdateLoginState( |
bool is_current_user_owner) const { |
chrome_user_manager_util::UpdateLoginState(active_user, primary_user, |
is_current_user_owner); |
+ // If a user is logged in, update session type as seen by extensions system. |
+ if (active_user) { |
+ extensions::SetCurrentFeatureSessionType( |
+ GetFeatureSessionTypeForUser(active_user)); |
+ } |
} |
bool ChromeUserManagerImpl::GetPlatformKnownUserId( |