diff options
author | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-15 17:21:10 +0000 |
---|---|---|
committer | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-15 17:21:10 +0000 |
commit | daa8c58ee49795d292312bbf217999c93693919c (patch) | |
tree | 561a327f148d74b0522871f15103e25a27b841f5 /chrome/browser/webdata | |
parent | 0b97342d07fd3ef047432b52809d31d10432ee85 (diff) | |
download | chromium_src-daa8c58ee49795d292312bbf217999c93693919c.zip chromium_src-daa8c58ee49795d292312bbf217999c93693919c.tar.gz chromium_src-daa8c58ee49795d292312bbf217999c93693919c.tar.bz2 |
Extract form related classes from the guts of WebFrameImpl.
Instead of having WebFrameImpl generate SearchableFormData, PasswordForm, and AutofillForm classes, allow the embedder (RenderView) to do so.
This is done to help minimize the dependencies WebFrameImpl has on other code, which will make it easier to move WebFrame and WebDataSource into the WebKit API.
Most significant change: Now, RenderView always sets a NavigationState on WebDataSource instances. We used to only do so for browser initiated navigations. This is done so that we can store things like SearchableFormData and friends on the NavigationState.
To facilitate this change, it was necessary to add a way through the WebKit API to refer to a HTMLFormElement. This CL introduces WebForm, which is like a RefPtr<HTMLFormElement>, so you can just copy a WebForm around by value and the right thing happens.
Some of the other changes are about moving more things into the webkit_glue namespace. On hindsight, I probably should have done that as a separate CL.
BUG=10041
TEST=none
R=brettw
Review URL: http://codereview.chromium.org/126083
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18395 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/webdata')
-rw-r--r-- | chrome/browser/webdata/web_data_service.cc | 1 | ||||
-rw-r--r-- | chrome/browser/webdata/web_data_service.h | 4 | ||||
-rw-r--r-- | chrome/browser/webdata/web_database.cc | 1 | ||||
-rw-r--r-- | chrome/browser/webdata/web_database.h | 16 | ||||
-rw-r--r-- | chrome/browser/webdata/web_database_unittest.cc | 1 |
5 files changed, 15 insertions, 8 deletions
diff --git a/chrome/browser/webdata/web_data_service.cc b/chrome/browser/webdata/web_data_service.cc index e514847..7dbf1eb 100644 --- a/chrome/browser/webdata/web_data_service.cc +++ b/chrome/browser/webdata/web_data_service.cc @@ -19,6 +19,7 @@ //////////////////////////////////////////////////////////////////////////////// using base::Time; +using webkit_glue::AutofillForm; WebDataService::WebDataService() : thread_(NULL), db_(NULL), diff --git a/chrome/browser/webdata/web_data_service.h b/chrome/browser/webdata/web_data_service.h index 4c38e1b..212e958 100644 --- a/chrome/browser/webdata/web_data_service.h +++ b/chrome/browser/webdata/web_data_service.h @@ -368,7 +368,7 @@ class WebDataService : public base::RefCountedThreadSafe<WebDataService> { // Schedules a task to add form elements to the web database. void AddAutofillFormElements( - const std::vector<AutofillForm::Element>& elements); + const std::vector<webkit_glue::AutofillForm::Element>& elements); // Initiates the request for a vector of values which have been entered in // form input fields named |name|. The method OnWebDataServiceRequestDone of @@ -457,7 +457,7 @@ class WebDataService : public base::RefCountedThreadSafe<WebDataService> { // ////////////////////////////////////////////////////////////////////////////// void AddAutofillFormElementsImpl( - GenericRequest<std::vector<AutofillForm::Element> >* request); + GenericRequest<std::vector<webkit_glue::AutofillForm::Element> >* request); void GetFormValuesForElementNameImpl(WebDataRequest* request, const std::wstring& name, const std::wstring& prefix, int limit); void RemoveFormElementsAddedBetweenImpl( diff --git a/chrome/browser/webdata/web_database.cc b/chrome/browser/webdata/web_database.cc index e6a1731..8914906 100644 --- a/chrome/browser/webdata/web_database.cc +++ b/chrome/browser/webdata/web_database.cc @@ -94,6 +94,7 @@ //////////////////////////////////////////////////////////////////////////////// using base::Time; +using webkit_glue::AutofillForm; // Current version number. static const int kCurrentVersionNumber = 22; diff --git a/chrome/browser/webdata/web_database.h b/chrome/browser/webdata/web_database.h index 3b5197b..c4d0d23 100644 --- a/chrome/browser/webdata/web_database.h +++ b/chrome/browser/webdata/web_database.h @@ -127,10 +127,11 @@ class WebDatabase { // Records the form elements in |elements| in the database in the autofill // table. bool AddAutofillFormElements( - const std::vector<AutofillForm::Element>& elements); + const std::vector<webkit_glue::AutofillForm::Element>& elements); // Records a single form element in in the database in the autofill table. - bool AddAutofillFormElement(const AutofillForm::Element& element); + bool AddAutofillFormElement( + const webkit_glue::AutofillForm::Element& 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 @@ -160,9 +161,10 @@ 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 AutofillForm::Element& element, - int64* pair_id, - int* count) const; + bool GetIDAndCountOfFormElement( + const webkit_glue::AutofillForm::Element& element, + int64* pair_id, + int* count) const; // Gets the count only given the pair_id. bool GetCountOfFormElement(int64 pair_id, @@ -173,7 +175,9 @@ 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 AutofillForm::Element& element, int64* pair_id); + bool InsertFormElement( + const webkit_glue::AutofillForm::Element& element, + int64* pair_id); // Adds a new row to the autofill_dates table. bool InsertPairIDAndDate(int64 pair_id, const base::Time date_created); diff --git a/chrome/browser/webdata/web_database_unittest.cc b/chrome/browser/webdata/web_database_unittest.cc index 4c27b1e..a456f91 100644 --- a/chrome/browser/webdata/web_database_unittest.cc +++ b/chrome/browser/webdata/web_database_unittest.cc @@ -18,6 +18,7 @@ using base::Time; using base::TimeDelta; +using webkit_glue::AutofillForm; class WebDatabaseTest : public testing::Test { protected: |