Index: components/autofill/browser/autofill_download.h |
diff --git a/components/autofill/browser/autofill_download.h b/components/autofill/browser/autofill_download.h |
deleted file mode 100644 |
index 940fb176c91f5bfd26bf9cb04d5ce8c19835aefe..0000000000000000000000000000000000000000 |
--- a/components/autofill/browser/autofill_download.h |
+++ /dev/null |
@@ -1,170 +0,0 @@ |
-// Copyright (c) 2012 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 COMPONENTS_AUTOFILL_BROWSER_AUTOFILL_DOWNLOAD_H_ |
-#define COMPONENTS_AUTOFILL_BROWSER_AUTOFILL_DOWNLOAD_H_ |
- |
-#include <stddef.h> |
-#include <list> |
-#include <map> |
-#include <string> |
-#include <utility> |
-#include <vector> |
- |
-#include "base/compiler_specific.h" |
-#include "base/gtest_prod_util.h" |
-#include "base/time.h" |
-#include "components/autofill/browser/autofill_type.h" |
-#include "net/url_request/url_fetcher_delegate.h" |
- |
-namespace content { |
-class BrowserContext; |
-} // namespace content |
- |
-namespace net { |
-class URLFetcher; |
-} // namespace net |
- |
-namespace autofill { |
- |
-class AutofillMetrics; |
-class FormStructure; |
- |
-// Handles getting and updating Autofill heuristics. |
-class AutofillDownloadManager : public net::URLFetcherDelegate { |
- public: |
- enum AutofillRequestType { |
- REQUEST_QUERY, |
- REQUEST_UPLOAD, |
- }; |
- |
- // An interface used to notify clients of AutofillDownloadManager. |
- class Observer { |
- public: |
- // Called when field type predictions are successfully received from the |
- // server. |response_xml| contains the server response. |
- virtual void OnLoadedServerPredictions(const std::string& response_xml) = 0; |
- |
- // These notifications are used to help with testing. |
- // Called when heuristic either successfully considered for upload and |
- // not send or uploaded. |
- virtual void OnUploadedPossibleFieldTypes() {} |
- // Called when there was an error during the request. |
- // |form_signature| - the signature of the requesting form. |
- // |request_type| - type of request that failed. |
- // |http_error| - HTTP error code. |
- virtual void OnServerRequestError(const std::string& form_signature, |
- AutofillRequestType request_type, |
- int http_error) {} |
- |
- protected: |
- virtual ~Observer() {} |
- }; |
- |
- // |observer| - observer to notify on successful completion or error. |
- AutofillDownloadManager(content::BrowserContext* context, |
- Observer* observer); |
- virtual ~AutofillDownloadManager(); |
- |
- // Starts a query request to Autofill servers. The observer is called with the |
- // list of the fields of all requested forms. |
- // |forms| - array of forms aggregated in this request. |
- bool StartQueryRequest(const std::vector<FormStructure*>& forms, |
- const AutofillMetrics& metric_logger); |
- |
- // Starts an upload request for the given |form|, unless throttled by the |
- // server. The probability of the request going over the wire is |
- // GetPositiveUploadRate() if |form_was_autofilled| is true, or |
- // GetNegativeUploadRate() otherwise. The observer will be called even if |
- // there was no actual trip over the wire. |
- // |available_field_types| should contain the types for which we have data |
- // stored on the local client. |
- bool StartUploadRequest(const FormStructure& form, |
- bool form_was_autofilled, |
- const FieldTypeSet& available_field_types); |
- |
- private: |
- friend class AutofillDownloadTest; |
- FRIEND_TEST_ALL_PREFIXES(AutofillDownloadTest, QueryAndUploadTest); |
- |
- static std::string AutofillRequestTypeToString(const AutofillRequestType); |
- |
- struct FormRequestData; |
- typedef std::list<std::pair<std::string, std::string> > QueryRequestCache; |
- |
- // Initiates request to Autofill servers to download/upload heuristics. |
- // |form_xml| - form structure XML to upload/download. |
- // |request_data| - form signature hash(es) and indicator if it was a query. |
- // |request_data.query| - if true the data is queried and observer notified |
- // with new data, if available. If false heuristic data is uploaded to our |
- // servers. |
- bool StartRequest(const std::string& form_xml, |
- const FormRequestData& request_data); |
- |
- // Each request is page visited. We store last |max_form_cache_size| |
- // 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_max_form_cache_size(size_t max_form_cache_size) { |
- max_form_cache_size_ = max_form_cache_size; |
- } |
- |
- // Caches query request. |forms_in_query| is a vector of form signatures in |
- // the query. |query_data| is the successful data returned over the wire. |
- void CacheQueryRequest(const std::vector<std::string>& forms_in_query, |
- const std::string& 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(const std::vector<std::string>& forms_in_query, |
- std::string* query_data) const; |
- // Concatenates |forms_in_query| into one signature. |
- std::string GetCombinedSignature( |
- const std::vector<std::string>& forms_in_query) const; |
- |
- // net::URLFetcherDelegate implementation: |
- virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE; |
- |
- // Probability of the form upload. Between 0 (no upload) and 1 (upload all). |
- // GetPositiveUploadRate() is for matched forms, |
- // GetNegativeUploadRate() for non-matched. |
- double GetPositiveUploadRate() const; |
- double GetNegativeUploadRate() const; |
- void SetPositiveUploadRate(double rate); |
- void SetNegativeUploadRate(double rate); |
- |
- // The pointer value is const, so this can only be set in the |
- // constructor. Must not be null. |
- content::BrowserContext* const browser_context_; // WEAK |
- |
- // The observer to notify when server predictions are successfully received. |
- // The pointer value is const, so this can only be set in the constructor. |
- // Must not be null. |
- AutofillDownloadManager::Observer* const observer_; // WEAK |
- |
- // For each requested form for both query and upload we create a separate |
- // request and save its info. As url fetcher is identified by its address |
- // we use a map between fetchers and info. |
- std::map<net::URLFetcher*, FormRequestData> url_fetchers_; |
- |
- // Cached QUERY requests. |
- QueryRequestCache cached_forms_; |
- size_t max_form_cache_size_; |
- |
- // 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. |
- base::Time next_query_request_; |
- base::Time next_upload_request_; |
- |
- // |positive_upload_rate_| is for matched forms, |
- // |negative_upload_rate_| for non matched. |
- double positive_upload_rate_; |
- double negative_upload_rate_; |
- |
- // Needed for unit-test. |
- int fetcher_id_for_unittest_; |
-}; |
- |
-} // namespace autofill |
- |
-#endif // COMPONENTS_AUTOFILL_BROWSER_AUTOFILL_DOWNLOAD_H_ |