// Copyright (c) 2011 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_TEXTFIELDS_UI_H_ #define CHROME_BROWSER_UI_WEBUI_TEXTFIELDS_UI_H_ #pragma once #include <string> #include "chrome/browser/ui/webui/chrome_url_data_manager.h" #include "content/browser/webui/web_ui.h" class RefCountedMemory; /** * ChromeURLDataManager::DataSource implementation that asynchronously answers * requests for chrome://textfields URL. On receiving a request, this object * reads the html from the local resource textfields.html and sends back the * response. */ class TextfieldsUIHTMLSource : public ChromeURLDataManager::DataSource { public: TextfieldsUIHTMLSource(); // Called when the network layer has requested a resource underneath // the path we registered. virtual void StartDataRequest(const std::string& path, bool is_incognito, int request_id); virtual std::string GetMimeType(const std::string& path) const; private: virtual ~TextfieldsUIHTMLSource(); DISALLOW_COPY_AND_ASSIGN(TextfieldsUIHTMLSource); }; /** * Handler for JavaScript calls from the DOM. */ class TextfieldsDOMHandler : public WebUIMessageHandler { public: TextfieldsDOMHandler(); // Handles the "textfieldValue" call from the JavaScript. This call // synchonizes the value inside the JavaScript textfield with the copy in the // DOM object. virtual void HandleTextfieldValue(const ListValue* args); protected: virtual void RegisterMessages(); private: DISALLOW_COPY_AND_ASSIGN(TextfieldsDOMHandler); }; class TextfieldsUI : public WebUI { public: explicit TextfieldsUI(TabContents* contents); const std::wstring& text() const { return text_; } void set_text(const std::wstring& text) { text_ = text; } private: std::wstring text_; DISALLOW_COPY_AND_ASSIGN(TextfieldsUI); }; #endif // CHROME_BROWSER_UI_WEBUI_TEXTFIELDS_UI_H_