| Index: chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.cc
|
| diff --git a/chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.cc b/chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.cc
|
| index 9f361ed23a29c2150950721ab2a2bc6b3ee6f01e..d0136b20d2ba960dfdf1088a68ff9607bcfebf68 100644
|
| --- a/chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.cc
|
| +++ b/chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.cc
|
| @@ -15,6 +15,7 @@
|
| #include "base/values.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/chrome_notification_types.h"
|
| +#include "chrome/browser/chromeos/app_mode/arc/arc_kiosk_app_manager.h"
|
| #include "chrome/browser/chromeos/app_mode/kiosk_app_launch_error.h"
|
| #include "chrome/browser/chromeos/login/existing_user_controller.h"
|
| #include "chrome/browser/chromeos/login/screens/network_error.h"
|
| @@ -47,11 +48,13 @@ KioskAppMenuHandler::KioskAppMenuHandler(
|
| weak_ptr_factory_(this) {
|
| KioskAppManager::Get()->AddObserver(this);
|
| network_state_informer_->AddObserver(this);
|
| + ArcKioskAppManager::Get()->AddObserver(this);
|
| }
|
|
|
| KioskAppMenuHandler::~KioskAppMenuHandler() {
|
| KioskAppManager::Get()->RemoveObserver(this);
|
| network_state_informer_->RemoveObserver(this);
|
| + ArcKioskAppManager::Get()->RemoveObserver(this);
|
| }
|
|
|
| void KioskAppMenuHandler::GetLocalizedStrings(
|
| @@ -103,9 +106,13 @@ void KioskAppMenuHandler::SendKioskApps() {
|
| for (size_t i = 0; i < apps.size(); ++i) {
|
| const KioskAppManager::App& app_data = apps[i];
|
|
|
| - std::unique_ptr<base::DictionaryValue> app_info(new base::DictionaryValue);
|
| + std::unique_ptr<base::DictionaryValue> app_info(
|
| + new base::DictionaryValue());
|
| app_info->SetBoolean("isApp", true);
|
| app_info->SetString("id", app_data.app_id);
|
| + app_info->SetBoolean("isAndroidApp", false);
|
| + // Unused for native apps. Added for consistency with Android apps.
|
| + app_info->SetString("account_email", app_data.account_id.GetUserEmail());
|
| app_info->SetString("label", app_data.name);
|
|
|
| std::string icon_url;
|
| @@ -122,6 +129,26 @@ void KioskAppMenuHandler::SendKioskApps() {
|
| apps_list.Append(std::move(app_info));
|
| }
|
|
|
| + const auto& arc_apps = ArcKioskAppManager::Get()->GetAllApps();
|
| + for (size_t i = 0; i < arc_apps.size(); ++i) {
|
| + std::unique_ptr<base::DictionaryValue> app_info(
|
| + new base::DictionaryValue());
|
| + app_info->SetBoolean("isApp", true);
|
| + app_info->SetBoolean("isAndroidApp", true);
|
| + app_info->SetString("id", arc_apps[i].app_info().package_name());
|
| + app_info->SetString("account_email",
|
| + arc_apps[i].account_id().GetUserEmail());
|
| + app_info->SetString("label", arc_apps[i].name());
|
| +
|
| + std::string icon_url =
|
| + webui::GetBitmapDataUrl(*ResourceBundle::GetSharedInstance()
|
| + .GetImageNamed(IDR_APP_DEFAULT_ICON)
|
| + .ToSkBitmap());
|
| + app_info->SetString("iconUrl", icon_url);
|
| +
|
| + apps_list.Append(std::move(app_info));
|
| + }
|
| +
|
| web_ui()->CallJavascriptFunctionUnsafe(
|
| EnableNewKioskUI() ? kKioskSetAppsNewAPI : kKioskSetAppsOldAPI,
|
| apps_list);
|
| @@ -173,4 +200,8 @@ void KioskAppMenuHandler::UpdateState(NetworkError::ErrorReason reason) {
|
| KioskAppManager::Get()->RetryFailedAppDataFetch();
|
| }
|
|
|
| +void KioskAppMenuHandler::OnArcKioskAppsChanged() {
|
| + SendKioskApps();
|
| +}
|
| +
|
| } // namespace chromeos
|
|
|