Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2999)

Unified Diff: chrome/browser/ui/webui/chromeos/login/kiosk_app_menu_handler.cc

Issue 2498613003: Add ARC++ kiosk menu items and ability to start kiosk session. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698