summaryrefslogtreecommitdiffstats
path: root/chrome/browser/webdata
diff options
context:
space:
mode:
authorjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-23 18:31:32 +0000
committerjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-23 18:31:32 +0000
commit4c79e3e70d798f8b7d44db141500f42592470790 (patch)
tree51959a6e9f22bd43071c4819ba2f013eb17db9ef /chrome/browser/webdata
parent98d7127b558c6de8121ed9ff8c299b30afb6143b (diff)
downloadchromium_src-4c79e3e70d798f8b7d44db141500f42592470790.zip
chromium_src-4c79e3e70d798f8b7d44db141500f42592470790.tar.gz
chromium_src-4c79e3e70d798f8b7d44db141500f42592470790.tar.bz2
Break out FormFieldValues::Element into FormField, which will eventually hold more autofill data about each form field.
BUG=none TEST=none Review URL: http://codereview.chromium.org/306061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29913 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/webdata')
-rw-r--r--chrome/browser/webdata/web_data_service.cc11
-rw-r--r--chrome/browser/webdata/web_data_service.h7
-rw-r--r--chrome/browser/webdata/web_database.cc22
-rw-r--r--chrome/browser/webdata/web_database.h19
-rw-r--r--chrome/browser/webdata/web_database_unittest.cc56
5 files changed, 56 insertions, 59 deletions
diff --git a/chrome/browser/webdata/web_data_service.cc b/chrome/browser/webdata/web_data_service.cc
index cc52def..32e194e 100644
--- a/chrome/browser/webdata/web_data_service.cc
+++ b/chrome/browser/webdata/web_data_service.cc
@@ -9,7 +9,6 @@
#include "base/scoped_ptr.h"
#include "chrome/browser/search_engines/template_url.h"
#include "chrome/common/chrome_constants.h"
-#include "webkit/glue/form_field_values.h"
#include "webkit/glue/password_form.h"
////////////////////////////////////////////////////////////////////////////////
@@ -19,7 +18,7 @@
////////////////////////////////////////////////////////////////////////////////
using base::Time;
-using webkit_glue::FormFieldValues;
+using webkit_glue::FormField;
using webkit_glue::PasswordForm;
WebDataService::WebDataService() : thread_(NULL),
@@ -115,9 +114,9 @@ void WebDataService::CancelRequest(Handle h) {
}
void WebDataService::AddFormFieldValues(
- const std::vector<FormFieldValues::Element>& element) {
- GenericRequest<std::vector<FormFieldValues::Element> >* request =
- new GenericRequest<std::vector<FormFieldValues::Element> >(
+ const std::vector<FormField>& element) {
+ GenericRequest<std::vector<FormField> >* request =
+ new GenericRequest<std::vector<FormField> >(
this, GetNextRequestHandle(), NULL, element);
RegisterRequest(request);
ScheduleTask(NewRunnableMethod(this,
@@ -573,7 +572,7 @@ void WebDataService::GetBlacklistLoginsImpl(WebDataRequest* request) {
////////////////////////////////////////////////////////////////////////////////
void WebDataService::AddFormFieldValuesImpl(
- GenericRequest<std::vector<FormFieldValues::Element> >* request) {
+ GenericRequest<std::vector<FormField> >* request) {
if (db_ && !request->IsCancelled()) {
if (db_->AddFormFieldValues(request->GetArgument()))
ScheduleCommit();
diff --git a/chrome/browser/webdata/web_data_service.h b/chrome/browser/webdata/web_data_service.h
index 7226122..6794030 100644
--- a/chrome/browser/webdata/web_data_service.h
+++ b/chrome/browser/webdata/web_data_service.h
@@ -15,7 +15,7 @@
#include "base/scoped_vector.h"
#include "base/thread.h"
#include "chrome/browser/webdata/web_database.h"
-#include "webkit/glue/form_field_values.h"
+#include "webkit/glue/form_field.h"
#if defined(OS_WIN)
struct IE7PasswordInfo;
@@ -376,7 +376,7 @@ class WebDataService : public base::RefCountedThreadSafe<WebDataService> {
// Schedules a task to add form elements to the web database.
void AddFormFieldValues(
- const std::vector<webkit_glue::FormFieldValues::Element>& elements);
+ const std::vector<webkit_glue::FormField>& elements);
// Initiates the request for a vector of values which have been entered in
// form input fields named |name|. The method OnWebDataServiceRequestDone of
@@ -465,8 +465,7 @@ class WebDataService : public base::RefCountedThreadSafe<WebDataService> {
//
//////////////////////////////////////////////////////////////////////////////
void AddFormFieldValuesImpl(
- GenericRequest<std::vector<webkit_glue::FormFieldValues::Element> >*
- request);
+ GenericRequest<std::vector<webkit_glue::FormField> >* request);
void GetFormValuesForElementNameImpl(WebDataRequest* request,
const string16& name, const string16& prefix, int limit);
void RemoveFormElementsAddedBetweenImpl(
diff --git a/chrome/browser/webdata/web_database.cc b/chrome/browser/webdata/web_database.cc
index e163f56..ffe484c 100644
--- a/chrome/browser/webdata/web_database.cc
+++ b/chrome/browser/webdata/web_database.cc
@@ -27,6 +27,7 @@
// http://code.google.com/p/chromium/issues/detail?id=8205 (Linux)
#include "chrome/browser/password_manager/encryptor.h"
+using webkit_glue::FormField;
using webkit_glue::PasswordForm;
////////////////////////////////////////////////////////////////////////////////
@@ -99,7 +100,6 @@ using webkit_glue::PasswordForm;
////////////////////////////////////////////////////////////////////////////////
using base::Time;
-using webkit_glue::FormFieldValues;
// Current version number.
static const int kCurrentVersionNumber = 22;
@@ -803,9 +803,9 @@ bool WebDatabase::GetAllLogins(std::vector<PasswordForm*>* forms,
}
bool WebDatabase::AddFormFieldValues(
- const std::vector<FormFieldValues::Element>& elements) {
+ const std::vector<FormField>& elements) {
bool result = true;
- for (std::vector<FormFieldValues::Element>::const_iterator
+ for (std::vector<FormField>::const_iterator
itr = elements.begin();
itr != elements.end();
itr++) {
@@ -837,7 +837,7 @@ bool WebDatabase::ClearAutofillEmptyValueElements() {
}
bool WebDatabase::GetIDAndCountOfFormElement(
- const FormFieldValues::Element& element,
+ const FormField& element,
int64* pair_id,
int* count) {
sql::Statement s(db_.GetUniqueStatement(
@@ -848,8 +848,8 @@ bool WebDatabase::GetIDAndCountOfFormElement(
return false;
}
- s.BindString(0, UTF16ToUTF8(element.name));
- s.BindString(1, UTF16ToUTF8(element.value));
+ s.BindString(0, UTF16ToUTF8(element.name()));
+ s.BindString(1, UTF16ToUTF8(element.value()));
*count = 0;
@@ -878,7 +878,7 @@ bool WebDatabase::GetCountOfFormElement(int64 pair_id, int* count) {
return false;
}
-bool WebDatabase::InsertFormElement(const FormFieldValues::Element& element,
+bool WebDatabase::InsertFormElement(const FormField& element,
int64* pair_id) {
sql::Statement s(db_.GetUniqueStatement(
"INSERT INTO autofill (name, value, value_lower) VALUES (?,?,?)"));
@@ -887,9 +887,9 @@ bool WebDatabase::InsertFormElement(const FormFieldValues::Element& element,
return false;
}
- s.BindString(0, UTF16ToUTF8(element.name));
- s.BindString(1, UTF16ToUTF8(element.value));
- s.BindString(2, UTF16ToUTF8(l10n_util::ToLower(element.value)));
+ s.BindString(0, UTF16ToUTF8(element.name()));
+ s.BindString(1, UTF16ToUTF8(element.value()));
+ s.BindString(2, UTF16ToUTF8(l10n_util::ToLower(element.value())));
if (!s.Run()) {
NOTREACHED();
@@ -939,7 +939,7 @@ bool WebDatabase::SetCountOfFormElement(int64 pair_id, int count) {
return true;
}
-bool WebDatabase::AddFormFieldValue(const FormFieldValues::Element& element) {
+bool WebDatabase::AddFormFieldValue(const FormField& element) {
int count = 0;
int64 pair_id;
diff --git a/chrome/browser/webdata/web_database.h b/chrome/browser/webdata/web_database.h
index cc73e9b..32abb4b 100644
--- a/chrome/browser/webdata/web_database.h
+++ b/chrome/browser/webdata/web_database.h
@@ -14,7 +14,7 @@
#include "chrome/browser/search_engines/template_url.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "testing/gtest/include/gtest/gtest_prod.h"
-#include "webkit/glue/form_field_values.h"
+#include "webkit/glue/form_field.h"
class FilePath;
@@ -132,12 +132,10 @@ class WebDatabase {
// Records the form elements in |elements| in the database in the autofill
// table.
- bool AddFormFieldValues(
- const std::vector<webkit_glue::FormFieldValues::Element>& elements);
+ bool AddFormFieldValues(const std::vector<webkit_glue::FormField>& elements);
// Records a single form element in in the database in the autofill table.
- bool AddFormFieldValue(
- const webkit_glue::FormFieldValues::Element& element);
+ bool AddFormFieldValue(const webkit_glue::FormField& element);
// Retrieves a vector of all values which have been recorded in the autofill
// table as the value in a form element with name |name| and which start with
@@ -167,10 +165,9 @@ class WebDatabase {
// Gets the pair_id and count entries from name and value specified in
// |element|. Sets *count to 0 if there is no such row in the table.
- bool GetIDAndCountOfFormElement(
- const webkit_glue::FormFieldValues::Element& element,
- int64* pair_id,
- int* count);
+ bool GetIDAndCountOfFormElement(const webkit_glue::FormField& element,
+ int64* pair_id,
+ int* count);
// Gets the count only given the pair_id.
bool GetCountOfFormElement(int64 pair_id, int* count);
@@ -180,9 +177,7 @@ class WebDatabase {
// Adds a new row to the autofill table with name and value given in
// |element|. Sets *pair_id to the pair_id of the new row.
- bool InsertFormElement(
- const webkit_glue::FormFieldValues::Element& element,
- int64* pair_id);
+ bool InsertFormElement(const webkit_glue::FormField& element, int64* pair_id);
// Adds a new row to the autofill_dates table.
bool InsertPairIDAndDate(int64 pair_id, base::Time date_created);
diff --git a/chrome/browser/webdata/web_database_unittest.cc b/chrome/browser/webdata/web_database_unittest.cc
index f6ac53b..2e043f4 100644
--- a/chrome/browser/webdata/web_database_unittest.cc
+++ b/chrome/browser/webdata/web_database_unittest.cc
@@ -13,12 +13,12 @@
#include "chrome/common/chrome_paths.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "webkit/glue/form_field_values.h"
+#include "webkit/glue/form_field.h"
#include "webkit/glue/password_form.h"
using base::Time;
using base::TimeDelta;
-using webkit_glue::FormFieldValues;
+using webkit_glue::FormField;
using webkit_glue::PasswordForm;
class WebDatabaseTest : public testing::Test {
@@ -392,23 +392,27 @@ TEST_F(WebDatabaseTest, Autofill) {
// Simulate the submission of a handful of entries in a field called "Name",
// some more often than others.
EXPECT_TRUE(db.AddFormFieldValue(
- FormFieldValues::Element(ASCIIToUTF16("Name"),
- ASCIIToUTF16("Superman"))));
+ FormField(NULL,
+ ASCIIToUTF16("Name"),
+ ASCIIToUTF16("Superman"))));
std::vector<string16> v;
for (int i = 0; i < 5; i++) {
EXPECT_TRUE(db.AddFormFieldValue(
- FormFieldValues::Element(ASCIIToUTF16("Name"),
- ASCIIToUTF16("Clark Kent"))));
+ FormField(NULL,
+ ASCIIToUTF16("Name"),
+ ASCIIToUTF16("Clark Kent"))));
}
for (int i = 0; i < 3; i++) {
EXPECT_TRUE(db.AddFormFieldValue(
- FormFieldValues::Element(ASCIIToUTF16("Name"),
- ASCIIToUTF16("Clark Sutter"))));
+ FormField(NULL,
+ ASCIIToUTF16("Name"),
+ ASCIIToUTF16("Clark Sutter"))));
}
for (int i = 0; i < 2; i++) {
EXPECT_TRUE(db.AddFormFieldValue(
- FormFieldValues::Element(ASCIIToUTF16("Favorite Color"),
- ASCIIToUTF16("Green"))));
+ FormField(NULL,
+ ASCIIToUTF16("Favorite Color"),
+ ASCIIToUTF16("Green"))));
}
int count = 0;
@@ -417,8 +421,7 @@ TEST_F(WebDatabaseTest, Autofill) {
// We have added the name Clark Kent 5 times, so count should be 5 and pair_id
// should be somthing non-zero.
EXPECT_TRUE(db.GetIDAndCountOfFormElement(
- FormFieldValues::Element(ASCIIToUTF16("Name"),
- ASCIIToUTF16("Clark Kent")),
+ FormField(NULL, ASCIIToUTF16("Name"), ASCIIToUTF16("Clark Kent")),
&pair_id, &count));
EXPECT_EQ(5, count);
EXPECT_NE(0, pair_id);
@@ -426,14 +429,12 @@ TEST_F(WebDatabaseTest, Autofill) {
// Storing in the data base should be case sensitive, so there should be no
// database entry for clark kent lowercase.
EXPECT_TRUE(db.GetIDAndCountOfFormElement(
- FormFieldValues::Element(ASCIIToUTF16("Name"),
- ASCIIToUTF16("clark kent")),
+ FormField(NULL, ASCIIToUTF16("Name"), ASCIIToUTF16("clark kent")),
&pair_id, &count));
EXPECT_EQ(0, count);
EXPECT_TRUE(db.GetIDAndCountOfFormElement(
- FormFieldValues::Element(ASCIIToUTF16("Favorite Color"),
- ASCIIToUTF16("Green")),
+ FormField(NULL, ASCIIToUTF16("Favorite Color"), ASCIIToUTF16("Green")),
&pair_id, &count));
EXPECT_EQ(2, count);
@@ -474,8 +475,7 @@ TEST_F(WebDatabaseTest, Autofill) {
EXPECT_TRUE(db.RemoveFormElementsAddedBetween(t1, Time()));
EXPECT_TRUE(db.GetIDAndCountOfFormElement(
- FormFieldValues::Element(ASCIIToUTF16("Name"),
- ASCIIToUTF16("Clark Kent")),
+ FormField(NULL, ASCIIToUTF16("Name"), ASCIIToUTF16("Clark Kent")),
&pair_id, &count));
EXPECT_EQ(0, count);
@@ -485,14 +485,18 @@ TEST_F(WebDatabaseTest, Autofill) {
// Now add some values with empty strings.
const string16 kValue = ASCIIToUTF16(" toto ");
- EXPECT_TRUE(db.AddFormFieldValue(
- FormFieldValues::Element(ASCIIToUTF16("blank"), string16())));
- EXPECT_TRUE(db.AddFormFieldValue(
- FormFieldValues::Element(ASCIIToUTF16("blank"), ASCIIToUTF16(" "))));
- EXPECT_TRUE(db.AddFormFieldValue(
- FormFieldValues::Element(ASCIIToUTF16("blank"), ASCIIToUTF16(" "))));
- EXPECT_TRUE(db.AddFormFieldValue(
- FormFieldValues::Element(ASCIIToUTF16("blank"), kValue)));
+ EXPECT_TRUE(db.AddFormFieldValue(FormField(NULL,
+ ASCIIToUTF16("blank"),
+ string16())));
+ EXPECT_TRUE(db.AddFormFieldValue(FormField(NULL,
+ ASCIIToUTF16("blank"),
+ ASCIIToUTF16(" "))));
+ EXPECT_TRUE(db.AddFormFieldValue(FormField(NULL,
+ ASCIIToUTF16("blank"),
+ ASCIIToUTF16(" "))));
+ EXPECT_TRUE(db.AddFormFieldValue(FormField(NULL,
+ ASCIIToUTF16("blank"),
+ kValue)));
// They should be stored normally as the DB layer does not check for empty
// values.