summaryrefslogtreecommitdiffstats
path: root/chrome/browser/dom_ui/textfields_ui.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/dom_ui/textfields_ui.h')
-rw-r--r--chrome/browser/dom_ui/textfields_ui.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/chrome/browser/dom_ui/textfields_ui.h b/chrome/browser/dom_ui/textfields_ui.h
new file mode 100644
index 0000000..f70d45e
--- /dev/null
+++ b/chrome/browser/dom_ui/textfields_ui.h
@@ -0,0 +1,71 @@
+// Copyright (c) 2010 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_DOM_UI_TEXTFIELDS_UI_H_
+#define CHROME_BROWSER_DOM_UI_TEXTFIELDS_UI_H_
+#pragma once
+
+#include <string>
+
+#include "chrome/browser/dom_ui/chrome_url_data_manager.h"
+#include "chrome/browser/dom_ui/dom_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_off_the_record,
+ 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 DOMMessageHandler {
+ 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 DOMUI {
+ 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_DOM_UI_TEXTFIELDS_UI_H_