diff options
author | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-23 18:31:32 +0000 |
---|---|---|
committer | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-23 18:31:32 +0000 |
commit | 4c79e3e70d798f8b7d44db141500f42592470790 (patch) | |
tree | 51959a6e9f22bd43071c4819ba2f013eb17db9ef /chrome/browser/webdata | |
parent | 98d7127b558c6de8121ed9ff8c299b30afb6143b (diff) | |
download | chromium_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.cc | 11 | ||||
-rw-r--r-- | chrome/browser/webdata/web_data_service.h | 7 | ||||
-rw-r--r-- | chrome/browser/webdata/web_database.cc | 22 | ||||
-rw-r--r-- | chrome/browser/webdata/web_database.h | 19 | ||||
-rw-r--r-- | chrome/browser/webdata/web_database_unittest.cc | 56 |
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. |