| Index: chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.cc
|
| diff --git a/chrome/browser/ui/webui/options/chromeos/kiosk_apps_handler.cc b/chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.cc
|
| similarity index 69%
|
| rename from chrome/browser/ui/webui/options/chromeos/kiosk_apps_handler.cc
|
| rename to chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.cc
|
| index 7c7ee913145938c0592e8ed7f6e563755ed436c1..90466f84e7f46838a32073c9150e0144e024817f 100644
|
| --- a/chrome/browser/ui/webui/options/chromeos/kiosk_apps_handler.cc
|
| +++ b/chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.cc
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "chrome/browser/ui/webui/options/chromeos/kiosk_apps_handler.h"
|
| +#include "chrome/browser/ui/webui/extensions/chromeos/kiosk_apps_handler.h"
|
|
|
| #include <algorithm>
|
| #include <set>
|
| @@ -10,15 +10,18 @@
|
| #include <vector>
|
|
|
| #include "base/bind.h"
|
| -#include "base/lazy_instance.h"
|
| +#include "base/chromeos/chromeos_version.h"
|
| +#include "base/command_line.h"
|
| #include "base/memory/scoped_ptr.h"
|
| -#include "base/observer_list.h"
|
| -#include "base/string_util.h"
|
| #include "base/values.h"
|
| #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h"
|
| +#include "chrome/browser/chromeos/login/user_manager.h"
|
| +#include "chrome/browser/chromeos/settings/cros_settings.h"
|
| +#include "chrome/browser/chromeos/settings/cros_settings_names.h"
|
| #include "chrome/common/extensions/extension.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| +#include "chromeos/chromeos_switches.h"
|
| #include "content/public/browser/web_ui.h"
|
| +#include "content/public/browser/web_ui_data_source.h"
|
| #include "googleurl/src/gurl.h"
|
| #include "grit/chromium_strings.h"
|
| #include "grit/generated_resources.h"
|
| @@ -26,7 +29,6 @@
|
| #include "ui/webui/web_ui_util.h"
|
|
|
| namespace chromeos {
|
| -namespace options {
|
|
|
| namespace {
|
|
|
| @@ -97,8 +99,8 @@ KioskAppsHandler::~KioskAppsHandler() {
|
| }
|
|
|
| void KioskAppsHandler::RegisterMessages() {
|
| - web_ui()->RegisterMessageCallback("getKioskApps",
|
| - base::Bind(&KioskAppsHandler::HandleGetKioskApps,
|
| + web_ui()->RegisterMessageCallback("getKioskAppSettings",
|
| + base::Bind(&KioskAppsHandler::HandleGetKioskAppSettings,
|
| base::Unretained(this)));
|
| web_ui()->RegisterMessageCallback("addKioskApp",
|
| base::Bind(&KioskAppsHandler::HandleAddKioskApp,
|
| @@ -112,55 +114,64 @@ void KioskAppsHandler::RegisterMessages() {
|
| web_ui()->RegisterMessageCallback("disableKioskAutoLaunch",
|
| base::Bind(&KioskAppsHandler::HandleDisableKioskAutoLaunch,
|
| base::Unretained(this)));
|
| + web_ui()->RegisterMessageCallback("setDisableBailoutShortcut",
|
| + base::Bind(&KioskAppsHandler::HandleSetDisableBailoutShortcut,
|
| + base::Unretained(this)));
|
| }
|
|
|
| -void KioskAppsHandler::GetLocalizedValues(
|
| - base::DictionaryValue* localized_strings) {
|
| - DCHECK(localized_strings);
|
| -
|
| - RegisterTitle(localized_strings,
|
| - "kioskOverlayTitle",
|
| - IDS_OPTIONS_KIOSK_OVERLAY_TITLE);
|
| -
|
| - localized_strings->SetString(
|
| +void KioskAppsHandler::GetLocalizedValues(content::WebUIDataSource* source) {
|
| + source->AddBoolean(
|
| + "enableKiosk",
|
| + !CommandLine::ForCurrentProcess()->HasSwitch(
|
| + chromeos::switches::kDisableAppMode) &&
|
| + (chromeos::UserManager::Get()->IsCurrentUserOwner() ||
|
| + !base::chromeos::IsRunningOnChromeOS()));
|
| + source->AddString(
|
| + "addKioskAppButton",
|
| + l10n_util::GetStringUTF16(IDS_EXTENSIONS_ADD_KIOSK_APP_BUTTON));
|
| + source->AddString(
|
| + "kioskOverlayTitle",
|
| + l10n_util::GetStringUTF16(IDS_OPTIONS_KIOSK_OVERLAY_TITLE));
|
| + source->AddString(
|
| "addKioskApp",
|
| l10n_util::GetStringUTF16(IDS_OPTIONS_KIOSK_ADD_APP));
|
| - localized_strings->SetString(
|
| + source->AddString(
|
| "kioskAppIdEditHint",
|
| l10n_util::GetStringUTF16(IDS_OPTIONS_KIOSK_ADD_APP_HINT));
|
| - localized_strings->SetString(
|
| + source->AddString(
|
| "enableAutoLaunchButton",
|
| l10n_util::GetStringUTF16(IDS_OPTIONS_KIOSK_ENABLE_AUTO_LAUNCH));
|
| - localized_strings->SetString(
|
| + source->AddString(
|
| "disableAutoLaunchButton",
|
| l10n_util::GetStringUTF16(IDS_OPTIONS_KIOSK_DISABLE_AUTO_LAUNCH));
|
| - localized_strings->SetString(
|
| + source->AddString(
|
| "autoLaunch",
|
| l10n_util::GetStringUTF16(IDS_OPTIONS_KIOSK_AUTO_LAUNCH));
|
| - localized_strings->SetString(
|
| + source->AddString(
|
| "invalidApp",
|
| l10n_util::GetStringUTF16(IDS_OPTIONS_KIOSK_INVALID_APP));
|
| - localized_strings->SetString(
|
| + source->AddString(
|
| "kioskDiableBailoutShortcutLabel",
|
| l10n_util::GetStringUTF16(
|
| IDS_OPTIONS_KIOSK_DISABLE_BAILOUT_SHORTCUT_LABEL));
|
| - localized_strings->SetString(
|
| + source->AddString(
|
| "kioskDisableBailoutShortcutWarningBold",
|
| l10n_util::GetStringUTF16(
|
| IDS_OPTIONS_KIOSK_DISABLE_BAILOUT_SHORTCUT_WARNING_BOLD));
|
| const string16 product_os_name =
|
| l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_OS_NAME);
|
| - localized_strings->SetString(
|
| + source->AddString(
|
| "kioskDisableBailoutShortcutWarning",
|
| l10n_util::GetStringFUTF16(
|
| IDS_OPTIONS_KIOSK_DISABLE_BAILOUT_SHORTCUT_WARNING_FORMAT,
|
| product_os_name));
|
| - localized_strings->SetString(
|
| + source->AddString(
|
| "kioskDisableBailoutShortcutConfirm",
|
| l10n_util::GetStringUTF16(IDS_CONFIRM_MESSAGEBOX_YES_BUTTON_LABEL));
|
| - localized_strings->SetString(
|
| + source->AddString(
|
| "kioskDisableBailoutShortcutCancel",
|
| l10n_util::GetStringUTF16(IDS_CONFIRM_MESSAGEBOX_NO_BUTTON_LABEL));
|
| + source->AddString("done", l10n_util::GetStringUTF16(IDS_DONE));
|
| }
|
|
|
| void KioskAppsHandler::OnKioskAppDataChanged(const std::string& app_id) {
|
| @@ -171,39 +182,54 @@ void KioskAppsHandler::OnKioskAppDataChanged(const std::string& app_id) {
|
| base::DictionaryValue app_dict;
|
| PopulateAppDict(app_data, &app_dict);
|
|
|
| - web_ui()->CallJavascriptFunction("options.KioskAppsOverlay.updateApp",
|
| + web_ui()->CallJavascriptFunction("extensions.KioskAppsOverlay.updateApp",
|
| app_dict);
|
| }
|
|
|
| void KioskAppsHandler::OnKioskAppDataLoadFailure(const std::string& app_id) {
|
| base::StringValue app_id_value(app_id);
|
| - web_ui()->CallJavascriptFunction("options.KioskAppsOverlay.showError",
|
| + web_ui()->CallJavascriptFunction("extensions.KioskAppsOverlay.showError",
|
| app_id_value);
|
| }
|
|
|
| -void KioskAppsHandler::SendKioskApps() {
|
| +void KioskAppsHandler::OnKioskAppsSettingsChanged() {
|
| + SendKioskAppSettings();
|
| +}
|
| +
|
| +void KioskAppsHandler::SendKioskAppSettings() {
|
| if (!initialized_)
|
| return;
|
|
|
| + bool enable_bailout_shortcut;
|
| + if (!CrosSettings::Get()->GetBoolean(
|
| + kAccountsPrefDeviceLocalAccountAutoLoginBailoutEnabled,
|
| + &enable_bailout_shortcut)) {
|
| + enable_bailout_shortcut = true;
|
| + }
|
| +
|
| + base::DictionaryValue settings;
|
| + settings.SetBoolean("disableBailout", !enable_bailout_shortcut);
|
| +
|
| KioskAppManager::Apps apps;
|
| kiosk_app_manager_->GetApps(&apps);
|
|
|
| - base::ListValue apps_list;
|
| + scoped_ptr<base::ListValue> apps_list(new base::ListValue);
|
| for (size_t i = 0; i < apps.size(); ++i) {
|
| const KioskAppManager::App& app_data = apps[i];
|
|
|
| scoped_ptr<base::DictionaryValue> app_info(new base::DictionaryValue);
|
| PopulateAppDict(app_data, app_info.get());
|
| - apps_list.Append(app_info.release());
|
| + apps_list->Append(app_info.release());
|
| }
|
| + settings.SetWithoutPathExpansion("apps", apps_list.release());
|
|
|
| - web_ui()->CallJavascriptFunction("options.KioskAppsOverlay.setApps",
|
| - apps_list);
|
| + web_ui()->CallJavascriptFunction("extensions.KioskAppsOverlay.setSettings",
|
| + settings);
|
| }
|
|
|
| -void KioskAppsHandler::HandleGetKioskApps(const base::ListValue* args) {
|
| +void KioskAppsHandler::HandleGetKioskAppSettings(const base::ListValue* args) {
|
| initialized_ = true;
|
| - SendKioskApps();
|
| + SendKioskAppSettings();
|
| }
|
|
|
| void KioskAppsHandler::HandleAddKioskApp(const base::ListValue* args) {
|
| @@ -246,5 +272,14 @@ void KioskAppsHandler::HandleDisableKioskAutoLaunch(
|
| kiosk_app_manager_->SetAutoLaunchApp("");
|
| }
|
|
|
| -} // namespace options
|
| +void KioskAppsHandler::HandleSetDisableBailoutShortcut(
|
| + const base::ListValue* args) {
|
| + bool disable_bailout_shortcut;
|
| + CHECK(args->GetBoolean(0, &disable_bailout_shortcut));
|
| +
|
| + CrosSettings::Get()->SetBoolean(
|
| + kAccountsPrefDeviceLocalAccountAutoLoginBailoutEnabled,
|
| + !disable_bailout_shortcut);
|
| +}
|
| +
|
| } // namespace chromeos
|
|
|