• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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_TEXTFIELDS_UI_H_
6 #define CHROME_BROWSER_UI_WEBUI_TEXTFIELDS_UI_H_
7 #pragma once
8 
9 #include <string>
10 
11 #include "chrome/browser/ui/webui/chrome_url_data_manager.h"
12 #include "content/browser/webui/web_ui.h"
13 
14 class RefCountedMemory;
15 
16 /**
17  * ChromeURLDataManager::DataSource implementation that asynchronously answers
18  * requests for chrome://textfields URL. On receiving a request, this object
19  * reads the html from the local resource textfields.html and sends back the
20  * response.
21  */
22 class TextfieldsUIHTMLSource : public ChromeURLDataManager::DataSource {
23  public:
24   TextfieldsUIHTMLSource();
25 
26   // Called when the network layer has requested a resource underneath
27   // the path we registered.
28   virtual void StartDataRequest(const std::string& path,
29                                 bool is_incognito,
30                                 int request_id);
31   virtual std::string GetMimeType(const std::string& path) const;
32 
33  private:
34   virtual ~TextfieldsUIHTMLSource();
35 
36   DISALLOW_COPY_AND_ASSIGN(TextfieldsUIHTMLSource);
37 };
38 
39 /**
40  * Handler for JavaScript calls from the DOM.
41  */
42 class TextfieldsDOMHandler : public WebUIMessageHandler {
43  public:
44   TextfieldsDOMHandler();
45 
46   // Handles the "textfieldValue" call from the JavaScript. This call
47   // synchonizes the value inside the JavaScript textfield with the copy in the
48   // DOM object.
49   virtual void HandleTextfieldValue(const ListValue* args);
50 
51  protected:
52   virtual void RegisterMessages();
53 
54  private:
55   DISALLOW_COPY_AND_ASSIGN(TextfieldsDOMHandler);
56 };
57 
58 class TextfieldsUI : public WebUI {
59  public:
60   explicit TextfieldsUI(TabContents* contents);
61 
text()62   const std::wstring& text() const { return text_; }
set_text(const std::wstring & text)63   void set_text(const std::wstring& text) { text_ = text; }
64 
65  private:
66   std::wstring text_;
67 
68   DISALLOW_COPY_AND_ASSIGN(TextfieldsUI);
69 };
70 
71 #endif  // CHROME_BROWSER_UI_WEBUI_TEXTFIELDS_UI_H_
72