| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/autofill/autofill_download.h" | 5 #include "chrome/browser/autofill/autofill_download.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <ostream> | 8 #include <ostream> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/logging.h" | 11 #include "base/logging.h" |
| 12 #include "base/rand_util.h" | 12 #include "base/rand_util.h" |
| 13 #include "base/stl_util.h" | 13 #include "base/stl_util.h" |
| 14 #include "base/string_util.h" | 14 #include "base/string_util.h" |
| 15 #include "chrome/browser/autofill/autofill_metrics.h" | 15 #include "chrome/browser/autofill/autofill_metrics.h" |
| 16 #include "chrome/browser/autofill/autofill_xml_parser.h" | 16 #include "chrome/browser/autofill/autofill_xml_parser.h" |
| 17 #include "chrome/browser/autofill/form_structure.h" | 17 #include "chrome/browser/autofill/form_structure.h" |
| 18 #include "chrome/browser/prefs/pref_service.h" | 18 #include "chrome/browser/prefs/pref_service.h" |
| 19 #include "chrome/browser/profiles/profile.h" | 19 #include "chrome/browser/profiles/profile.h" |
| 20 #include "chrome/common/pref_names.h" | 20 #include "chrome/common/pref_names.h" |
| 21 #include "content/common/net/url_fetcher.h" |
| 21 #include "googleurl/src/gurl.h" | 22 #include "googleurl/src/gurl.h" |
| 22 #include "net/http/http_response_headers.h" | 23 #include "net/http/http_response_headers.h" |
| 23 #include "third_party/libjingle/source/talk/xmllite/xmlparser.h" | 24 #include "third_party/libjingle/source/talk/xmllite/xmlparser.h" |
| 24 | 25 |
| 25 namespace { | 26 namespace { |
| 26 const char kAutofillQueryServerRequestUrl[] = | 27 const char kAutofillQueryServerRequestUrl[] = |
| 27 "https://toolbarqueries.google.com/tbproxy/af/query"; | 28 "https://toolbarqueries.google.com/tbproxy/af/query"; |
| 28 const char kAutofillUploadServerRequestUrl[] = | 29 const char kAutofillUploadServerRequestUrl[] = |
| 29 "https://toolbarqueries.google.com/tbproxy/af/upload"; | 30 "https://toolbarqueries.google.com/tbproxy/af/upload"; |
| 30 const char kAutofillQueryServerNameStartInHeader[] = "GFE/"; | 31 const char kAutofillQueryServerNameStartInHeader[] = "GFE/"; |
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 310 << " request has failed with response " | 311 << " request has failed with response " |
| 311 << source->response_code(); | 312 << source->response_code(); |
| 312 if (observer_) { | 313 if (observer_) { |
| 313 observer_->OnServerRequestError(it->second.form_signatures[0], | 314 observer_->OnServerRequestError(it->second.form_signatures[0], |
| 314 it->second.request_type, | 315 it->second.request_type, |
| 315 source->response_code()); | 316 source->response_code()); |
| 316 } | 317 } |
| 317 } else { | 318 } else { |
| 318 VLOG(1) << "AutofillDownloadManager: " << type_of_request | 319 VLOG(1) << "AutofillDownloadManager: " << type_of_request |
| 319 << " request has succeeded"; | 320 << " request has succeeded"; |
| 320 const std::string& response_body = source->GetResponseStringRef(); | 321 std::string response_body; |
| 322 source->GetResponseAsString(&response_body); |
| 321 if (it->second.request_type == AutofillDownloadManager::REQUEST_QUERY) { | 323 if (it->second.request_type == AutofillDownloadManager::REQUEST_QUERY) { |
| 322 CacheQueryRequest(it->second.form_signatures, response_body); | 324 CacheQueryRequest(it->second.form_signatures, response_body); |
| 323 if (observer_) | 325 if (observer_) |
| 324 observer_->OnLoadedServerPredictions(response_body); | 326 observer_->OnLoadedServerPredictions(response_body); |
| 325 } else { | 327 } else { |
| 326 double new_positive_upload_rate = 0; | 328 double new_positive_upload_rate = 0; |
| 327 double new_negative_upload_rate = 0; | 329 double new_negative_upload_rate = 0; |
| 328 AutofillUploadXmlParser parse_handler(&new_positive_upload_rate, | 330 AutofillUploadXmlParser parse_handler(&new_positive_upload_rate, |
| 329 &new_negative_upload_rate); | 331 &new_negative_upload_rate); |
| 330 buzz::XmlParser parser(&parse_handler); | 332 buzz::XmlParser parser(&parse_handler); |
| 331 parser.Parse(response_body.data(), response_body.length(), true); | 333 parser.Parse(response_body.data(), response_body.length(), true); |
| 332 if (parse_handler.succeeded()) { | 334 if (parse_handler.succeeded()) { |
| 333 SetPositiveUploadRate(new_positive_upload_rate); | 335 SetPositiveUploadRate(new_positive_upload_rate); |
| 334 SetNegativeUploadRate(new_negative_upload_rate); | 336 SetNegativeUploadRate(new_negative_upload_rate); |
| 335 } | 337 } |
| 336 | 338 |
| 337 if (observer_) | 339 if (observer_) |
| 338 observer_->OnUploadedPossibleFieldTypes(); | 340 observer_->OnUploadedPossibleFieldTypes(); |
| 339 } | 341 } |
| 340 } | 342 } |
| 341 delete it->first; | 343 delete it->first; |
| 342 url_fetchers_.erase(it); | 344 url_fetchers_.erase(it); |
| 343 } | 345 } |
| OLD | NEW |