// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_UI_WEBUI_VERSION_HANDLER_H_ #define CHROME_BROWSER_UI_WEBUI_VERSION_HANDLER_H_ #include #include "base/memory/weak_ptr.h" #include "base/values.h" #include "content/public/browser/web_ui_message_handler.h" #include "content/public/common/webplugininfo.h" // Handler class for Version page operations. class VersionHandler : public content::WebUIMessageHandler { public: VersionHandler(); virtual ~VersionHandler(); // content::WebUIMessageHandler implementation. virtual void RegisterMessages() OVERRIDE; // Callback for the "requestVersionInfo" message. This asynchronously requests // the flash version and eventually returns it to the front end along with the // list of variations using OnGotPlugins. virtual void HandleRequestVersionInfo(const ListValue* args); private: // Callback which handles returning the executable and profile paths to the // front end. void OnGotFilePaths(base::string16* executable_path_data, base::string16* profile_path_data); // Callback for GetPlugins which responds to the page with the Flash version. // This also initiates the OS Version load on ChromeOS. void OnGotPlugins(const std::vector& plugins); // Factory for the creating refs in callbacks. base::WeakPtrFactory weak_ptr_factory_; DISALLOW_COPY_AND_ASSIGN(VersionHandler); }; #endif // CHROME_BROWSER_UI_WEBUI_VERSION_HANDLER_H_