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

Unified Diff: chrome/browser/autofill/form_structure.cc

Issue 11953100: Add url prefix to AutofillQuery requests when autocheckout enabled, and set accepts="a" (autochecko… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 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/form_structure_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/autofill/form_structure.cc
diff --git a/chrome/browser/autofill/form_structure.cc b/chrome/browser/autofill/form_structure.cc
index 370ac2ab70a8526324714a1a62495e88b1bcdf67..d9e9499388d05da6399c7079cae6184194a82760 100644
--- a/chrome/browser/autofill/form_structure.cc
+++ b/chrome/browser/autofill/form_structure.cc
@@ -40,7 +40,9 @@ const char kAttributeClientVersion[] = "clientversion";
const char kAttributeDataPresent[] = "datapresent";
const char kAttributeFormSignature[] = "formsignature";
const char kAttributeSignature[] = "signature";
-const char kAcceptedFeatures[] = "e"; // e=experiments
+const char kAttributeUrlprefix[] = "urlprefix";
+const char kAcceptedFeatureExperiment[] = "e"; // e=experiments
+const char kAcceptedFeatureAutocheckout[] = "a"; // a=autocheckout
const char kClientVersion[] = "6.1.1715.1442/en (GGLL)";
const char kXMLDeclaration[] = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
const char kXMLElementAutofillQuery[] = "autofillquery";
@@ -392,9 +394,8 @@ bool FormStructure::EncodeQueryRequest(
(buzz::QName(kXMLElementAutofillQuery)));
autofill_request_xml.SetAttr(buzz::QName(kAttributeClientVersion),
kClientVersion);
- autofill_request_xml.SetAttr(buzz::QName(kAttributeAcceptedFeatures),
- kAcceptedFeatures);
+ std::string autocheckout_urlprefix;
// Some badly formatted web sites repeat forms - detect that and encode only
// one form as returned data would be the same for all the repeated forms.
std::set<std::string> processed_forms;
@@ -414,6 +415,13 @@ bool FormStructure::EncodeQueryRequest(
encompassing_xml_element.get()))
continue; // Malformed form, skip it.
+ if ((*it)->autocheckout_enabled_ && autocheckout_urlprefix.empty()) {
+ GURL::Replacements replacements;
+ replacements.ClearQuery();
+ autocheckout_urlprefix = (*it)->source_url()
+ .ReplaceComponents(replacements).spec();
+ }
+
autofill_request_xml.AddElement(encompassing_xml_element.release());
encoded_signatures->push_back(signature);
}
@@ -421,6 +429,16 @@ bool FormStructure::EncodeQueryRequest(
if (!encoded_signatures->size())
return false;
+ if (autocheckout_urlprefix.empty()) {
+ autofill_request_xml.SetAttr(buzz::QName(kAttributeAcceptedFeatures),
+ kAcceptedFeatureExperiment);
+ } else {
+ autofill_request_xml.SetAttr(buzz::QName(kAttributeAcceptedFeatures),
+ kAcceptedFeatureAutocheckout);
Ilya Sherman 2013/01/25 20:37:35 Shouldn't we support both experiments and autochec
benquan 2013/01/29 00:36:09 We use a different form_data in server side, when
Ilya Sherman 2013/01/29 01:49:23 That sounds like something that should be controll
benquan 2013/01/30 19:24:22 Basically autocheckout and experiments are exclusi
Ilya Sherman 2013/01/30 21:12:14 What in the client code makes them necessarily exc
benquan 2013/01/31 03:58:05 Done.
+ autofill_request_xml.SetAttr(buzz::QName(kAttributeUrlprefix),
+ autocheckout_urlprefix);
Ilya Sherman 2013/01/25 20:37:35 What does this attribute accomplish? Why do we on
benquan 2013/01/29 00:36:09 urlprefix tells autofillserver where the forms in
Ilya Sherman 2013/01/29 01:49:23 Ok, that makes some sense -- thanks for the explan
benquan 2013/01/30 19:24:22 The query string is stripped, and we only send thi
Ilya Sherman 2013/01/30 21:12:14 Why not? If the server knows the URL, it can comp
benquan 2013/01/31 03:58:05 Changed to pass down hash code of the url prefix i
+ }
+
// Obtain the XML structure as a string.
*encoded_xml = kXMLDeclaration;
*encoded_xml += autofill_request_xml.Str().c_str();
« no previous file with comments | « no previous file | chrome/browser/autofill/form_structure_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698