Index: chrome/browser/autofill/autofill_download.h |
=================================================================== |
--- chrome/browser/autofill/autofill_download.h (revision 72523) |
+++ chrome/browser/autofill/autofill_download.h (working copy) |
@@ -6,8 +6,10 @@ |
#define CHROME_BROWSER_AUTOFILL_AUTOFILL_DOWNLOAD_H_ |
#pragma once |
+#include <list> |
#include <map> |
#include <string> |
+#include <vector> |
#include "base/scoped_vector.h" |
#include "base/time.h" |
@@ -106,6 +108,25 @@ |
bool StartRequest(const std::string& form_xml, |
const FormRequestData& request_data); |
+ // Each request is page visited. We store last |number_of_forms_to_cache| |
+ // request, to avoid going over the wire. Set to 16 in constructor. Warning: |
+ // the search is linear (newest first), so do not make the constant very big. |
+ void set_number_of_forms_to_cache(size_t number_of_forms_to_cache) { |
+ number_of_forms_to_cache_ = number_of_forms_to_cache; |
+ } |
+ |
+ // Caches query request. |forms_in_query| is a vector of form signatures in |
+ // the query. |query_data| is the successfull data returned over the wire. |
+ void CacheQueryRequest(std::vector<std::string> const& forms_in_query, |
dhollowa
2011/01/25 23:33:02
|const| in front of argument type please. And els
GeorgeY
2011/01/25 23:51:30
Done.
|
+ std::string const& query_data); |
+ // Returns true if query is in the cache, while filling |query_data|, false |
+ // otherwise. |forms_in_query| is a vector of form signatures in the query. |
+ bool CheckCacheForQueryRequest(std::vector<std::string> const& forms_in_query, |
+ std::string* query_data) const; |
+ // Concatenates |forms_in_query| into one signature. |
+ std::string GetCombinedSignature( |
+ std::vector<std::string> const& forms_in_query) const; |
+ |
// URLFetcher::Delegate implementation: |
virtual void OnURLFetchComplete(const URLFetcher* source, |
const GURL& url, |
@@ -123,6 +144,10 @@ |
std::map<URLFetcher*, FormRequestData> url_fetchers_; |
AutoFillDownloadManager::Observer *observer_; |
+ // Cached QUERY requests. |
+ std::list<std::pair<std::string, std::string> > cached_forms_; |
dhollowa
2011/01/25 23:33:02
Add a typedef for the cache type. It'll make iter
GeorgeY
2011/01/25 23:51:30
Sure, but as this used only in these two functions
|
+ size_t number_of_forms_to_cache_; |
dhollowa
2011/01/25 23:33:02
This seems a bit verbose. How about |form_cache_s
GeorgeY
2011/01/25 23:51:30
Done.
|
+ |
// Time when next query/upload requests are allowed. If 50x HTTP received, |
// exponential back off is initiated, so this times will be in the future |
// for awhile. |