1// Copyright (c) 2012 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_CHROMEOS_CRYPTOHOME_WEB_UI_HANDLER_H_ 6#define CHROME_BROWSER_UI_WEBUI_CHROMEOS_CRYPTOHOME_WEB_UI_HANDLER_H_ 7 8#include <string> 9 10#include "base/basictypes.h" 11#include "base/memory/weak_ptr.h" 12#include "chromeos/dbus/dbus_method_call_status.h" 13#include "content/public/browser/web_ui_message_handler.h" 14 15namespace base { 16 17class Value; 18 19} // base 20 21namespace chromeos { 22 23// Class to handle messages from chrome://cryptohome. 24class CryptohomeWebUIHandler : public content::WebUIMessageHandler { 25 public: 26 CryptohomeWebUIHandler(); 27 28 virtual ~CryptohomeWebUIHandler(); 29 30 // WebUIMessageHandler override. 31 virtual void RegisterMessages() OVERRIDE; 32 33 private: 34 // This method is called from JavaScript. 35 void OnPageLoaded(const base::ListValue* args); 36 37 void DidGetNSSUtilInfoOnUIThread(bool is_tpm_token_ready); 38 39 // Returns a callback to handle Cryptohome property values. 40 BoolDBusMethodCallback GetCryptohomeBoolCallback( 41 const std::string& destination_id); 42 43 // This method is called when Cryptohome D-Bus method call completes. 44 void OnCryptohomeBoolProperty(const std::string& destination_id, 45 DBusMethodCallStatus call_status, 46 bool value); 47 48 // Sets textcontent of the element whose id is |destination_id| to |value|. 49 void SetCryptohomeProperty(const std::string& destination_id, 50 const base::Value& value); 51 52 base::WeakPtrFactory<CryptohomeWebUIHandler> weak_ptr_factory_; 53 DISALLOW_COPY_AND_ASSIGN(CryptohomeWebUIHandler); 54}; 55 56} // namespace chromeos 57 58#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_CRYPTOHOME_WEB_UI_HANDLER_H_ 59