Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(38)

Unified Diff: chrome/browser/autofill/autofill_download.h

Issue 1119004: Integration with Toolbar autofill servers.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/autofill/autofill_download.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/autofill/autofill_download.h
===================================================================
--- chrome/browser/autofill/autofill_download.h (revision 0)
+++ chrome/browser/autofill/autofill_download.h (revision 0)
@@ -0,0 +1,88 @@
+// Copyright (c) 2010 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 CHROME_BROWSER_AUTOFILL_AUTOFILL_DOWNLOAD_H_
+#define CHROME_BROWSER_AUTOFILL_AUTOFILL_DOWNLOAD_H_
+
+#include <map>
+#include <string>
+
+#include "base/scoped_ptr.h"
+#include "base/scoped_vector.h"
+#include "base/string16.h"
+#include "chrome/browser/autofill/autofill_profile.h"
+#include "chrome/browser/autofill/field_types.h"
+#include "chrome/browser/autofill/form_structure.h"
+#include "chrome/browser/net/url_fetcher.h"
+
+// Handles getting and updating AutoFill heuristics.
+class AutoFillDownloadManager : public URLFetcher::Delegate {
+ public:
+ // An interface used to notify clients of AutoFillDownloadManager.
+ class Observer {
+ public:
+ // Called when heuristic successfully received from server.
+ // |form_signature| - the signature of the requesting form.
+ // |heuristic_xml| - server response.
+ virtual void OnLoadedAutoFillHeuristics(
+ const std::string& form_signature,
+ const std::string& heuristic_xml) = 0;
+ // Called when heuristic either successfully considered for upload and
+ // not send or uploaded.
+ // |form_signature| - the signature of the requesting form.
+ virtual void OnUploadedAutoFillHeuristics(
+ const std::string& form_signature) = 0;
+ // Called when there was an error during the request.
+ // |form_signature| - the signature of the requesting form.
+ // |http_error| - http error code.
+ virtual void OnHeuristicsRequestError(const std::string& form_signature,
+ int http_error) = 0;
+ protected:
+ virtual ~Observer() {}
+ };
+
+ AutoFillDownloadManager();
+ virtual ~AutoFillDownloadManager();
+
+ // |observer| - observer to notify on successful completion or error.
+ void SetObserver(AutoFillDownloadManager::Observer *observer);
+
+ // Initiates request to AutoFill servers to download/upload heuristics
+ // |form_xml| - form structure XML to upload/download.
+ // |form_signature| - form signature hash.
+ // |query_data| - if true the data is queried and observer notified with new
+ // data, if available. If false heuristic data is uploaded to our servers.
+ // |form_was_matched| - if |query_data| is false indicates if the form was
+ // matched. Ignored otherwise.
+ bool StartRequest(const std::string& form_xml,
+ const std::string& form_signature,
+ bool query_data,
+ bool form_was_matched);
+
+ bool CancelRequest(const std::string& form_signature, bool query_data);
+
+ protected:
+ // URLFetcher::Delegate implementation:
+ virtual void OnURLFetchComplete(const URLFetcher* source,
+ const GURL& url,
+ const URLRequestStatus& status,
+ int response_code,
+ const ResponseCookies& cookies,
+ const std::string& data);
+
+ private:
+ struct FormRequestData {
+ std::string form_signature;
+ bool query;
+ };
+
+ // 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<URLFetcher *, FormRequestData> url_fetchers_;
+ AutoFillDownloadManager::Observer *observer_;
+};
+
+#endif // CHROME_BROWSER_AUTOFILL_AUTOFILL_DOWNLOAD_H_
+
Property changes on: chrome\browser\autofill\autofill_download.h
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « no previous file | chrome/browser/autofill/autofill_download.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698