1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_UI_WEBUI_EXTENSIONS_CHROMEOS_KIOSK_APPS_HANDLER_H_ 6 #define CHROME_BROWSER_UI_WEBUI_EXTENSIONS_CHROMEOS_KIOSK_APPS_HANDLER_H_ 7 8 #include <string> 9 10 #include "base/compiler_specific.h" 11 #include "base/memory/weak_ptr.h" 12 #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h" 13 #include "chrome/browser/chromeos/app_mode/kiosk_app_manager_observer.h" 14 #include "content/public/browser/web_ui_message_handler.h" 15 16 namespace base { 17 class DictionaryValue; 18 class ListValue; 19 } 20 21 namespace content { 22 class WebUIDataSource; 23 } 24 25 namespace chromeos { 26 27 class KioskAppManager; 28 29 class KioskAppsHandler : public content::WebUIMessageHandler, 30 public KioskAppManagerObserver { 31 public: 32 KioskAppsHandler(); 33 virtual ~KioskAppsHandler(); 34 35 void GetLocalizedValues(content::WebUIDataSource* source); 36 37 // content::WebUIMessageHandler overrides: 38 virtual void RegisterMessages() OVERRIDE; 39 40 // KioskAppPrefsObserver overrides: 41 virtual void OnKioskAppDataChanged(const std::string& app_id) OVERRIDE; 42 virtual void OnKioskAppDataLoadFailure(const std::string& app_id) OVERRIDE; 43 virtual void OnKioskAppsSettingsChanged() OVERRIDE; 44 45 private: 46 // Sends all kiosk apps and settings to webui. 47 void SendKioskAppSettings(); 48 49 // JS callbacks. 50 void HandleInitializeKioskAppSettings(const base::ListValue* args); 51 void HandleGetKioskAppSettings(const base::ListValue* args); 52 void HandleAddKioskApp(const base::ListValue* args); 53 void HandleRemoveKioskApp(const base::ListValue* args); 54 void HandleEnableKioskAutoLaunch(const base::ListValue* args); 55 void HandleDisableKioskAutoLaunch(const base::ListValue* args); 56 void HandleSetDisableBailoutShortcut(const base::ListValue* args); 57 58 // Callback for KioskAppManager::GetConsumerKioskModeStatus(). 59 void OnGetConsumerKioskAutoLaunchStatus( 60 chromeos::KioskAppManager::ConsumerKioskAutoLaunchStatus status); 61 62 KioskAppManager* kiosk_app_manager_; // not owned. 63 bool initialized_; 64 bool is_kiosk_enabled_; 65 bool is_auto_launch_enabled_; 66 base::WeakPtrFactory<KioskAppsHandler> weak_ptr_factory_; 67 68 DISALLOW_COPY_AND_ASSIGN(KioskAppsHandler); 69 }; 70 71 } // namespace chromeos 72 73 #endif // CHROME_BROWSER_UI_WEBUI_EXTENSIONS_CHROMEOS_KIOSK_APPS_HANDLER_H_ 74