1dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// found in the LICENSE file. 4bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 5dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#ifndef CHROME_BROWSER_UI_WEBUI_OPTIONS_ABOUT_PAGE_HANDLER_H_ 6dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#define CHROME_BROWSER_UI_WEBUI_OPTIONS_ABOUT_PAGE_HANDLER_H_ 7bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 8bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include <string> 9bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 10dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "chrome/browser/ui/webui/options/options_ui.h" 11bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 12bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#if defined(OS_CHROMEOS) 13bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "chrome/browser/chromeos/cros/update_library.h" 14bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "chrome/browser/chromeos/version_loader.h" 15bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#endif 16bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 17bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// ChromeOS about page UI handler. 18bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass AboutPageHandler : public OptionsPageUIHandler { 19bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen public: 20bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen AboutPageHandler(); 21bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen virtual ~AboutPageHandler(); 22bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 23dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // OptionsPageUIHandler implementation. 24bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen virtual void GetLocalizedValues(DictionaryValue* localized_strings); 25bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen virtual void RegisterMessages(); 26bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 27bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen private: 28513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch // The function is called from JavaScript when the about page is ready. 29bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen void PageReady(const ListValue* args); 30bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 31513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch // The function is called from JavaScript to set the release track like 32513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch // "beta-channel" and "dev-channel". 33513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch void SetReleaseTrack(const ListValue* args); 34513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 35bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#if defined(OS_CHROMEOS) 36513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch // Initiates update check. 37bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen void CheckNow(const ListValue* args); 38513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 39513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch // Restarts the system. 40513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch void RestartNow(const ListValue* args); 41513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 42bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Callback from chromeos::VersionLoader giving the version. 43bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen void OnOSVersion(chromeos::VersionLoader::Handle handle, 44bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string version); 45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen void OnOSFirmware(chromeos::VersionLoader::Handle handle, 46ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen std::string firmware); 47bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen void UpdateStatus(const chromeos::UpdateLibrary::Status& status); 48bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 49ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // UpdateEngine Callback handler. 50ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen static void UpdateSelectedChannel(void* user_data, const char* channel); 51ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 52bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Handles asynchronously loading the version. 53bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen chromeos::VersionLoader loader_; 54bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 55bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Used to request the version. 56bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen CancelableRequestConsumer consumer_; 57bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 58bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Update Observer 59bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen class UpdateObserver; 60bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen scoped_ptr<UpdateObserver> update_observer_; 61bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 62bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen int progress_; 63bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool sticky_; 64bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool started_; 65bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#endif 66bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 67bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen DISALLOW_COPY_AND_ASSIGN(AboutPageHandler); 68bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 69bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 70dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#endif // CHROME_BROWSER_UI_WEBUI_OPTIONS_ABOUT_PAGE_HANDLER_H_ 71