Merge from Chromium at DEPS revision r199464
This commit was generated by merge_to_master.py.
Change-Id: Ic3d1f97a4fb4edd1e6ed66a70b5040da1622b5a9
diff --git a/components/OWNERS b/components/OWNERS
index 9bfc438..9fbc5a8 100644
--- a/components/OWNERS
+++ b/components/OWNERS
@@ -7,7 +7,6 @@
per-file tracing*[email protected]
per-file tracing*[email protected]
-per-file [email protected]
per-file [email protected]
per-file [email protected]
diff --git a/components/auto_login_parser/auto_login_parser.cc b/components/auto_login_parser/auto_login_parser.cc
index 7ecbfeb..298c9b7 100644
--- a/components/auto_login_parser/auto_login_parser.cc
+++ b/components/auto_login_parser/auto_login_parser.cc
@@ -12,8 +12,7 @@
#include "net/base/escape.h"
#include "net/url_request/url_request.h"
-namespace components {
-namespace auto_login {
+namespace auto_login_parser {
namespace {
@@ -80,5 +79,4 @@
return ParseHeader(header_string, realm_restriction, header_data);
}
-} // namespace auto_login
-} // namespace components
+} // namespace auto_login_parser
diff --git a/components/auto_login_parser/auto_login_parser.h b/components/auto_login_parser/auto_login_parser.h
index dd60cbc..bd2f28f 100644
--- a/components/auto_login_parser/auto_login_parser.h
+++ b/components/auto_login_parser/auto_login_parser.h
@@ -9,10 +9,9 @@
namespace net {
class URLRequest;
-} // namespace net
+}
-namespace components {
-namespace auto_login {
+namespace auto_login_parser {
enum RealmRestriction {
ONLY_GOOGLE_COM,
@@ -46,7 +45,6 @@
RealmRestriction realm_restriction,
HeaderData* header_data);
-} // namespace auto_login
-} // namespace components
+} // namespace auto_login_parser
#endif // COMPONENTS_AUTO_LOGIN_PARSER_AUTO_LOGIN_PARSER_H_
diff --git a/components/auto_login_parser/auto_login_parser_unittest.cc b/components/auto_login_parser/auto_login_parser_unittest.cc
index 3e990ee..442784c 100644
--- a/components/auto_login_parser/auto_login_parser_unittest.cc
+++ b/components/auto_login_parser/auto_login_parser_unittest.cc
@@ -2,13 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "components/auto_login_parser/auto_login_parser.h"
+
#include <string>
-#include "components/auto_login_parser/auto_login_parser.h"
#include "testing/gtest/include/gtest/gtest.h"
-namespace components {
-namespace auto_login {
+namespace auto_login_parser {
class AutoLoginParserTest : public testing::Test {
protected:
@@ -89,5 +89,4 @@
ASSERT_EQ("kfdshfwoeriudslkfsdjfhdskjfhsdkr", header_data.args);
}
-} // namespace auto_login
-} // namespace components
+} // namespace auto_login_parser
diff --git a/components/autofill/browser/autocheckout_manager.cc b/components/autofill/browser/autocheckout_manager.cc
index bb367e8..f451e79 100644
--- a/components/autofill/browser/autocheckout_manager.cc
+++ b/components/autofill/browser/autocheckout_manager.cc
@@ -179,7 +179,7 @@
host->Send(new AutofillMsg_FillFormsAndClick(
host->GetRoutingID(),
filled_forms,
- *page_meta_data_->proceed_element_descriptor));
+ page_meta_data_->proceed_element_descriptor));
}
void AutocheckoutManager::OnClickFailed(AutocheckoutStatus status) {
diff --git a/components/autofill/browser/autocheckout_manager_unittest.cc b/components/autofill/browser/autocheckout_manager_unittest.cc
index 8f0d011..f6a1638 100644
--- a/components/autofill/browser/autocheckout_manager_unittest.cc
+++ b/components/autofill/browser/autocheckout_manager_unittest.cc
@@ -131,11 +131,9 @@
return form_structure.Pass();
}
-scoped_ptr<WebElementDescriptor> CreateProceedElement() {
- scoped_ptr<WebElementDescriptor> proceed_element(new WebElementDescriptor());
+void PopulateProceedElement(WebElementDescriptor* proceed_element) {
proceed_element->descriptor = "#foo";
proceed_element->retrieval_method = WebElementDescriptor::ID;
- return proceed_element.Pass();
}
scoped_ptr<AutocheckoutPageMetaData> CreateStartOfFlowMetaData() {
@@ -143,7 +141,7 @@
new AutocheckoutPageMetaData());
start_of_flow->current_page_number = 0;
start_of_flow->total_pages = 3;
- start_of_flow->proceed_element_descriptor = CreateProceedElement().Pass();
+ PopulateProceedElement(&start_of_flow->proceed_element_descriptor);
return start_of_flow.Pass();
}
@@ -151,14 +149,14 @@
scoped_ptr<AutocheckoutPageMetaData> in_flow(new AutocheckoutPageMetaData());
in_flow->current_page_number = 1;
in_flow->total_pages = 3;
- in_flow->proceed_element_descriptor = CreateProceedElement().Pass();
+ PopulateProceedElement(&in_flow->proceed_element_descriptor);
return in_flow.Pass();
}
scoped_ptr<AutocheckoutPageMetaData> CreateNotInFlowMetaData() {
scoped_ptr<AutocheckoutPageMetaData> not_in_flow(
new AutocheckoutPageMetaData());
- not_in_flow->proceed_element_descriptor = CreateProceedElement().Pass();
+ PopulateProceedElement(¬_in_flow->proceed_element_descriptor );
return not_in_flow.Pass();
}
@@ -167,7 +165,7 @@
new AutocheckoutPageMetaData());
end_of_flow->current_page_number = 2;
end_of_flow->total_pages = 3;
- end_of_flow->proceed_element_descriptor = CreateProceedElement().Pass();
+ PopulateProceedElement(&end_of_flow->proceed_element_descriptor);
return end_of_flow.Pass();
}
@@ -176,7 +174,7 @@
new AutocheckoutPageMetaData());
one_page_flow->current_page_number = 0;
one_page_flow->total_pages = 1;
- one_page_flow->proceed_element_descriptor = CreateProceedElement().Pass();
+ PopulateProceedElement(&one_page_flow->proceed_element_descriptor);
return one_page_flow.Pass();
}
diff --git a/components/autofill/browser/autocheckout_page_meta_data.h b/components/autofill/browser/autocheckout_page_meta_data.h
index 20b0883..f1b9a7a 100644
--- a/components/autofill/browser/autocheckout_page_meta_data.h
+++ b/components/autofill/browser/autocheckout_page_meta_data.h
@@ -5,7 +5,7 @@
#ifndef COMPONENTS_AUTOFILL_BROWSER_AUTOCHECKOUT_PAGE_META_DATA_H_
#define COMPONENTS_AUTOFILL_BROWSER_AUTOCHECKOUT_PAGE_META_DATA_H_
-#include "base/memory/scoped_ptr.h"
+#include "base/basictypes.h"
#include "components/autofill/common/web_element_descriptor.h"
namespace autofill {
@@ -36,9 +36,9 @@
// belong to any autofill flow, it is set to -1.
int total_pages;
- // The proceed element of the multipage Autofill flow. Can be null if the
- // current page is the last page of a flow or isn't a member of a flow.
- scoped_ptr<WebElementDescriptor> proceed_element_descriptor;
+ // The proceed element of the multipage Autofill flow. It can be empty
+ // if current page is the last page of a flow or isn't a member of a flow.
+ WebElementDescriptor proceed_element_descriptor;
private:
DISALLOW_COPY_AND_ASSIGN(AutocheckoutPageMetaData);
diff --git a/components/autofill/browser/autofill_type.cc b/components/autofill/browser/autofill_type.cc
index c0d2f64..43f6450 100644
--- a/components/autofill/browser/autofill_type.cc
+++ b/components/autofill/browser/autofill_type.cc
@@ -124,6 +124,36 @@
}
// static
+AutofillFieldType AutofillType::GetEquivalentBillingFieldType(
+ AutofillFieldType field_type) {
+ switch (field_type) {
+ case ADDRESS_HOME_LINE1:
+ return ADDRESS_BILLING_LINE1;
+
+ case ADDRESS_HOME_LINE2:
+ return ADDRESS_BILLING_LINE2;
+
+ case ADDRESS_HOME_APT_NUM:
+ return ADDRESS_BILLING_APT_NUM;
+
+ case ADDRESS_HOME_CITY:
+ return ADDRESS_BILLING_CITY;
+
+ case ADDRESS_HOME_STATE:
+ return ADDRESS_BILLING_STATE;
+
+ case ADDRESS_HOME_ZIP:
+ return ADDRESS_BILLING_ZIP;
+
+ case ADDRESS_HOME_COUNTRY:
+ return ADDRESS_BILLING_COUNTRY;
+
+ default:
+ return field_type;
+ }
+}
+
+// static
std::string AutofillType::FieldTypeToString(AutofillFieldType type) {
switch (type) {
case NO_SERVER_DATA:
diff --git a/components/autofill/browser/autofill_type.h b/components/autofill/browser/autofill_type.h
index 2ae0c6c..f235175 100644
--- a/components/autofill/browser/autofill_type.h
+++ b/components/autofill/browser/autofill_type.h
@@ -41,6 +41,11 @@
// the returned field type as the first parameter).
static AutofillFieldType GetEquivalentFieldType(AutofillFieldType field_type);
+ // Maps |field_type| to a field type from ADDRESS_BILLING FieldTypeGroup if
+ // field type is an Address type.
+ static AutofillFieldType GetEquivalentBillingFieldType(
+ AutofillFieldType field_type);
+
// Utilities for serializing and deserializing an |AutofillFieldType|.
static std::string FieldTypeToString(AutofillFieldType field_type);
static AutofillFieldType StringToFieldType(const std::string& str);
diff --git a/components/autofill/browser/autofill_xml_parser.cc b/components/autofill/browser/autofill_xml_parser.cc
index 5ac92fd..a467218 100644
--- a/components/autofill/browser/autofill_xml_parser.cc
+++ b/components/autofill/browser/autofill_xml_parser.cc
@@ -8,6 +8,7 @@
#include <string.h>
#include "base/logging.h"
+#include "components/autofill/browser/autocheckout_page_meta_data.h"
#include "components/autofill/browser/autofill_server_field_info.h"
#include "third_party/libjingle/source/talk/xmllite/qname.h"
@@ -35,14 +36,15 @@
AutofillQueryXmlParser::AutofillQueryXmlParser(
std::vector<AutofillServerFieldInfo>* field_infos,
UploadRequired* upload_required,
- std::string* experiment_id)
+ std::string* experiment_id,
+ AutocheckoutPageMetaData* page_meta_data)
: field_infos_(field_infos),
upload_required_(upload_required),
- current_page_number_(-1),
- total_pages_(-1),
- experiment_id_(experiment_id) {
+ experiment_id_(experiment_id),
+ page_meta_data_(page_meta_data) {
DCHECK(upload_required_);
DCHECK(experiment_id_);
+ DCHECK(page_meta_data_);
}
AutofillQueryXmlParser::~AutofillQueryXmlParser() {}
@@ -113,9 +115,9 @@
++attrs;
const std::string& attribute_name = attribute_qname.LocalPart();
if (attribute_name.compare("page_no") == 0)
- current_page_number_ = GetIntValue(context, *attrs);
+ page_meta_data_->current_page_number = GetIntValue(context, *attrs);
else if (attribute_name.compare("total_pages") == 0)
- total_pages_ = GetIntValue(context, *attrs);
+ page_meta_data_->total_pages = GetIntValue(context, *attrs);
++attrs;
}
} else if (element.compare("page_advance_button") == 0) {
@@ -130,17 +132,17 @@
++attrs;
const std::string& attribute_value = value_qname.LocalPart();
if (attribute_name.compare("id") == 0 && !attribute_value.empty()) {
- proceed_element_descriptor_.reset(new autofill::WebElementDescriptor());
- proceed_element_descriptor_->retrieval_method =
+ page_meta_data_->proceed_element_descriptor.retrieval_method =
autofill::WebElementDescriptor::ID;
- proceed_element_descriptor_->descriptor = attribute_value;
+ page_meta_data_->proceed_element_descriptor.descriptor =
+ attribute_value;
break;
} else if (attribute_name.compare("css_selector") == 0 &&
!attribute_value.empty()) {
- proceed_element_descriptor_.reset(new autofill::WebElementDescriptor());
- proceed_element_descriptor_->retrieval_method =
+ page_meta_data_->proceed_element_descriptor.retrieval_method =
autofill::WebElementDescriptor::CSS_SELECTOR;
- proceed_element_descriptor_->descriptor = attribute_value;
+ page_meta_data_->proceed_element_descriptor.descriptor =
+ attribute_value;
break;
}
}
diff --git a/components/autofill/browser/autofill_xml_parser.h b/components/autofill/browser/autofill_xml_parser.h
index 69e019c..4d1498f 100644
--- a/components/autofill/browser/autofill_xml_parser.h
+++ b/components/autofill/browser/autofill_xml_parser.h
@@ -14,11 +14,12 @@
#include "components/autofill/browser/autofill_server_field_info.h"
#include "components/autofill/browser/field_types.h"
#include "components/autofill/browser/form_structure.h"
-#include "components/autofill/common/web_element_descriptor.h"
#include "third_party/libjingle/source/talk/xmllite/xmlparser.h"
namespace autofill {
+struct AutocheckoutPageMetaData;
+
// The base class that contains common functionality between
// AutofillQueryXmlParser and AutofillUploadXmlParser.
class AutofillXmlParser : public buzz::XmlParseHandler {
@@ -75,19 +76,10 @@
public:
AutofillQueryXmlParser(std::vector<AutofillServerFieldInfo>* field_infos,
UploadRequired* upload_required,
- std::string* experiment_id);
+ std::string* experiment_id,
+ AutocheckoutPageMetaData* page_meta_data);
virtual ~AutofillQueryXmlParser();
- int current_page_number() const { return current_page_number_; }
-
- int total_pages() const { return total_pages_; }
-
- // Returns the proceed element for multipage Autofill flows if the current
- // page is part of such a flow or NULL otherwise.
- const autofill::WebElementDescriptor* proceed_element_descriptor() const {
- return proceed_element_descriptor_.get();
- }
-
private:
// A callback for the beginning of a new <element>, called by Expat.
// |context| is a parsing context used to resolve element/attribute names.
@@ -110,19 +102,13 @@
// form is submitted.
UploadRequired* upload_required_;
- // Page number of present page in multipage autofill flow.
- int current_page_number_;
-
- // Total number of pages in multipage autofill flow.
- int total_pages_;
-
- // Proceed element for multipage Autofill flow.
- scoped_ptr<autofill::WebElementDescriptor> proceed_element_descriptor_;
-
// The server experiment to which this query response belongs.
// For the default server implementation, this is empty.
std::string* experiment_id_;
+ // Page metadata for multipage autofill flow.
+ AutocheckoutPageMetaData* page_meta_data_;
+
DISALLOW_COPY_AND_ASSIGN(AutofillQueryXmlParser);
};
diff --git a/components/autofill/browser/autofill_xml_parser_unittest.cc b/components/autofill/browser/autofill_xml_parser_unittest.cc
index 4086475..0da65a2 100644
--- a/components/autofill/browser/autofill_xml_parser_unittest.cc
+++ b/components/autofill/browser/autofill_xml_parser_unittest.cc
@@ -7,6 +7,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/strings/string_number_conversions.h"
+#include "components/autofill/browser/autocheckout_page_meta_data.h"
#include "components/autofill/browser/autofill_xml_parser.h"
#include "components/autofill/browser/field_types.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -15,7 +16,49 @@
namespace autofill {
namespace {
-TEST(AutofillQueryXmlParserTest, BasicQuery) {
+class AutofillQueryXmlParserTest : public testing::Test {
+ public:
+ AutofillQueryXmlParserTest(): upload_required_(USE_UPLOAD_RATES) {};
+ virtual ~AutofillQueryXmlParserTest() {};
+
+ protected:
+ void ParseQueryXML(const std::string& xml, bool should_succeed) {
+ // Create a parser.
+ AutofillQueryXmlParser parse_handler(&field_infos_,
+ &upload_required_,
+ &experiment_id_,
+ &page_meta_data_);
+ buzz::XmlParser parser(&parse_handler);
+ parser.Parse(xml.c_str(), xml.length(), true);
+ EXPECT_EQ(should_succeed, parse_handler.succeeded());
+ }
+
+ std::vector<AutofillServerFieldInfo> field_infos_;
+ UploadRequired upload_required_;
+ std::string experiment_id_;
+ autofill::AutocheckoutPageMetaData page_meta_data_;
+};
+
+class AutofillUploadXmlParserTest : public testing::Test {
+ public:
+ AutofillUploadXmlParserTest(): positive_(0), negative_(0) {};
+ virtual ~AutofillUploadXmlParserTest() {};
+
+ protected:
+ void ParseUploadXML(const std::string& xml, bool should_succeed) {
+ // Create a parser.
+ AutofillUploadXmlParser parse_handler(&positive_, &negative_);
+ buzz::XmlParser parser(&parse_handler);
+ parser.Parse(xml.c_str(), xml.length(), true);
+
+ EXPECT_EQ(should_succeed, parse_handler.succeeded());
+ }
+
+ double positive_;
+ double negative_;
+};
+
+TEST_F(AutofillQueryXmlParserTest, BasicQuery) {
// An XML string representing a basic query response.
std::string xml = "<autofillqueryresponse>"
"<field autofilltype=\"0\" />"
@@ -24,124 +67,88 @@
"<field autofilltype=\"2\" />"
"<field autofilltype=\"61\" defaultvalue=\"default\"/>"
"</autofillqueryresponse>";
+ ParseQueryXML(xml, true);
- // Create a vector of AutofillServerFieldInfos, to assign the parsed field
- // types to.
- std::vector<AutofillServerFieldInfo> field_infos;
- UploadRequired upload_required = USE_UPLOAD_RATES;
- std::string experiment_id;
-
- // Create a parser.
- AutofillQueryXmlParser parse_handler(&field_infos, &upload_required,
- &experiment_id);
- buzz::XmlParser parser(&parse_handler);
- parser.Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(parse_handler.succeeded());
- EXPECT_EQ(USE_UPLOAD_RATES, upload_required);
- ASSERT_EQ(5U, field_infos.size());
- EXPECT_EQ(NO_SERVER_DATA, field_infos[0].field_type);
- EXPECT_EQ(UNKNOWN_TYPE, field_infos[1].field_type);
- EXPECT_EQ(NAME_FIRST, field_infos[2].field_type);
- EXPECT_EQ(EMPTY_TYPE, field_infos[3].field_type);
- EXPECT_EQ("", field_infos[3].default_value);
- EXPECT_EQ(FIELD_WITH_DEFAULT_VALUE, field_infos[4].field_type);
- EXPECT_EQ("default", field_infos[4].default_value);
- EXPECT_EQ(std::string(), experiment_id);
+ EXPECT_EQ(USE_UPLOAD_RATES, upload_required_);
+ ASSERT_EQ(5U, field_infos_.size());
+ EXPECT_EQ(NO_SERVER_DATA, field_infos_[0].field_type);
+ EXPECT_EQ(UNKNOWN_TYPE, field_infos_[1].field_type);
+ EXPECT_EQ(NAME_FIRST, field_infos_[2].field_type);
+ EXPECT_EQ(EMPTY_TYPE, field_infos_[3].field_type);
+ EXPECT_TRUE(field_infos_[3].default_value.empty());
+ EXPECT_EQ(FIELD_WITH_DEFAULT_VALUE, field_infos_[4].field_type);
+ EXPECT_EQ("default", field_infos_[4].default_value);
+ EXPECT_TRUE(experiment_id_.empty());
}
// Test parsing the upload required attribute.
-TEST(AutofillQueryXmlParserTest, TestUploadRequired) {
- std::vector<AutofillServerFieldInfo> field_infos;
- UploadRequired upload_required = USE_UPLOAD_RATES;
- std::string experiment_id;
-
+TEST_F(AutofillQueryXmlParserTest, TestUploadRequired) {
std::string xml = "<autofillqueryresponse uploadrequired=\"true\">"
"<field autofilltype=\"0\" />"
"</autofillqueryresponse>";
- scoped_ptr<AutofillQueryXmlParser> parse_handler(
- new AutofillQueryXmlParser(&field_infos, &upload_required,
- &experiment_id));
- scoped_ptr<buzz::XmlParser> parser(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(parse_handler->succeeded());
- EXPECT_EQ(UPLOAD_REQUIRED, upload_required);
- ASSERT_EQ(1U, field_infos.size());
- EXPECT_EQ(NO_SERVER_DATA, field_infos[0].field_type);
- EXPECT_EQ(std::string(), experiment_id);
+ ParseQueryXML(xml, true);
- field_infos.clear();
+ EXPECT_EQ(upload_required_, upload_required_);
+ ASSERT_EQ(1U, field_infos_.size());
+ EXPECT_EQ(NO_SERVER_DATA, field_infos_[0].field_type);
+ EXPECT_TRUE(experiment_id_.empty());
+
+ field_infos_.clear();
xml = "<autofillqueryresponse uploadrequired=\"false\">"
"<field autofilltype=\"0\" />"
"</autofillqueryresponse>";
- parse_handler.reset(new AutofillQueryXmlParser(&field_infos, &upload_required,
- &experiment_id));
- parser.reset(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(parse_handler->succeeded());
- EXPECT_EQ(UPLOAD_NOT_REQUIRED, upload_required);
- ASSERT_EQ(1U, field_infos.size());
- EXPECT_EQ(NO_SERVER_DATA, field_infos[0].field_type);
- EXPECT_EQ(std::string(), experiment_id);
+ ParseQueryXML(xml, true);
- field_infos.clear();
+ EXPECT_EQ(UPLOAD_NOT_REQUIRED, upload_required_);
+ ASSERT_EQ(1U, field_infos_.size());
+ EXPECT_EQ(NO_SERVER_DATA, field_infos_[0].field_type);
+ EXPECT_TRUE(experiment_id_.empty());
+
+ field_infos_.clear();
xml = "<autofillqueryresponse uploadrequired=\"bad_value\">"
"<field autofilltype=\"0\" />"
"</autofillqueryresponse>";
- parse_handler.reset(new AutofillQueryXmlParser(&field_infos, &upload_required,
- &experiment_id));
- parser.reset(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(parse_handler->succeeded());
- EXPECT_EQ(USE_UPLOAD_RATES, upload_required);
- ASSERT_EQ(1U, field_infos.size());
- EXPECT_EQ(NO_SERVER_DATA, field_infos[0].field_type);
- EXPECT_EQ(std::string(), experiment_id);
+ ParseQueryXML(xml, true);
+
+ EXPECT_EQ(USE_UPLOAD_RATES, upload_required_);
+ ASSERT_EQ(1U, field_infos_.size());
+ EXPECT_EQ(NO_SERVER_DATA, field_infos_[0].field_type);
+ EXPECT_TRUE(experiment_id_.empty());
}
// Test parsing the experiment id attribute
-TEST(AutofillQueryXmlParserTest, ParseExperimentId) {
- std::vector<AutofillServerFieldInfo> field_infos;
- UploadRequired upload_required = USE_UPLOAD_RATES;
- std::string experiment_id;
-
+TEST_F(AutofillQueryXmlParserTest, ParseExperimentId) {
// When the attribute is missing, we should get back the default value -- the
// empty string.
std::string xml = "<autofillqueryresponse>"
"<field autofilltype=\"0\" />"
"</autofillqueryresponse>";
- scoped_ptr<AutofillQueryXmlParser> parse_handler(
- new AutofillQueryXmlParser(&field_infos, &upload_required,
- &experiment_id));
- scoped_ptr<buzz::XmlParser> parser(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(parse_handler->succeeded());
- EXPECT_EQ(USE_UPLOAD_RATES, upload_required);
- ASSERT_EQ(1U, field_infos.size());
- EXPECT_EQ(NO_SERVER_DATA, field_infos[0].field_type);
- EXPECT_EQ(std::string(), experiment_id);
+ ParseQueryXML(xml, true);
- field_infos.clear();
+ EXPECT_EQ(USE_UPLOAD_RATES, upload_required_);
+ ASSERT_EQ(1U, field_infos_.size());
+ EXPECT_EQ(NO_SERVER_DATA, field_infos_[0].field_type);
+ EXPECT_TRUE(experiment_id_.empty());
+
+ field_infos_.clear();
// When the attribute is present, make sure we parse it.
xml = "<autofillqueryresponse experimentid=\"FancyNewAlgorithm\">"
"<field autofilltype=\"0\" />"
"</autofillqueryresponse>";
- parse_handler.reset(new AutofillQueryXmlParser(&field_infos, &upload_required,
- &experiment_id));
- parser.reset(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(parse_handler->succeeded());
- EXPECT_EQ(USE_UPLOAD_RATES, upload_required);
- ASSERT_EQ(1U, field_infos.size());
- EXPECT_EQ(NO_SERVER_DATA, field_infos[0].field_type);
- EXPECT_EQ(std::string("FancyNewAlgorithm"), experiment_id);
+ ParseQueryXML(xml, true);
- field_infos.clear();
+ EXPECT_EQ(USE_UPLOAD_RATES, upload_required_);
+ ASSERT_EQ(1U, field_infos_.size());
+ EXPECT_EQ(NO_SERVER_DATA, field_infos_[0].field_type);
+ EXPECT_EQ(std::string("FancyNewAlgorithm"), experiment_id_);
+
+ field_infos_.clear();
// Make sure that we can handle parsing both the upload required and the
// experiment id attribute together.
@@ -150,23 +157,16 @@
"<field autofilltype=\"0\" />"
"</autofillqueryresponse>";
- parse_handler.reset(new AutofillQueryXmlParser(&field_infos, &upload_required,
- &experiment_id));
- parser.reset(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(parse_handler->succeeded());
- EXPECT_EQ(UPLOAD_NOT_REQUIRED, upload_required);
- ASSERT_EQ(1U, field_infos.size());
- EXPECT_EQ(NO_SERVER_DATA, field_infos[0].field_type);
- EXPECT_EQ(std::string("ServerSmartyPants"), experiment_id);
+ ParseQueryXML(xml, true);
+
+ EXPECT_EQ(UPLOAD_NOT_REQUIRED, upload_required_);
+ ASSERT_EQ(1U, field_infos_.size());
+ EXPECT_EQ(NO_SERVER_DATA, field_infos_[0].field_type);
+ EXPECT_EQ("ServerSmartyPants", experiment_id_);
}
// Test XML response with autofill_flow information.
-TEST(AutofillQueryXmlParserTest, ParseAutofillFlow) {
- std::vector<AutofillServerFieldInfo> field_infos;
- UploadRequired upload_required = USE_UPLOAD_RATES;
- std::string experiment_id;
-
+TEST_F(AutofillQueryXmlParserTest, ParseAutofillFlow) {
std::string xml = "<autofillqueryresponse>"
"<field autofilltype=\"55\"/>"
"<autofill_flow page_no=\"1\" total_pages=\"10\">"
@@ -174,21 +174,17 @@
"</autofill_flow>"
"</autofillqueryresponse>";
- scoped_ptr<AutofillQueryXmlParser> parse_handler(
- new AutofillQueryXmlParser(&field_infos, &upload_required,
- &experiment_id));
- scoped_ptr<buzz::XmlParser> parser(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(parse_handler->succeeded());
- EXPECT_EQ(1U, field_infos.size());
- EXPECT_EQ(1, parse_handler->current_page_number());
- EXPECT_EQ(10, parse_handler->total_pages());
- EXPECT_EQ("foo", parse_handler->proceed_element_descriptor()->descriptor);
- EXPECT_EQ(autofill::WebElementDescriptor::ID,
- parse_handler->proceed_element_descriptor()->retrieval_method);
+ ParseQueryXML(xml, true);
- // Clear |field_infos| for the next test;
- field_infos.clear();
+ EXPECT_EQ(1U, field_infos_.size());
+ EXPECT_EQ(1, page_meta_data_.current_page_number);
+ EXPECT_EQ(10, page_meta_data_.total_pages);
+ EXPECT_EQ("foo", page_meta_data_.proceed_element_descriptor.descriptor);
+ EXPECT_EQ(autofill::WebElementDescriptor::ID,
+ page_meta_data_.proceed_element_descriptor.retrieval_method);
+
+ // Clear |field_infos_| for the next test;
+ field_infos_.clear();
// Test css_selector as page_advance_button.
xml = "<autofillqueryresponse>"
@@ -198,171 +194,129 @@
"</autofill_flow>"
"</autofillqueryresponse>";
- parse_handler.reset(new AutofillQueryXmlParser(&field_infos,
- &upload_required,
- &experiment_id));
- parser.reset(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(parse_handler->succeeded());
- EXPECT_EQ(1U, field_infos.size());
- EXPECT_EQ(1, parse_handler->current_page_number());
- EXPECT_EQ(10, parse_handler->total_pages());
- EXPECT_EQ("[name=\"foo\"]",
- parse_handler->proceed_element_descriptor()->descriptor);
- EXPECT_EQ(autofill::WebElementDescriptor::CSS_SELECTOR,
- parse_handler->proceed_element_descriptor()->retrieval_method);
+ ParseQueryXML(xml, true);
- // Clear |field_infos| for the next test;
- field_infos.clear();
+ EXPECT_EQ(1U, field_infos_.size());
+ EXPECT_EQ(1, page_meta_data_.current_page_number);
+ EXPECT_EQ(10, page_meta_data_.total_pages);
+ EXPECT_EQ("[name=\"foo\"]",
+ page_meta_data_.proceed_element_descriptor.descriptor);
+ EXPECT_EQ(autofill::WebElementDescriptor::CSS_SELECTOR,
+ page_meta_data_.proceed_element_descriptor.retrieval_method);
+
+ // Clear |field_infos_| for the next test;
+ field_infos_.clear();
// Test first attribute is always the one set.
xml = "<autofillqueryresponse>"
"<field autofilltype=\"55\"/>"
"<autofill_flow page_no=\"1\" total_pages=\"10\">"
"<page_advance_button css_selector=\"[name="foo"]\""
- " id=\"foo\"/>"
+ " id=\"foo\"/>"
"</autofill_flow>"
"</autofillqueryresponse>";
- parse_handler.reset(new AutofillQueryXmlParser(&field_infos,
- &upload_required,
- &experiment_id));
- parser.reset(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(parse_handler->succeeded());
- EXPECT_EQ(1U, field_infos.size());
- EXPECT_EQ(1, parse_handler->current_page_number());
- EXPECT_EQ(10, parse_handler->total_pages());
+ ParseQueryXML(xml, true);
+
+ EXPECT_EQ(1U, field_infos_.size());
+ EXPECT_EQ(1, page_meta_data_.current_page_number);
+ EXPECT_EQ(10, page_meta_data_.total_pages);
EXPECT_EQ("[name=\"foo\"]",
- parse_handler->proceed_element_descriptor()->descriptor);
+ page_meta_data_.proceed_element_descriptor.descriptor);
EXPECT_EQ(autofill::WebElementDescriptor::CSS_SELECTOR,
- parse_handler->proceed_element_descriptor()->retrieval_method);
+ page_meta_data_.proceed_element_descriptor.retrieval_method);
}
// Test badly formed XML queries.
-TEST(AutofillQueryXmlParserTest, ParseErrors) {
- std::vector<AutofillServerFieldInfo> field_infos;
- UploadRequired upload_required = USE_UPLOAD_RATES;
- std::string experiment_id;
-
+TEST_F(AutofillQueryXmlParserTest, ParseErrors) {
// Test no Autofill type.
std::string xml = "<autofillqueryresponse>"
"<field/>"
"</autofillqueryresponse>";
- scoped_ptr<AutofillQueryXmlParser> parse_handler(
- new AutofillQueryXmlParser(&field_infos, &upload_required,
- &experiment_id));
- scoped_ptr<buzz::XmlParser> parser(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_FALSE(parse_handler->succeeded());
- EXPECT_EQ(USE_UPLOAD_RATES, upload_required);
- EXPECT_EQ(0U, field_infos.size());
- EXPECT_EQ(std::string(), experiment_id);
+ ParseQueryXML(xml, false);
+
+ EXPECT_EQ(USE_UPLOAD_RATES, upload_required_);
+ EXPECT_EQ(0U, field_infos_.size());
+ EXPECT_TRUE(experiment_id_.empty());
// Test an incorrect Autofill type.
xml = "<autofillqueryresponse>"
"<field autofilltype=\"-1\"/>"
"</autofillqueryresponse>";
- parse_handler.reset(new AutofillQueryXmlParser(&field_infos, &upload_required,
- &experiment_id));
- parser.reset(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(parse_handler->succeeded());
- EXPECT_EQ(USE_UPLOAD_RATES, upload_required);
- ASSERT_EQ(1U, field_infos.size());
+ ParseQueryXML(xml, true);
+
+ EXPECT_EQ(USE_UPLOAD_RATES, upload_required_);
+ ASSERT_EQ(1U, field_infos_.size());
// AutofillType was out of range and should be set to NO_SERVER_DATA.
- EXPECT_EQ(NO_SERVER_DATA, field_infos[0].field_type);
- EXPECT_EQ(std::string(), experiment_id);
+ EXPECT_EQ(NO_SERVER_DATA, field_infos_[0].field_type);
+ EXPECT_TRUE(experiment_id_.empty());
// Test upper bound for the field type, MAX_VALID_FIELD_TYPE.
- field_infos.clear();
+ field_infos_.clear();
xml = "<autofillqueryresponse><field autofilltype=\"" +
base::IntToString(MAX_VALID_FIELD_TYPE) + "\"/></autofillqueryresponse>";
- parse_handler.reset(new AutofillQueryXmlParser(&field_infos, &upload_required,
- &experiment_id));
- parser.reset(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(parse_handler->succeeded());
- EXPECT_EQ(USE_UPLOAD_RATES, upload_required);
- ASSERT_EQ(1U, field_infos.size());
+ ParseQueryXML(xml, true);
+
+ EXPECT_EQ(USE_UPLOAD_RATES, upload_required_);
+ ASSERT_EQ(1U, field_infos_.size());
// AutofillType was out of range and should be set to NO_SERVER_DATA.
- EXPECT_EQ(NO_SERVER_DATA, field_infos[0].field_type);
- EXPECT_EQ(std::string(), experiment_id);
+ EXPECT_EQ(NO_SERVER_DATA, field_infos_[0].field_type);
+ EXPECT_TRUE(experiment_id_.empty());
// Test an incorrect Autofill type.
- field_infos.clear();
+ field_infos_.clear();
xml = "<autofillqueryresponse>"
"<field autofilltype=\"No Type\"/>"
"</autofillqueryresponse>";
- // Parse fails but an entry is still added to field_infos.
- parse_handler.reset(new AutofillQueryXmlParser(&field_infos, &upload_required,
- &experiment_id));
- parser.reset(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_FALSE(parse_handler->succeeded());
- EXPECT_EQ(USE_UPLOAD_RATES, upload_required);
- ASSERT_EQ(1U, field_infos.size());
- EXPECT_EQ(NO_SERVER_DATA, field_infos[0].field_type);
- EXPECT_EQ(std::string(), experiment_id);
+ // Parse fails but an entry is still added to field_infos_.
+ ParseQueryXML(xml, false);
+
+ EXPECT_EQ(USE_UPLOAD_RATES, upload_required_);
+ ASSERT_EQ(1U, field_infos_.size());
+ EXPECT_EQ(NO_SERVER_DATA, field_infos_[0].field_type);
+ EXPECT_TRUE(experiment_id_.empty());
}
// Test successfull upload response.
-TEST(AutofillUploadXmlParser, TestSuccessfulResponse) {
- std::string xml = "<autofilluploadresponse positiveuploadrate=\"0.5\" "
- "negativeuploadrate=\"0.3\"/>";
- double positive = 0;
- double negative = 0;
- AutofillUploadXmlParser parse_handler(&positive, &negative);
- buzz::XmlParser parser(&parse_handler);
- parser.Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(parse_handler.succeeded());
- EXPECT_DOUBLE_EQ(0.5, positive);
- EXPECT_DOUBLE_EQ(0.3, negative);
+TEST_F(AutofillUploadXmlParserTest, TestSuccessfulResponse) {
+ ParseUploadXML("<autofilluploadresponse positiveuploadrate=\"0.5\" "
+ "negativeuploadrate=\"0.3\"/>",
+ true);
+
+ EXPECT_DOUBLE_EQ(0.5, positive_);
+ EXPECT_DOUBLE_EQ(0.3, negative_);
}
// Test failed upload response.
-TEST(AutofillUploadXmlParser, TestFailedResponse) {
- std::string xml = "<autofilluploadresponse positiveuploadrate=\"\" "
- "negativeuploadrate=\"0.3\"/>";
- double positive = 0;
- double negative = 0;
- scoped_ptr<AutofillUploadXmlParser> parse_handler(
- new AutofillUploadXmlParser(&positive, &negative));
- scoped_ptr<buzz::XmlParser> parser(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(!parse_handler->succeeded());
- EXPECT_DOUBLE_EQ(0, positive);
- EXPECT_DOUBLE_EQ(0.3, negative); // Partially parsed.
- negative = 0;
+TEST_F(AutofillUploadXmlParserTest, TestFailedResponse) {
+ ParseUploadXML("<autofilluploadresponse positiveuploadrate=\"\" "
+ "negativeuploadrate=\"0.3\"/>",
+ false);
- xml = "<autofilluploadresponse positiveuploadrate=\"0.5\" "
- "negativeuploadrate=\"0.3\"";
- parse_handler.reset(new AutofillUploadXmlParser(&positive, &negative));
- parser.reset(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(!parse_handler->succeeded());
- EXPECT_DOUBLE_EQ(0, positive);
- EXPECT_DOUBLE_EQ(0, negative);
+ EXPECT_DOUBLE_EQ(0, positive_);
+ EXPECT_DOUBLE_EQ(0.3, negative_); // Partially parsed.
+ negative_ = 0;
- xml = "bad data";
- parse_handler.reset(new AutofillUploadXmlParser(&positive, &negative));
- parser.reset(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(!parse_handler->succeeded());
- EXPECT_DOUBLE_EQ(0, positive);
- EXPECT_DOUBLE_EQ(0, negative);
+ ParseUploadXML("<autofilluploadresponse positiveuploadrate=\"0.5\" "
+ "negativeuploadrate=\"0.3\"",
+ false);
- xml = "";
- parse_handler.reset(new AutofillUploadXmlParser(&positive, &negative));
- parser.reset(new buzz::XmlParser(parse_handler.get()));
- parser->Parse(xml.c_str(), xml.length(), true);
- EXPECT_TRUE(!parse_handler->succeeded());
- EXPECT_DOUBLE_EQ(0, positive);
- EXPECT_DOUBLE_EQ(0, negative);
+ EXPECT_DOUBLE_EQ(0, positive_);
+ EXPECT_DOUBLE_EQ(0, negative_);
+
+ ParseUploadXML("bad data", false);
+
+ EXPECT_DOUBLE_EQ(0, positive_);
+ EXPECT_DOUBLE_EQ(0, negative_);
+
+ ParseUploadXML(std::string(), false);
+
+ EXPECT_DOUBLE_EQ(0, positive_);
+ EXPECT_DOUBLE_EQ(0, negative_);
}
} // namespace
diff --git a/components/autofill/browser/form_structure.cc b/components/autofill/browser/form_structure.cc
index 136d997..cec92b0 100644
--- a/components/autofill/browser/form_structure.cc
+++ b/components/autofill/browser/form_structure.cc
@@ -56,6 +56,8 @@
const char kXMLElementField[] = "field";
const char kXMLElementFields[] = "fields";
const char kXMLElementForm[] = "form";
+const char kBillingSection[] = "billing";
+const char kShippingSection[] = "shipping";
// Helper for |EncodeUploadRequest()| that creates a bit field corresponding to
// |available_field_types| and returns the hex representation as a string.
@@ -532,24 +534,15 @@
std::vector<AutofillServerFieldInfo> field_infos;
UploadRequired upload_required;
std::string experiment_id;
- AutofillQueryXmlParser parse_handler(&field_infos, &upload_required,
- &experiment_id);
+ AutofillQueryXmlParser parse_handler(&field_infos,
+ &upload_required,
+ &experiment_id,
+ page_meta_data);
buzz::XmlParser parser(&parse_handler);
parser.Parse(response_xml.c_str(), response_xml.length(), true);
if (!parse_handler.succeeded())
return;
- page_meta_data->current_page_number = parse_handler.current_page_number();
- page_meta_data->total_pages = parse_handler.total_pages();
- if (parse_handler.proceed_element_descriptor()) {
- page_meta_data->proceed_element_descriptor.reset(
- new autofill::WebElementDescriptor(
- *parse_handler.proceed_element_descriptor()));
- } else {
- page_meta_data->proceed_element_descriptor.reset(
- new autofill::WebElementDescriptor());
- }
-
metric_logger.LogServerQueryMetric(AutofillMetrics::QUERY_RESPONSE_PARSED);
metric_logger.LogServerExperimentIdForQuery(experiment_id);
@@ -1123,7 +1116,11 @@
DCHECK_EQ(kDefaultSection, field->section());
std::string section = field->section();
if (!tokens.empty() &&
- (tokens.back() == "shipping" || tokens.back() == "billing")) {
+ (tokens.back() == kShippingSection ||
+ tokens.back() == kBillingSection)) {
+ // Set Autofill field type to billing if section is billing.
+ if (tokens.back() == kBillingSection)
+ field_type = AutofillType::GetEquivalentBillingFieldType(field_type);
section = "-" + tokens.back();
tokens.pop_back();
}
diff --git a/components/autofill/browser/wallet/wallet_address.cc b/components/autofill/browser/wallet/wallet_address.cc
index 196b078..d15c7ac 100644
--- a/components/autofill/browser/wallet/wallet_address.cc
+++ b/components/autofill/browser/wallet/wallet_address.cc
@@ -236,7 +236,7 @@
string16 Address::GetInfo(AutofillFieldType type,
const std::string& app_locale) const {
- switch (type) {
+ switch (AutofillType::GetEquivalentFieldType(type)) {
case NAME_FULL:
return recipient_name();
diff --git a/components/autofill/browser/wallet/wallet_client_unittest.cc b/components/autofill/browser/wallet/wallet_client_unittest.cc
index 867f3a0..8ceb029 100644
--- a/components/autofill/browser/wallet/wallet_client_unittest.cc
+++ b/components/autofill/browser/wallet/wallet_client_unittest.cc
@@ -737,6 +737,15 @@
return data;
}
+ void DoEncryptionOrEscrowRequest(net::HttpStatusCode response_code,
+ const std::string& response_body) {
+ net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
+ ASSERT_TRUE(encryption_fetcher);
+ encryption_fetcher->set_response_code(response_code);
+ encryption_fetcher->SetResponseString(response_body);
+ encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ }
+
void VerifyAndFinishRequest(net::HttpStatusCode response_code,
const std::string& request_body,
const std::string& response_body) {
@@ -751,12 +760,12 @@
protected:
scoped_ptr<WalletClient> wallet_client_;
MockWalletClientDelegate delegate_;
- net::TestURLFetcherFactory factory_;
private:
// The profile's request context must be released on the IO thread.
content::TestBrowserThread io_thread_;
TestingProfile profile_;
+ net::TestURLFetcherFactory factory_;
};
TEST_F(WalletClientTest, WalletError) {
@@ -796,12 +805,12 @@
delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_NETWORK_ERROR);
- wallet_client_->SendAutocheckoutStatus(
- autofill::SUCCESS, GURL(kMerchantUrl), std::string());
- net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
- ASSERT_TRUE(fetcher);
- fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
- fetcher->delegate()->OnURLFetchComplete(fetcher);
+ wallet_client_->SendAutocheckoutStatus(autofill::SUCCESS,
+ GURL(kMerchantUrl),
+ "google_transaction_id");
+ VerifyAndFinishRequest(net::HTTP_UNAUTHORIZED,
+ kSendAutocheckoutStatusOfSuccessValidRequest,
+ std::string());
}
TEST_F(WalletClientTest, NetworkFailureOnExpectedResponse) {
@@ -812,10 +821,9 @@
delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_NETWORK_ERROR);
wallet_client_->GetWalletItems(GURL(kMerchantUrl));
- net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
- ASSERT_TRUE(fetcher);
- fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
- fetcher->delegate()->OnURLFetchComplete(fetcher);
+ VerifyAndFinishRequest(net::HTTP_UNAUTHORIZED,
+ kGetWalletItemsValidRequest,
+ std::string());
}
TEST_F(WalletClientTest, RequestError) {
@@ -824,12 +832,12 @@
delegate_.ExpectBaselineMetrics(NO_ESCROW_REQUEST, HAS_WALLET_REQUEST);
delegate_.ExpectWalletErrorMetric(AutofillMetrics::WALLET_BAD_REQUEST);
- wallet_client_->SendAutocheckoutStatus(
- autofill::SUCCESS, GURL(kMerchantUrl), std::string());
- net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
- ASSERT_TRUE(fetcher);
- fetcher->set_response_code(net::HTTP_BAD_REQUEST);
- fetcher->delegate()->OnURLFetchComplete(fetcher);
+ wallet_client_->SendAutocheckoutStatus(autofill::SUCCESS,
+ GURL(kMerchantUrl),
+ "google_transaction_id");
+ VerifyAndFinishRequest(net::HTTP_BAD_REQUEST,
+ kSendAutocheckoutStatusOfSuccessValidRequest,
+ std::string());
}
TEST_F(WalletClientTest, GetFullWalletSuccess) {
@@ -846,12 +854,8 @@
std::vector<WalletClient::RiskCapability>());
wallet_client_->GetFullWallet(full_wallet_request);
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString(
- "session_material|encrypted_one_time_pad");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK,
+ "session_material|encrypted_one_time_pad");
VerifyAndFinishRequest(net::HTTP_OK,
kGetFullWalletValidRequest,
@@ -875,12 +879,8 @@
risk_capabilities);
wallet_client_->GetFullWallet(full_wallet_request);
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString(
- "session_material|encrypted_one_time_pad");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK,
+ "session_material|encrypted_one_time_pad");
VerifyAndFinishRequest(net::HTTP_OK,
kGetFullWalletWithRiskCapabilitesValidRequest,
@@ -905,11 +905,7 @@
std::vector<WalletClient::RiskCapability>());
wallet_client_->GetFullWallet(full_wallet_request);
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_INTERNAL_SERVER_ERROR);
- encryption_fetcher->SetResponseString(std::string());
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_INTERNAL_SERVER_ERROR, std::string());
EXPECT_EQ(0U, delegate_.full_wallets_received());
}
@@ -930,12 +926,8 @@
std::vector<WalletClient::RiskCapability>());
wallet_client_->GetFullWallet(full_wallet_request);
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString(
- "session_material:encrypted_one_time_pad");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK,
+ "session_material:encrypted_one_time_pad");
EXPECT_EQ(0U, delegate_.full_wallets_received());
}
@@ -956,12 +948,8 @@
std::vector<WalletClient::RiskCapability>());
wallet_client_->GetFullWallet(full_wallet_request);
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString(
- "session_material|encrypted_one_time_pad");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK,
+ "session_material|encrypted_one_time_pad");
VerifyAndFinishRequest(net::HTTP_OK,
kGetFullWalletValidRequest,
@@ -991,12 +979,9 @@
wallet_client_->AcceptLegalDocuments(docs.get(),
kGoogleTransactionId,
GURL(kMerchantUrl));
- net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
- ASSERT_TRUE(fetcher);
- EXPECT_EQ(kAcceptLegalDocumentsValidRequest, GetData(fetcher));
- fetcher->SetResponseString(")]}'"); // Invalid JSON. Should be ignored.
- fetcher->set_response_code(net::HTTP_OK);
- fetcher->delegate()->OnURLFetchComplete(fetcher);
+ VerifyAndFinishRequest(net::HTTP_OK,
+ kAcceptLegalDocumentsValidRequest,
+ ")}'"); // Invalid JSON. Should be ignored.
}
TEST_F(WalletClientTest, AuthenticateInstrumentSucceeded) {
@@ -1010,11 +995,7 @@
"cvv",
"obfuscated_gaia_id");
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, "escrow_handle");
VerifyAndFinishRequest(net::HTTP_OK,
kAuthenticateInstrumentValidRequest,
@@ -1032,11 +1013,7 @@
"cvv",
"obfuscated_gaia_id");
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, "escrow_handle");
VerifyAndFinishRequest(net::HTTP_OK,
kAuthenticateInstrumentValidRequest,
@@ -1056,10 +1033,7 @@
"cvv",
"obfuscated_gaia_id");
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_INTERNAL_SERVER_ERROR);
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_INTERNAL_SERVER_ERROR, std::string());
}
TEST_F(WalletClientTest, AuthenticateInstrumentEscrowMalformed) {
@@ -1074,10 +1048,7 @@
"cvv",
"obfuscated_gaia_id");
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, std::string());
}
TEST_F(WalletClientTest, AuthenticateInstrumentFailedMalformedResponse) {
@@ -1092,11 +1063,7 @@
"cvv",
"obfuscated_gaia_id");
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, "escrow_handle");
VerifyAndFinishRequest(net::HTTP_OK,
kAuthenticateInstrumentValidRequest,
@@ -1193,11 +1160,7 @@
"obfuscated_gaia_id",
GURL(kMerchantUrl));
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, "escrow_handle");
VerifyAndFinishRequest(net::HTTP_OK,
kSaveInstrumentValidRequest,
@@ -1225,11 +1188,7 @@
"obfuscated_gaia_id",
GURL(kMerchantUrl));
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, "escrow_handle");
VerifyAndFinishRequest(net::HTTP_OK,
kSaveInstrumentValidRequest,
@@ -1248,11 +1207,7 @@
"obfuscated_gaia_id",
GURL(kMerchantUrl));
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, "escrow_handle");
VerifyAndFinishRequest(net::HTTP_OK,
kSaveInstrumentValidRequest,
@@ -1271,11 +1226,7 @@
"obfuscated_gaia_id",
GURL(kMerchantUrl));
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_INTERNAL_SERVER_ERROR);
- encryption_fetcher->SetResponseString(std::string());
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_INTERNAL_SERVER_ERROR, std::string());
}
TEST_F(WalletClientTest, SaveInstrumentEscrowMalformed) {
@@ -1289,11 +1240,7 @@
"obfuscated_gaia_id",
GURL(kMerchantUrl));
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString(std::string());
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, std::string());
}
TEST_F(WalletClientTest, SaveInstrumentFailedMalformedResponse) {
@@ -1307,11 +1254,7 @@
"obfuscated_gaia_id",
GURL(kMerchantUrl));
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, "escrow_handle");
VerifyAndFinishRequest(net::HTTP_OK,
kSaveInstrumentValidRequest,
@@ -1336,11 +1279,7 @@
"obfuscated_gaia_id",
GURL(kMerchantUrl));
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, "escrow_handle");
VerifyAndFinishRequest(net::HTTP_OK,
kSaveInstrumentAndAddressValidRequest,
kSaveInstrumentAndAddressValidResponse);
@@ -1373,11 +1312,7 @@
"obfuscated_gaia_id",
GURL(kMerchantUrl));
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, "escrow_handle");
VerifyAndFinishRequest(
net::HTTP_OK,
kSaveInstrumentAndAddressValidRequest,
@@ -1399,11 +1334,7 @@
"obfuscated_gaia_id",
GURL(kMerchantUrl));
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, "escrow_handle");
VerifyAndFinishRequest(net::HTTP_OK,
kSaveInstrumentAndAddressValidRequest,
@@ -1426,11 +1357,7 @@
"obfuscated_gaia_id",
GURL(kMerchantUrl));
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_INTERNAL_SERVER_ERROR);
- encryption_fetcher->SetResponseString(std::string());
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_INTERNAL_SERVER_ERROR, std::string());
}
TEST_F(WalletClientTest, SaveInstrumentAndAddressEscrowMalformed) {
@@ -1448,11 +1375,7 @@
"obfuscated_gaia_id",
GURL(kMerchantUrl));
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString(std::string());
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, std::string());
}
TEST_F(WalletClientTest, SaveInstrumentAndAddressFailedAddressMissing) {
@@ -1470,11 +1393,7 @@
"obfuscated_gaia_id",
GURL(kMerchantUrl));
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, "escrow_handle");
VerifyAndFinishRequest(net::HTTP_OK,
kSaveInstrumentAndAddressValidRequest,
@@ -1496,11 +1415,7 @@
"obfuscated_gaia_id",
GURL(kMerchantUrl));
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, "escrow_handle");
VerifyAndFinishRequest(net::HTTP_OK,
kSaveInstrumentAndAddressValidRequest,
@@ -1615,11 +1530,7 @@
wallet_client_->UpdateInstrument(update_instrument_request,
scoped_ptr<Address>());
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, "escrow_handle");
VerifyAndFinishRequest(net::HTTP_OK,
kUpdateInstrumentExpirationDateValidRequest,
@@ -1643,11 +1554,7 @@
wallet_client_->UpdateInstrument(update_instrument_request, GetTestAddress());
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, "escrow_handle");
VerifyAndFinishRequest(net::HTTP_OK,
kUpdateInstrumentAddressWithNameChangeValidRequest,
@@ -1672,11 +1579,7 @@
update_instrument_request.obfuscated_gaia_id = "obfuscated_gaia_id";
wallet_client_->UpdateInstrument(update_instrument_request, GetTestAddress());
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_OK, "escrow_handle");
VerifyAndFinishRequest(net::HTTP_OK,
kUpdateInstrumentAddressAndExpirationDateValidRequest,
@@ -1746,11 +1649,7 @@
wallet_client_->UpdateInstrument(update_instrument_request, GetTestAddress());
- net::TestURLFetcher* encryption_fetcher = factory_.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_INTERNAL_SERVER_ERROR);
- encryption_fetcher->SetResponseString(std::string());
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
+ DoEncryptionOrEscrowRequest(net::HTTP_INTERNAL_SERVER_ERROR, std::string());
}
TEST_F(WalletClientTest, UpdateInstrumentMalformedResponse) {
diff --git a/components/autofill/browser/webdata/autofill_table.cc b/components/autofill/browser/webdata/autofill_table.cc
index a9c7367..99eeeb4 100644
--- a/components/autofill/browser/webdata/autofill_table.cc
+++ b/components/autofill/browser/webdata/autofill_table.cc
@@ -463,6 +463,16 @@
return s.Succeeded();
}
+bool AutofillTable::HasFormElements() {
+ sql::Statement s(db_->GetUniqueStatement(
+ "SELECT COUNT(*) FROM autofill"));
+ if (!s.Step()) {
+ NOTREACHED();
+ return false;
+ }
+ return s.ColumnInt(0) > 0;
+}
+
bool AutofillTable::RemoveFormElementsAddedBetween(
const Time& delete_begin,
const Time& delete_end,
diff --git a/components/autofill/browser/webdata/autofill_table.h b/components/autofill/browser/webdata/autofill_table.h
index f86302f..0ff0c8f 100644
--- a/components/autofill/browser/webdata/autofill_table.h
+++ b/components/autofill/browser/webdata/autofill_table.h
@@ -154,6 +154,9 @@
std::vector<base::string16>* values,
int limit);
+ // Returns whether any form elements are stored in the database.
+ bool HasFormElements();
+
// Removes rows from autofill_dates if they were created on or after
// |delete_begin| and strictly before |delete_end|. Decrements the
// count of the corresponding rows in the autofill table, and
diff --git a/components/autofill/browser/webdata/autofill_table_unittest.cc b/components/autofill/browser/webdata/autofill_table_unittest.cc
index b4f3264..575ece2 100644
--- a/components/autofill/browser/webdata/autofill_table_unittest.cc
+++ b/components/autofill/browser/webdata/autofill_table_unittest.cc
@@ -140,7 +140,9 @@
field.value = ASCIIToUTF16("Superman");
base::Time now = base::Time::Now();
base::TimeDelta two_seconds = base::TimeDelta::FromSeconds(2);
+ EXPECT_FALSE(table_->HasFormElements());
EXPECT_TRUE(table_->AddFormFieldValue(field, &changes));
+ EXPECT_TRUE(table_->HasFormElements());
std::vector<base::string16> v;
for (int i = 0; i < 5; i++) {
field.value = ASCIIToUTF16("Clark Kent");
diff --git a/components/autofill/browser/webdata/autofill_webdata.h b/components/autofill/browser/webdata/autofill_webdata.h
index 032649b..66f42f8 100644
--- a/components/autofill/browser/webdata/autofill_webdata.h
+++ b/components/autofill/browser/webdata/autofill_webdata.h
@@ -41,6 +41,10 @@
int limit,
WebDataServiceConsumer* consumer) = 0;
+ // Checks if there are any form elements in the database.
+ virtual WebDataServiceBase::Handle HasFormElements(
+ WebDataServiceConsumer* consumer) = 0;
+
// Removes form elements recorded for Autocomplete from the database.
virtual void RemoveFormElementsAddedBetween(
const base::Time& delete_begin, const base::Time& delete_end) = 0;
diff --git a/components/autofill/browser/webdata/autofill_webdata_backend.cc b/components/autofill/browser/webdata/autofill_webdata_backend.cc
index 0cda3d1..e8c5fd8 100644
--- a/components/autofill/browser/webdata/autofill_webdata_backend.cc
+++ b/components/autofill/browser/webdata/autofill_webdata_backend.cc
@@ -72,6 +72,14 @@
values));
}
+scoped_ptr<WDTypedResult> AutofillWebDataBackend::HasFormElements(
+ WebDatabase* db) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB));
+ bool value = AutofillTable::FromWebDatabase(db)->HasFormElements();
+ return scoped_ptr<WDTypedResult>(
+ new WDResult<bool>(AUTOFILL_VALUE_RESULT, value));
+}
+
WebDatabase::State AutofillWebDataBackend::RemoveFormElementsAddedBetween(
const base::Time& delete_begin, const base::Time& delete_end,
WebDatabase* db) {
diff --git a/components/autofill/browser/webdata/autofill_webdata_backend.h b/components/autofill/browser/webdata/autofill_webdata_backend.h
index b1ab6d6..3ab841e 100644
--- a/components/autofill/browser/webdata/autofill_webdata_backend.h
+++ b/components/autofill/browser/webdata/autofill_webdata_backend.h
@@ -44,6 +44,9 @@
int limit,
WebDatabase* db);
+ // Returns true if there are any elements in the form.
+ scoped_ptr<WDTypedResult> HasFormElements(WebDatabase* db);
+
// Removes form elements recorded for Autocomplete from the database.
WebDatabase::State RemoveFormElementsAddedBetween(
const base::Time& delete_begin,
diff --git a/components/autofill/browser/webdata/autofill_webdata_service.cc b/components/autofill/browser/webdata/autofill_webdata_service.cc
index 217f265..1f7e158 100644
--- a/components/autofill/browser/webdata/autofill_webdata_service.cc
+++ b/components/autofill/browser/webdata/autofill_webdata_service.cc
@@ -72,6 +72,13 @@
autofill_backend_, name, prefix, limit), consumer);
}
+WebDataServiceBase::Handle AutofillWebDataService::HasFormElements(
+ WebDataServiceConsumer* consumer) {
+ return wdbs_->ScheduleDBTaskWithResult(FROM_HERE,
+ Bind(&AutofillWebDataBackend::HasFormElements, autofill_backend_),
+ consumer);
+}
+
void AutofillWebDataService::RemoveFormElementsAddedBetween(
const Time& delete_begin, const Time& delete_end) {
wdbs_->ScheduleDBTask(FROM_HERE,
diff --git a/components/autofill/browser/webdata/autofill_webdata_service.h b/components/autofill/browser/webdata/autofill_webdata_service.h
index 87b967c..2ca80ef 100644
--- a/components/autofill/browser/webdata/autofill_webdata_service.h
+++ b/components/autofill/browser/webdata/autofill_webdata_service.h
@@ -65,6 +65,9 @@
const base::string16& prefix,
int limit,
WebDataServiceConsumer* consumer) OVERRIDE;
+
+ virtual WebDataServiceBase::Handle HasFormElements(
+ WebDataServiceConsumer* consumer) OVERRIDE;
virtual void RemoveFormElementsAddedBetween(
const base::Time& delete_begin, const base::Time& delete_end) OVERRIDE;
virtual void RemoveExpiredFormElements() OVERRIDE;
diff --git a/components/autofill_browser.target.darwin-arm.mk b/components/autofill_browser.target.darwin-arm.mk
new file mode 100644
index 0000000..9922a3a
--- /dev/null
+++ b/components/autofill_browser.target.darwin-arm.mk
@@ -0,0 +1,268 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_autofill_browser_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,GYP,components_autofill_regexes_gyp)/autofill_regexes.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,components_autofill_risk_proto_gyp)/components_autofill_risk_proto_gyp.a \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_gyp)/skia_skia_gyp.a \
+ $(call intermediates-dir-for,GYP,third_party_icu_icui18n_gyp)/icui18n.stamp \
+ $(call intermediates-dir-for,GYP,third_party_icu_icuuc_gyp)/icuuc.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,third_party_libphonenumber_libphonenumber_without_metadata_gyp)/third_party_libphonenumber_libphonenumber_without_metadata_gyp.a \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,ui_ui_gyp)/ui_ui_gyp.a \
+ $(call intermediates-dir-for,GYP,webkit_support_webkit_resources_gyp)/webkit_resources.stamp \
+ $(call intermediates-dir-for,GYP,chrome_chrome_strings_gyp)/chrome_strings.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+$(gyp_intermediate_dir)/autofill_regex_constants.cc: $(gyp_shared_intermediate_dir)/autofill_regex_constants.cc
+ mkdir -p $(@D); cp $< $@
+LOCAL_GENERATED_SOURCES := \
+ $(gyp_intermediate_dir)/autofill_regex_constants.cc
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS := \
+ $(gyp_shared_intermediate_dir)
+
+LOCAL_SRC_FILES := \
+ components/autofill/browser/address.cc \
+ components/autofill/browser/address_field.cc \
+ components/autofill/browser/autocheckout/whitelist_manager.cc \
+ components/autofill/browser/autocheckout_manager.cc \
+ components/autofill/browser/autocheckout_page_meta_data.cc \
+ components/autofill/browser/autocheckout_request_manager.cc \
+ components/autofill/browser/autocomplete_history_manager.cc \
+ components/autofill/browser/autofill_country.cc \
+ components/autofill/browser/autofill_data_model.cc \
+ components/autofill/browser/autofill_download.cc \
+ components/autofill/browser/autofill_download_url.cc \
+ components/autofill/browser/autofill_external_delegate.cc \
+ components/autofill/browser/autofill_field.cc \
+ components/autofill/browser/autofill_manager.cc \
+ components/autofill/browser/autofill_metrics.cc \
+ components/autofill/browser/autofill_profile.cc \
+ components/autofill/browser/autofill_regexes.cc \
+ components/autofill/browser/autofill_scanner.cc \
+ components/autofill/browser/autofill_type.cc \
+ components/autofill/browser/autofill_xml_parser.cc \
+ components/autofill/browser/contact_info.cc \
+ components/autofill/browser/credit_card.cc \
+ components/autofill/browser/credit_card_field.cc \
+ components/autofill/browser/email_field.cc \
+ components/autofill/browser/form_field.cc \
+ components/autofill/browser/form_group.cc \
+ components/autofill/browser/form_structure.cc \
+ components/autofill/browser/name_field.cc \
+ components/autofill/browser/password_autofill_manager.cc \
+ components/autofill/browser/password_generator.cc \
+ components/autofill/browser/personal_data_manager.cc \
+ components/autofill/browser/phone_field.cc \
+ components/autofill/browser/phone_number.cc \
+ components/autofill/browser/phone_number_i18n.cc \
+ components/autofill/browser/risk/fingerprint.cc \
+ components/autofill/browser/state_names.cc \
+ components/autofill/browser/validation.cc \
+ components/autofill/browser/wallet/cart.cc \
+ components/autofill/browser/wallet/encryption_escrow_client.cc \
+ components/autofill/browser/wallet/full_wallet.cc \
+ components/autofill/browser/wallet/instrument.cc \
+ components/autofill/browser/wallet/required_action.cc \
+ components/autofill/browser/wallet/wallet_address.cc \
+ components/autofill/browser/wallet/wallet_client.cc \
+ components/autofill/browser/wallet/wallet_items.cc \
+ components/autofill/browser/wallet/wallet_service_url.cc \
+ components/autofill/browser/wallet/wallet_signin_helper.cc \
+ components/autofill/browser/webdata/autofill_change.cc \
+ components/autofill/browser/webdata/autofill_entry.cc \
+ components/autofill/browser/webdata/autofill_table.cc \
+ components/autofill/browser/webdata/autofill_webdata_backend.cc \
+ components/autofill/browser/webdata/autofill_webdata_service.cc
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-DPROTOBUF_USE_DLLS' \
+ '-DGOOGLE_PROTOBUF_NO_RTTI' \
+ '-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER' \
+ '-DSK_BUILD_NO_IMAGE_ENCODE' \
+ '-DSK_DEFERRED_CANVAS_USES_GPIPE=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DGR_AGGRESSIVE_SHADER_OPTS=1' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DSK_BUILD_FOR_ANDROID_NDK' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DFEATURE_ENABLE_SSL' \
+ '-DFEATURE_ENABLE_VOICEMAIL' \
+ '-DEXPAT_RELATIVE_PATH' \
+ '-DGTEST_RELATIVE_PATH' \
+ '-DJSONCPP_RELATIVE_PATH' \
+ '-DNO_MAIN_THREAD_WRAPPING' \
+ '-DNO_SOUND_SYSTEM' \
+ '-DANDROID' \
+ '-DPOSIX' \
+ '-DPOSIX_AVOID_MMAP' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(gyp_shared_intermediate_dir)/protoc_out \
+ $(LOCAL_PATH)/third_party/protobuf \
+ $(LOCAL_PATH)/third_party/protobuf/src \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/icu4c/common \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/libjingle/overrides \
+ $(LOCAL_PATH)/third_party/libjingle/source \
+ $(LOCAL_PATH)/testing/gtest/include \
+ $(LOCAL_PATH)/third_party \
+ $(LOCAL_PATH)/third_party/webrtc \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/expat/lib \
+ $(LOCAL_PATH)/third_party/jsoncpp/overrides/include \
+ $(LOCAL_PATH)/third_party/jsoncpp/source/include \
+ $(gyp_shared_intermediate_dir)/protoc_out/third_party/libphonenumber \
+ $(LOCAL_PATH)/third_party/libphonenumber/src \
+ $(gyp_shared_intermediate_dir)/webkit \
+ $(gyp_shared_intermediate_dir)/chrome \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES := \
+ components_autofill_risk_proto_gyp \
+ skia_skia_gyp \
+ third_party_libphonenumber_libphonenumber_without_metadata_gyp \
+ ui_ui_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_browser_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_browser
+autofill_browser: components_autofill_browser_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/autofill_browser.target.darwin-x86.mk b/components/autofill_browser.target.darwin-x86.mk
new file mode 100644
index 0000000..67df852
--- /dev/null
+++ b/components/autofill_browser.target.darwin-x86.mk
@@ -0,0 +1,266 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_autofill_browser_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,GYP,components_autofill_regexes_gyp)/autofill_regexes.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,components_autofill_risk_proto_gyp)/components_autofill_risk_proto_gyp.a \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_gyp)/skia_skia_gyp.a \
+ $(call intermediates-dir-for,GYP,third_party_icu_icui18n_gyp)/icui18n.stamp \
+ $(call intermediates-dir-for,GYP,third_party_icu_icuuc_gyp)/icuuc.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,third_party_libphonenumber_libphonenumber_without_metadata_gyp)/third_party_libphonenumber_libphonenumber_without_metadata_gyp.a \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,ui_ui_gyp)/ui_ui_gyp.a \
+ $(call intermediates-dir-for,GYP,webkit_support_webkit_resources_gyp)/webkit_resources.stamp \
+ $(call intermediates-dir-for,GYP,chrome_chrome_strings_gyp)/chrome_strings.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+$(gyp_intermediate_dir)/autofill_regex_constants.cc: $(gyp_shared_intermediate_dir)/autofill_regex_constants.cc
+ mkdir -p $(@D); cp $< $@
+LOCAL_GENERATED_SOURCES := \
+ $(gyp_intermediate_dir)/autofill_regex_constants.cc
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS := \
+ $(gyp_shared_intermediate_dir)
+
+LOCAL_SRC_FILES := \
+ components/autofill/browser/address.cc \
+ components/autofill/browser/address_field.cc \
+ components/autofill/browser/autocheckout/whitelist_manager.cc \
+ components/autofill/browser/autocheckout_manager.cc \
+ components/autofill/browser/autocheckout_page_meta_data.cc \
+ components/autofill/browser/autocheckout_request_manager.cc \
+ components/autofill/browser/autocomplete_history_manager.cc \
+ components/autofill/browser/autofill_country.cc \
+ components/autofill/browser/autofill_data_model.cc \
+ components/autofill/browser/autofill_download.cc \
+ components/autofill/browser/autofill_download_url.cc \
+ components/autofill/browser/autofill_external_delegate.cc \
+ components/autofill/browser/autofill_field.cc \
+ components/autofill/browser/autofill_manager.cc \
+ components/autofill/browser/autofill_metrics.cc \
+ components/autofill/browser/autofill_profile.cc \
+ components/autofill/browser/autofill_regexes.cc \
+ components/autofill/browser/autofill_scanner.cc \
+ components/autofill/browser/autofill_type.cc \
+ components/autofill/browser/autofill_xml_parser.cc \
+ components/autofill/browser/contact_info.cc \
+ components/autofill/browser/credit_card.cc \
+ components/autofill/browser/credit_card_field.cc \
+ components/autofill/browser/email_field.cc \
+ components/autofill/browser/form_field.cc \
+ components/autofill/browser/form_group.cc \
+ components/autofill/browser/form_structure.cc \
+ components/autofill/browser/name_field.cc \
+ components/autofill/browser/password_autofill_manager.cc \
+ components/autofill/browser/password_generator.cc \
+ components/autofill/browser/personal_data_manager.cc \
+ components/autofill/browser/phone_field.cc \
+ components/autofill/browser/phone_number.cc \
+ components/autofill/browser/phone_number_i18n.cc \
+ components/autofill/browser/risk/fingerprint.cc \
+ components/autofill/browser/state_names.cc \
+ components/autofill/browser/validation.cc \
+ components/autofill/browser/wallet/cart.cc \
+ components/autofill/browser/wallet/encryption_escrow_client.cc \
+ components/autofill/browser/wallet/full_wallet.cc \
+ components/autofill/browser/wallet/instrument.cc \
+ components/autofill/browser/wallet/required_action.cc \
+ components/autofill/browser/wallet/wallet_address.cc \
+ components/autofill/browser/wallet/wallet_client.cc \
+ components/autofill/browser/wallet/wallet_items.cc \
+ components/autofill/browser/wallet/wallet_service_url.cc \
+ components/autofill/browser/wallet/wallet_signin_helper.cc \
+ components/autofill/browser/webdata/autofill_change.cc \
+ components/autofill/browser/webdata/autofill_entry.cc \
+ components/autofill/browser/webdata/autofill_table.cc \
+ components/autofill/browser/webdata/autofill_webdata_backend.cc \
+ components/autofill/browser/webdata/autofill_webdata_service.cc
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -fno-stack-protector \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-DPROTOBUF_USE_DLLS' \
+ '-DGOOGLE_PROTOBUF_NO_RTTI' \
+ '-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER' \
+ '-DSK_BUILD_NO_IMAGE_ENCODE' \
+ '-DSK_DEFERRED_CANVAS_USES_GPIPE=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DGR_AGGRESSIVE_SHADER_OPTS=1' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DSK_BUILD_FOR_ANDROID_NDK' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DFEATURE_ENABLE_SSL' \
+ '-DFEATURE_ENABLE_VOICEMAIL' \
+ '-DEXPAT_RELATIVE_PATH' \
+ '-DGTEST_RELATIVE_PATH' \
+ '-DJSONCPP_RELATIVE_PATH' \
+ '-DNO_MAIN_THREAD_WRAPPING' \
+ '-DNO_SOUND_SYSTEM' \
+ '-DANDROID' \
+ '-DPOSIX' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(gyp_shared_intermediate_dir)/protoc_out \
+ $(LOCAL_PATH)/third_party/protobuf \
+ $(LOCAL_PATH)/third_party/protobuf/src \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/icu4c/common \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/libjingle/overrides \
+ $(LOCAL_PATH)/third_party/libjingle/source \
+ $(LOCAL_PATH)/testing/gtest/include \
+ $(LOCAL_PATH)/third_party \
+ $(LOCAL_PATH)/third_party/webrtc \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/expat/lib \
+ $(LOCAL_PATH)/third_party/jsoncpp/overrides/include \
+ $(LOCAL_PATH)/third_party/jsoncpp/source/include \
+ $(gyp_shared_intermediate_dir)/protoc_out/third_party/libphonenumber \
+ $(LOCAL_PATH)/third_party/libphonenumber/src \
+ $(gyp_shared_intermediate_dir)/webkit \
+ $(gyp_shared_intermediate_dir)/chrome \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES := \
+ components_autofill_risk_proto_gyp \
+ skia_skia_gyp \
+ third_party_libphonenumber_libphonenumber_without_metadata_gyp \
+ ui_ui_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_browser_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_browser
+autofill_browser: components_autofill_browser_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/autofill_browser.target.linux-arm.mk b/components/autofill_browser.target.linux-arm.mk
new file mode 100644
index 0000000..9922a3a
--- /dev/null
+++ b/components/autofill_browser.target.linux-arm.mk
@@ -0,0 +1,268 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_autofill_browser_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,GYP,components_autofill_regexes_gyp)/autofill_regexes.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,components_autofill_risk_proto_gyp)/components_autofill_risk_proto_gyp.a \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_gyp)/skia_skia_gyp.a \
+ $(call intermediates-dir-for,GYP,third_party_icu_icui18n_gyp)/icui18n.stamp \
+ $(call intermediates-dir-for,GYP,third_party_icu_icuuc_gyp)/icuuc.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,third_party_libphonenumber_libphonenumber_without_metadata_gyp)/third_party_libphonenumber_libphonenumber_without_metadata_gyp.a \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,ui_ui_gyp)/ui_ui_gyp.a \
+ $(call intermediates-dir-for,GYP,webkit_support_webkit_resources_gyp)/webkit_resources.stamp \
+ $(call intermediates-dir-for,GYP,chrome_chrome_strings_gyp)/chrome_strings.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+$(gyp_intermediate_dir)/autofill_regex_constants.cc: $(gyp_shared_intermediate_dir)/autofill_regex_constants.cc
+ mkdir -p $(@D); cp $< $@
+LOCAL_GENERATED_SOURCES := \
+ $(gyp_intermediate_dir)/autofill_regex_constants.cc
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS := \
+ $(gyp_shared_intermediate_dir)
+
+LOCAL_SRC_FILES := \
+ components/autofill/browser/address.cc \
+ components/autofill/browser/address_field.cc \
+ components/autofill/browser/autocheckout/whitelist_manager.cc \
+ components/autofill/browser/autocheckout_manager.cc \
+ components/autofill/browser/autocheckout_page_meta_data.cc \
+ components/autofill/browser/autocheckout_request_manager.cc \
+ components/autofill/browser/autocomplete_history_manager.cc \
+ components/autofill/browser/autofill_country.cc \
+ components/autofill/browser/autofill_data_model.cc \
+ components/autofill/browser/autofill_download.cc \
+ components/autofill/browser/autofill_download_url.cc \
+ components/autofill/browser/autofill_external_delegate.cc \
+ components/autofill/browser/autofill_field.cc \
+ components/autofill/browser/autofill_manager.cc \
+ components/autofill/browser/autofill_metrics.cc \
+ components/autofill/browser/autofill_profile.cc \
+ components/autofill/browser/autofill_regexes.cc \
+ components/autofill/browser/autofill_scanner.cc \
+ components/autofill/browser/autofill_type.cc \
+ components/autofill/browser/autofill_xml_parser.cc \
+ components/autofill/browser/contact_info.cc \
+ components/autofill/browser/credit_card.cc \
+ components/autofill/browser/credit_card_field.cc \
+ components/autofill/browser/email_field.cc \
+ components/autofill/browser/form_field.cc \
+ components/autofill/browser/form_group.cc \
+ components/autofill/browser/form_structure.cc \
+ components/autofill/browser/name_field.cc \
+ components/autofill/browser/password_autofill_manager.cc \
+ components/autofill/browser/password_generator.cc \
+ components/autofill/browser/personal_data_manager.cc \
+ components/autofill/browser/phone_field.cc \
+ components/autofill/browser/phone_number.cc \
+ components/autofill/browser/phone_number_i18n.cc \
+ components/autofill/browser/risk/fingerprint.cc \
+ components/autofill/browser/state_names.cc \
+ components/autofill/browser/validation.cc \
+ components/autofill/browser/wallet/cart.cc \
+ components/autofill/browser/wallet/encryption_escrow_client.cc \
+ components/autofill/browser/wallet/full_wallet.cc \
+ components/autofill/browser/wallet/instrument.cc \
+ components/autofill/browser/wallet/required_action.cc \
+ components/autofill/browser/wallet/wallet_address.cc \
+ components/autofill/browser/wallet/wallet_client.cc \
+ components/autofill/browser/wallet/wallet_items.cc \
+ components/autofill/browser/wallet/wallet_service_url.cc \
+ components/autofill/browser/wallet/wallet_signin_helper.cc \
+ components/autofill/browser/webdata/autofill_change.cc \
+ components/autofill/browser/webdata/autofill_entry.cc \
+ components/autofill/browser/webdata/autofill_table.cc \
+ components/autofill/browser/webdata/autofill_webdata_backend.cc \
+ components/autofill/browser/webdata/autofill_webdata_service.cc
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-DPROTOBUF_USE_DLLS' \
+ '-DGOOGLE_PROTOBUF_NO_RTTI' \
+ '-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER' \
+ '-DSK_BUILD_NO_IMAGE_ENCODE' \
+ '-DSK_DEFERRED_CANVAS_USES_GPIPE=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DGR_AGGRESSIVE_SHADER_OPTS=1' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DSK_BUILD_FOR_ANDROID_NDK' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DFEATURE_ENABLE_SSL' \
+ '-DFEATURE_ENABLE_VOICEMAIL' \
+ '-DEXPAT_RELATIVE_PATH' \
+ '-DGTEST_RELATIVE_PATH' \
+ '-DJSONCPP_RELATIVE_PATH' \
+ '-DNO_MAIN_THREAD_WRAPPING' \
+ '-DNO_SOUND_SYSTEM' \
+ '-DANDROID' \
+ '-DPOSIX' \
+ '-DPOSIX_AVOID_MMAP' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(gyp_shared_intermediate_dir)/protoc_out \
+ $(LOCAL_PATH)/third_party/protobuf \
+ $(LOCAL_PATH)/third_party/protobuf/src \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/icu4c/common \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/libjingle/overrides \
+ $(LOCAL_PATH)/third_party/libjingle/source \
+ $(LOCAL_PATH)/testing/gtest/include \
+ $(LOCAL_PATH)/third_party \
+ $(LOCAL_PATH)/third_party/webrtc \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/expat/lib \
+ $(LOCAL_PATH)/third_party/jsoncpp/overrides/include \
+ $(LOCAL_PATH)/third_party/jsoncpp/source/include \
+ $(gyp_shared_intermediate_dir)/protoc_out/third_party/libphonenumber \
+ $(LOCAL_PATH)/third_party/libphonenumber/src \
+ $(gyp_shared_intermediate_dir)/webkit \
+ $(gyp_shared_intermediate_dir)/chrome \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES := \
+ components_autofill_risk_proto_gyp \
+ skia_skia_gyp \
+ third_party_libphonenumber_libphonenumber_without_metadata_gyp \
+ ui_ui_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_browser_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_browser
+autofill_browser: components_autofill_browser_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/autofill_browser.target.linux-x86.mk b/components/autofill_browser.target.linux-x86.mk
new file mode 100644
index 0000000..67df852
--- /dev/null
+++ b/components/autofill_browser.target.linux-x86.mk
@@ -0,0 +1,266 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_autofill_browser_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,GYP,components_autofill_regexes_gyp)/autofill_regexes.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,components_autofill_risk_proto_gyp)/components_autofill_risk_proto_gyp.a \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_gyp)/skia_skia_gyp.a \
+ $(call intermediates-dir-for,GYP,third_party_icu_icui18n_gyp)/icui18n.stamp \
+ $(call intermediates-dir-for,GYP,third_party_icu_icuuc_gyp)/icuuc.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,third_party_libphonenumber_libphonenumber_without_metadata_gyp)/third_party_libphonenumber_libphonenumber_without_metadata_gyp.a \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,ui_ui_gyp)/ui_ui_gyp.a \
+ $(call intermediates-dir-for,GYP,webkit_support_webkit_resources_gyp)/webkit_resources.stamp \
+ $(call intermediates-dir-for,GYP,chrome_chrome_strings_gyp)/chrome_strings.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+$(gyp_intermediate_dir)/autofill_regex_constants.cc: $(gyp_shared_intermediate_dir)/autofill_regex_constants.cc
+ mkdir -p $(@D); cp $< $@
+LOCAL_GENERATED_SOURCES := \
+ $(gyp_intermediate_dir)/autofill_regex_constants.cc
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS := \
+ $(gyp_shared_intermediate_dir)
+
+LOCAL_SRC_FILES := \
+ components/autofill/browser/address.cc \
+ components/autofill/browser/address_field.cc \
+ components/autofill/browser/autocheckout/whitelist_manager.cc \
+ components/autofill/browser/autocheckout_manager.cc \
+ components/autofill/browser/autocheckout_page_meta_data.cc \
+ components/autofill/browser/autocheckout_request_manager.cc \
+ components/autofill/browser/autocomplete_history_manager.cc \
+ components/autofill/browser/autofill_country.cc \
+ components/autofill/browser/autofill_data_model.cc \
+ components/autofill/browser/autofill_download.cc \
+ components/autofill/browser/autofill_download_url.cc \
+ components/autofill/browser/autofill_external_delegate.cc \
+ components/autofill/browser/autofill_field.cc \
+ components/autofill/browser/autofill_manager.cc \
+ components/autofill/browser/autofill_metrics.cc \
+ components/autofill/browser/autofill_profile.cc \
+ components/autofill/browser/autofill_regexes.cc \
+ components/autofill/browser/autofill_scanner.cc \
+ components/autofill/browser/autofill_type.cc \
+ components/autofill/browser/autofill_xml_parser.cc \
+ components/autofill/browser/contact_info.cc \
+ components/autofill/browser/credit_card.cc \
+ components/autofill/browser/credit_card_field.cc \
+ components/autofill/browser/email_field.cc \
+ components/autofill/browser/form_field.cc \
+ components/autofill/browser/form_group.cc \
+ components/autofill/browser/form_structure.cc \
+ components/autofill/browser/name_field.cc \
+ components/autofill/browser/password_autofill_manager.cc \
+ components/autofill/browser/password_generator.cc \
+ components/autofill/browser/personal_data_manager.cc \
+ components/autofill/browser/phone_field.cc \
+ components/autofill/browser/phone_number.cc \
+ components/autofill/browser/phone_number_i18n.cc \
+ components/autofill/browser/risk/fingerprint.cc \
+ components/autofill/browser/state_names.cc \
+ components/autofill/browser/validation.cc \
+ components/autofill/browser/wallet/cart.cc \
+ components/autofill/browser/wallet/encryption_escrow_client.cc \
+ components/autofill/browser/wallet/full_wallet.cc \
+ components/autofill/browser/wallet/instrument.cc \
+ components/autofill/browser/wallet/required_action.cc \
+ components/autofill/browser/wallet/wallet_address.cc \
+ components/autofill/browser/wallet/wallet_client.cc \
+ components/autofill/browser/wallet/wallet_items.cc \
+ components/autofill/browser/wallet/wallet_service_url.cc \
+ components/autofill/browser/wallet/wallet_signin_helper.cc \
+ components/autofill/browser/webdata/autofill_change.cc \
+ components/autofill/browser/webdata/autofill_entry.cc \
+ components/autofill/browser/webdata/autofill_table.cc \
+ components/autofill/browser/webdata/autofill_webdata_backend.cc \
+ components/autofill/browser/webdata/autofill_webdata_service.cc
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -fno-stack-protector \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-DPROTOBUF_USE_DLLS' \
+ '-DGOOGLE_PROTOBUF_NO_RTTI' \
+ '-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER' \
+ '-DSK_BUILD_NO_IMAGE_ENCODE' \
+ '-DSK_DEFERRED_CANVAS_USES_GPIPE=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DGR_AGGRESSIVE_SHADER_OPTS=1' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DSK_BUILD_FOR_ANDROID_NDK' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DFEATURE_ENABLE_SSL' \
+ '-DFEATURE_ENABLE_VOICEMAIL' \
+ '-DEXPAT_RELATIVE_PATH' \
+ '-DGTEST_RELATIVE_PATH' \
+ '-DJSONCPP_RELATIVE_PATH' \
+ '-DNO_MAIN_THREAD_WRAPPING' \
+ '-DNO_SOUND_SYSTEM' \
+ '-DANDROID' \
+ '-DPOSIX' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(gyp_shared_intermediate_dir)/protoc_out \
+ $(LOCAL_PATH)/third_party/protobuf \
+ $(LOCAL_PATH)/third_party/protobuf/src \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/icu4c/common \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/libjingle/overrides \
+ $(LOCAL_PATH)/third_party/libjingle/source \
+ $(LOCAL_PATH)/testing/gtest/include \
+ $(LOCAL_PATH)/third_party \
+ $(LOCAL_PATH)/third_party/webrtc \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/expat/lib \
+ $(LOCAL_PATH)/third_party/jsoncpp/overrides/include \
+ $(LOCAL_PATH)/third_party/jsoncpp/source/include \
+ $(gyp_shared_intermediate_dir)/protoc_out/third_party/libphonenumber \
+ $(LOCAL_PATH)/third_party/libphonenumber/src \
+ $(gyp_shared_intermediate_dir)/webkit \
+ $(gyp_shared_intermediate_dir)/chrome \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES := \
+ components_autofill_risk_proto_gyp \
+ skia_skia_gyp \
+ third_party_libphonenumber_libphonenumber_without_metadata_gyp \
+ ui_ui_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_browser_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_browser
+autofill_browser: components_autofill_browser_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/autofill_common.target.darwin-arm.mk b/components/autofill_common.target.darwin-arm.mk
new file mode 100644
index 0000000..c48d85a
--- /dev/null
+++ b/components/autofill_common.target.darwin-arm.mk
@@ -0,0 +1,199 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_autofill_common_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_gyp)/skia_skia_gyp.a \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,ui_ui_gyp)/ui_ui_gyp.a \
+ $(call intermediates-dir-for,GYP,components_autofill_jni_headers_gyp)/autofill_jni_headers.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ components/autofill/browser/android/auxiliary_profile_loader_android.cc \
+ components/autofill/browser/android/auxiliary_profiles_android.cc \
+ components/autofill/browser/android/component_jni_registrar.cc \
+ components/autofill/browser/android/personal_data_manager_android.cc \
+ components/autofill/common/autofill_constants.cc \
+ components/autofill/common/autofill_message_generator.cc \
+ components/autofill/common/autofill_pref_names.cc \
+ components/autofill/common/autofill_switches.cc \
+ components/autofill/common/form_data.cc \
+ components/autofill/common/form_data_predictions.cc \
+ components/autofill/common/form_field_data.cc \
+ components/autofill/common/form_field_data_predictions.cc \
+ components/autofill/common/password_form_fill_data.cc \
+ components/autofill/common/password_generation_util.cc \
+ components/autofill/common/web_element_descriptor.cc
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-DSK_BUILD_NO_IMAGE_ENCODE' \
+ '-DSK_DEFERRED_CANVAS_USES_GPIPE=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DGR_AGGRESSIVE_SHADER_OPTS=1' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DSK_BUILD_FOR_ANDROID_NDK' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DPOSIX_AVOID_MMAP' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(gyp_shared_intermediate_dir)/autofill \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(LOCAL_PATH)/third_party/WebKit/Source/Platform/chromium \
+ $(LOCAL_PATH)/third_party/WebKit/Source/Platform/chromium \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/icu4c/common \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/npapi \
+ $(LOCAL_PATH)/third_party/npapi/bindings \
+ $(LOCAL_PATH)/v8/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES := \
+ skia_skia_gyp \
+ ui_ui_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_common_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_common
+autofill_common: components_autofill_common_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/autofill_common.target.darwin-x86.mk b/components/autofill_common.target.darwin-x86.mk
new file mode 100644
index 0000000..ddc5eac
--- /dev/null
+++ b/components/autofill_common.target.darwin-x86.mk
@@ -0,0 +1,197 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_autofill_common_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_gyp)/skia_skia_gyp.a \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,ui_ui_gyp)/ui_ui_gyp.a \
+ $(call intermediates-dir-for,GYP,components_autofill_jni_headers_gyp)/autofill_jni_headers.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ components/autofill/browser/android/auxiliary_profile_loader_android.cc \
+ components/autofill/browser/android/auxiliary_profiles_android.cc \
+ components/autofill/browser/android/component_jni_registrar.cc \
+ components/autofill/browser/android/personal_data_manager_android.cc \
+ components/autofill/common/autofill_constants.cc \
+ components/autofill/common/autofill_message_generator.cc \
+ components/autofill/common/autofill_pref_names.cc \
+ components/autofill/common/autofill_switches.cc \
+ components/autofill/common/form_data.cc \
+ components/autofill/common/form_data_predictions.cc \
+ components/autofill/common/form_field_data.cc \
+ components/autofill/common/form_field_data_predictions.cc \
+ components/autofill/common/password_form_fill_data.cc \
+ components/autofill/common/password_generation_util.cc \
+ components/autofill/common/web_element_descriptor.cc
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -fno-stack-protector \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-DSK_BUILD_NO_IMAGE_ENCODE' \
+ '-DSK_DEFERRED_CANVAS_USES_GPIPE=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DGR_AGGRESSIVE_SHADER_OPTS=1' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DSK_BUILD_FOR_ANDROID_NDK' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(gyp_shared_intermediate_dir)/autofill \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(LOCAL_PATH)/third_party/WebKit/Source/Platform/chromium \
+ $(LOCAL_PATH)/third_party/WebKit/Source/Platform/chromium \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/icu4c/common \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/npapi \
+ $(LOCAL_PATH)/third_party/npapi/bindings \
+ $(LOCAL_PATH)/v8/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES := \
+ skia_skia_gyp \
+ ui_ui_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_common_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_common
+autofill_common: components_autofill_common_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/autofill_common.target.linux-arm.mk b/components/autofill_common.target.linux-arm.mk
new file mode 100644
index 0000000..c48d85a
--- /dev/null
+++ b/components/autofill_common.target.linux-arm.mk
@@ -0,0 +1,199 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_autofill_common_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_gyp)/skia_skia_gyp.a \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,ui_ui_gyp)/ui_ui_gyp.a \
+ $(call intermediates-dir-for,GYP,components_autofill_jni_headers_gyp)/autofill_jni_headers.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ components/autofill/browser/android/auxiliary_profile_loader_android.cc \
+ components/autofill/browser/android/auxiliary_profiles_android.cc \
+ components/autofill/browser/android/component_jni_registrar.cc \
+ components/autofill/browser/android/personal_data_manager_android.cc \
+ components/autofill/common/autofill_constants.cc \
+ components/autofill/common/autofill_message_generator.cc \
+ components/autofill/common/autofill_pref_names.cc \
+ components/autofill/common/autofill_switches.cc \
+ components/autofill/common/form_data.cc \
+ components/autofill/common/form_data_predictions.cc \
+ components/autofill/common/form_field_data.cc \
+ components/autofill/common/form_field_data_predictions.cc \
+ components/autofill/common/password_form_fill_data.cc \
+ components/autofill/common/password_generation_util.cc \
+ components/autofill/common/web_element_descriptor.cc
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-DSK_BUILD_NO_IMAGE_ENCODE' \
+ '-DSK_DEFERRED_CANVAS_USES_GPIPE=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DGR_AGGRESSIVE_SHADER_OPTS=1' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DSK_BUILD_FOR_ANDROID_NDK' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DPOSIX_AVOID_MMAP' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(gyp_shared_intermediate_dir)/autofill \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(LOCAL_PATH)/third_party/WebKit/Source/Platform/chromium \
+ $(LOCAL_PATH)/third_party/WebKit/Source/Platform/chromium \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/icu4c/common \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/npapi \
+ $(LOCAL_PATH)/third_party/npapi/bindings \
+ $(LOCAL_PATH)/v8/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES := \
+ skia_skia_gyp \
+ ui_ui_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_common_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_common
+autofill_common: components_autofill_common_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/autofill_common.target.linux-x86.mk b/components/autofill_common.target.linux-x86.mk
new file mode 100644
index 0000000..ddc5eac
--- /dev/null
+++ b/components/autofill_common.target.linux-x86.mk
@@ -0,0 +1,197 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_autofill_common_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_gyp)/skia_skia_gyp.a \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,ui_ui_gyp)/ui_ui_gyp.a \
+ $(call intermediates-dir-for,GYP,components_autofill_jni_headers_gyp)/autofill_jni_headers.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ components/autofill/browser/android/auxiliary_profile_loader_android.cc \
+ components/autofill/browser/android/auxiliary_profiles_android.cc \
+ components/autofill/browser/android/component_jni_registrar.cc \
+ components/autofill/browser/android/personal_data_manager_android.cc \
+ components/autofill/common/autofill_constants.cc \
+ components/autofill/common/autofill_message_generator.cc \
+ components/autofill/common/autofill_pref_names.cc \
+ components/autofill/common/autofill_switches.cc \
+ components/autofill/common/form_data.cc \
+ components/autofill/common/form_data_predictions.cc \
+ components/autofill/common/form_field_data.cc \
+ components/autofill/common/form_field_data_predictions.cc \
+ components/autofill/common/password_form_fill_data.cc \
+ components/autofill/common/password_generation_util.cc \
+ components/autofill/common/web_element_descriptor.cc
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -fno-stack-protector \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-DSK_BUILD_NO_IMAGE_ENCODE' \
+ '-DSK_DEFERRED_CANVAS_USES_GPIPE=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DGR_AGGRESSIVE_SHADER_OPTS=1' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DSK_BUILD_FOR_ANDROID_NDK' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(gyp_shared_intermediate_dir)/autofill \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(LOCAL_PATH)/third_party/WebKit/Source/Platform/chromium \
+ $(LOCAL_PATH)/third_party/WebKit/Source/Platform/chromium \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/icu4c/common \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/npapi \
+ $(LOCAL_PATH)/third_party/npapi/bindings \
+ $(LOCAL_PATH)/v8/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES := \
+ skia_skia_gyp \
+ ui_ui_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_common_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_common
+autofill_common: components_autofill_common_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/autofill_jni_headers.target.darwin-arm.mk b/components/autofill_jni_headers.target.darwin-arm.mk
new file mode 100644
index 0000000..a1ced87
--- /dev/null
+++ b/components/autofill_jni_headers.target.darwin-arm.mk
@@ -0,0 +1,142 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := GYP
+LOCAL_MODULE := components_autofill_jni_headers_gyp
+LOCAL_MODULE_STEM := autofill_jni_headers
+LOCAL_MODULE_SUFFIX := .stamp
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES :=
+
+
+### Generated for rule "components_components_gyp_autofill_jni_headers_target_generate_jni_headers":
+# "{'inputs': ['../base/android/jni_generator/jni_generator.py'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/autofill/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['autofill/browser/android/java/src/org/chromium/components/browser/autofill/PersonalAutofillPopulator.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/autofill/jni', '--optimize_generation', '0'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: gyp_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_intermediate_dir)
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: gyp_shared_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_shared_intermediate_dir)
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: $(LOCAL_PATH)/components/autofill/browser/android/java/src/org/chromium/components/browser/autofill/PersonalAutofillPopulator.java $(LOCAL_PATH)/base/android/jni_generator/jni_generator.py $(GYP_TARGET_DEPENDENCIES)
+ mkdir -p $(gyp_shared_intermediate_dir)/autofill/jni; cd $(gyp_local_path)/components; ../base/android/jni_generator/jni_generator.py --input_file autofill/browser/android/java/src/org/chromium/components/browser/autofill/PersonalAutofillPopulator.java --output_dir "$(gyp_shared_intermediate_dir)/autofill/jni" --optimize_generation 0
+
+.PHONY: components_autofill_jni_headers_gyp_rule_trigger
+components_autofill_jni_headers_gyp_rule_trigger: $(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h
+
+### Finished generating for all rules
+
+GYP_GENERATED_OUTPUTS := \
+ $(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_GENERATED_SOURCES := \
+ $(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h \
+ components_autofill_jni_headers_gyp_rule_trigger
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES :=
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_jni_headers_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_jni_headers
+autofill_jni_headers: components_autofill_jni_headers_gyp
+
+LOCAL_MODULE_PATH := $(PRODUCT_OUT)/gyp_stamp
+LOCAL_UNINSTALLABLE_MODULE := true
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+$(LOCAL_BUILT_MODULE): $(LOCAL_ADDITIONAL_DEPENDENCIES)
+ $(hide) echo "Gyp timestamp: $@"
+ $(hide) mkdir -p $(dir $@)
+ $(hide) touch $@
diff --git a/components/autofill_jni_headers.target.darwin-x86.mk b/components/autofill_jni_headers.target.darwin-x86.mk
new file mode 100644
index 0000000..45a1cf3
--- /dev/null
+++ b/components/autofill_jni_headers.target.darwin-x86.mk
@@ -0,0 +1,143 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := GYP
+LOCAL_MODULE := components_autofill_jni_headers_gyp
+LOCAL_MODULE_STEM := autofill_jni_headers
+LOCAL_MODULE_SUFFIX := .stamp
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES :=
+
+
+### Generated for rule "components_components_gyp_autofill_jni_headers_target_generate_jni_headers":
+# "{'inputs': ['../base/android/jni_generator/jni_generator.py'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/autofill/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['autofill/browser/android/java/src/org/chromium/components/browser/autofill/PersonalAutofillPopulator.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/autofill/jni', '--optimize_generation', '0'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: gyp_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_intermediate_dir)
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: gyp_shared_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_shared_intermediate_dir)
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: $(LOCAL_PATH)/components/autofill/browser/android/java/src/org/chromium/components/browser/autofill/PersonalAutofillPopulator.java $(LOCAL_PATH)/base/android/jni_generator/jni_generator.py $(GYP_TARGET_DEPENDENCIES)
+ mkdir -p $(gyp_shared_intermediate_dir)/autofill/jni; cd $(gyp_local_path)/components; ../base/android/jni_generator/jni_generator.py --input_file autofill/browser/android/java/src/org/chromium/components/browser/autofill/PersonalAutofillPopulator.java --output_dir "$(gyp_shared_intermediate_dir)/autofill/jni" --optimize_generation 0
+
+.PHONY: components_autofill_jni_headers_gyp_rule_trigger
+components_autofill_jni_headers_gyp_rule_trigger: $(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h
+
+### Finished generating for all rules
+
+GYP_GENERATED_OUTPUTS := \
+ $(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_GENERATED_SOURCES := \
+ $(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h \
+ components_autofill_jni_headers_gyp_rule_trigger
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES :=
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -fno-stack-protector \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_jni_headers_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_jni_headers
+autofill_jni_headers: components_autofill_jni_headers_gyp
+
+LOCAL_MODULE_PATH := $(PRODUCT_OUT)/gyp_stamp
+LOCAL_UNINSTALLABLE_MODULE := true
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+$(LOCAL_BUILT_MODULE): $(LOCAL_ADDITIONAL_DEPENDENCIES)
+ $(hide) echo "Gyp timestamp: $@"
+ $(hide) mkdir -p $(dir $@)
+ $(hide) touch $@
diff --git a/components/autofill_jni_headers.target.linux-arm.mk b/components/autofill_jni_headers.target.linux-arm.mk
new file mode 100644
index 0000000..a1ced87
--- /dev/null
+++ b/components/autofill_jni_headers.target.linux-arm.mk
@@ -0,0 +1,142 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := GYP
+LOCAL_MODULE := components_autofill_jni_headers_gyp
+LOCAL_MODULE_STEM := autofill_jni_headers
+LOCAL_MODULE_SUFFIX := .stamp
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES :=
+
+
+### Generated for rule "components_components_gyp_autofill_jni_headers_target_generate_jni_headers":
+# "{'inputs': ['../base/android/jni_generator/jni_generator.py'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/autofill/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['autofill/browser/android/java/src/org/chromium/components/browser/autofill/PersonalAutofillPopulator.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/autofill/jni', '--optimize_generation', '0'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: gyp_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_intermediate_dir)
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: gyp_shared_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_shared_intermediate_dir)
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: $(LOCAL_PATH)/components/autofill/browser/android/java/src/org/chromium/components/browser/autofill/PersonalAutofillPopulator.java $(LOCAL_PATH)/base/android/jni_generator/jni_generator.py $(GYP_TARGET_DEPENDENCIES)
+ mkdir -p $(gyp_shared_intermediate_dir)/autofill/jni; cd $(gyp_local_path)/components; ../base/android/jni_generator/jni_generator.py --input_file autofill/browser/android/java/src/org/chromium/components/browser/autofill/PersonalAutofillPopulator.java --output_dir "$(gyp_shared_intermediate_dir)/autofill/jni" --optimize_generation 0
+
+.PHONY: components_autofill_jni_headers_gyp_rule_trigger
+components_autofill_jni_headers_gyp_rule_trigger: $(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h
+
+### Finished generating for all rules
+
+GYP_GENERATED_OUTPUTS := \
+ $(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_GENERATED_SOURCES := \
+ $(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h \
+ components_autofill_jni_headers_gyp_rule_trigger
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES :=
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_jni_headers_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_jni_headers
+autofill_jni_headers: components_autofill_jni_headers_gyp
+
+LOCAL_MODULE_PATH := $(PRODUCT_OUT)/gyp_stamp
+LOCAL_UNINSTALLABLE_MODULE := true
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+$(LOCAL_BUILT_MODULE): $(LOCAL_ADDITIONAL_DEPENDENCIES)
+ $(hide) echo "Gyp timestamp: $@"
+ $(hide) mkdir -p $(dir $@)
+ $(hide) touch $@
diff --git a/components/autofill_jni_headers.target.linux-x86.mk b/components/autofill_jni_headers.target.linux-x86.mk
new file mode 100644
index 0000000..45a1cf3
--- /dev/null
+++ b/components/autofill_jni_headers.target.linux-x86.mk
@@ -0,0 +1,143 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := GYP
+LOCAL_MODULE := components_autofill_jni_headers_gyp
+LOCAL_MODULE_STEM := autofill_jni_headers
+LOCAL_MODULE_SUFFIX := .stamp
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES :=
+
+
+### Generated for rule "components_components_gyp_autofill_jni_headers_target_generate_jni_headers":
+# "{'inputs': ['../base/android/jni_generator/jni_generator.py'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/autofill/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['autofill/browser/android/java/src/org/chromium/components/browser/autofill/PersonalAutofillPopulator.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/autofill/jni', '--optimize_generation', '0'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: gyp_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_intermediate_dir)
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: gyp_shared_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_shared_intermediate_dir)
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h: $(LOCAL_PATH)/components/autofill/browser/android/java/src/org/chromium/components/browser/autofill/PersonalAutofillPopulator.java $(LOCAL_PATH)/base/android/jni_generator/jni_generator.py $(GYP_TARGET_DEPENDENCIES)
+ mkdir -p $(gyp_shared_intermediate_dir)/autofill/jni; cd $(gyp_local_path)/components; ../base/android/jni_generator/jni_generator.py --input_file autofill/browser/android/java/src/org/chromium/components/browser/autofill/PersonalAutofillPopulator.java --output_dir "$(gyp_shared_intermediate_dir)/autofill/jni" --optimize_generation 0
+
+.PHONY: components_autofill_jni_headers_gyp_rule_trigger
+components_autofill_jni_headers_gyp_rule_trigger: $(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h
+
+### Finished generating for all rules
+
+GYP_GENERATED_OUTPUTS := \
+ $(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_GENERATED_SOURCES := \
+ $(gyp_shared_intermediate_dir)/autofill/jni/PersonalAutofillPopulator_jni.h \
+ components_autofill_jni_headers_gyp_rule_trigger
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES :=
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -fno-stack-protector \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_jni_headers_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_jni_headers
+autofill_jni_headers: components_autofill_jni_headers_gyp
+
+LOCAL_MODULE_PATH := $(PRODUCT_OUT)/gyp_stamp
+LOCAL_UNINSTALLABLE_MODULE := true
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+$(LOCAL_BUILT_MODULE): $(LOCAL_ADDITIONAL_DEPENDENCIES)
+ $(hide) echo "Gyp timestamp: $@"
+ $(hide) mkdir -p $(dir $@)
+ $(hide) touch $@
diff --git a/components/autofill_regexes.target.darwin-arm.mk b/components/autofill_regexes.target.darwin-arm.mk
new file mode 100644
index 0000000..fc8b207
--- /dev/null
+++ b/components/autofill_regexes.target.darwin-arm.mk
@@ -0,0 +1,50 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := GYP
+LOCAL_MODULE := components_autofill_regexes_gyp
+LOCAL_MODULE_STEM := autofill_regexes
+LOCAL_MODULE_SUFFIX := .stamp
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES :=
+
+### Rules for action "autofill_regexes":
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: gyp_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_intermediate_dir)
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: gyp_shared_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_shared_intermediate_dir)
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: $(LOCAL_PATH)/build/escape_unicode.py $(LOCAL_PATH)/components/autofill/browser/autofill_regex_constants.cc.utf8 $(GYP_TARGET_DEPENDENCIES)
+ @echo "Gyp action: components_components_gyp_autofill_regexes_target_autofill_regexes ($@)"
+ $(hide)cd $(gyp_local_path)/components; mkdir -p $(gyp_shared_intermediate_dir); python ../build/escape_unicode.py -o "$(gyp_shared_intermediate_dir)" autofill/browser/autofill_regex_constants.cc.utf8
+
+
+
+GYP_GENERATED_OUTPUTS := \
+ $(gyp_shared_intermediate_dir)/autofill_regex_constants.cc
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+### Rules for final target.
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_regexes_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_regexes
+autofill_regexes: components_autofill_regexes_gyp
+
+LOCAL_MODULE_PATH := $(PRODUCT_OUT)/gyp_stamp
+LOCAL_UNINSTALLABLE_MODULE := true
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+$(LOCAL_BUILT_MODULE): $(LOCAL_ADDITIONAL_DEPENDENCIES)
+ $(hide) echo "Gyp timestamp: $@"
+ $(hide) mkdir -p $(dir $@)
+ $(hide) touch $@
diff --git a/components/autofill_regexes.target.darwin-x86.mk b/components/autofill_regexes.target.darwin-x86.mk
new file mode 100644
index 0000000..fc8b207
--- /dev/null
+++ b/components/autofill_regexes.target.darwin-x86.mk
@@ -0,0 +1,50 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := GYP
+LOCAL_MODULE := components_autofill_regexes_gyp
+LOCAL_MODULE_STEM := autofill_regexes
+LOCAL_MODULE_SUFFIX := .stamp
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES :=
+
+### Rules for action "autofill_regexes":
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: gyp_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_intermediate_dir)
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: gyp_shared_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_shared_intermediate_dir)
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: $(LOCAL_PATH)/build/escape_unicode.py $(LOCAL_PATH)/components/autofill/browser/autofill_regex_constants.cc.utf8 $(GYP_TARGET_DEPENDENCIES)
+ @echo "Gyp action: components_components_gyp_autofill_regexes_target_autofill_regexes ($@)"
+ $(hide)cd $(gyp_local_path)/components; mkdir -p $(gyp_shared_intermediate_dir); python ../build/escape_unicode.py -o "$(gyp_shared_intermediate_dir)" autofill/browser/autofill_regex_constants.cc.utf8
+
+
+
+GYP_GENERATED_OUTPUTS := \
+ $(gyp_shared_intermediate_dir)/autofill_regex_constants.cc
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+### Rules for final target.
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_regexes_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_regexes
+autofill_regexes: components_autofill_regexes_gyp
+
+LOCAL_MODULE_PATH := $(PRODUCT_OUT)/gyp_stamp
+LOCAL_UNINSTALLABLE_MODULE := true
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+$(LOCAL_BUILT_MODULE): $(LOCAL_ADDITIONAL_DEPENDENCIES)
+ $(hide) echo "Gyp timestamp: $@"
+ $(hide) mkdir -p $(dir $@)
+ $(hide) touch $@
diff --git a/components/autofill_regexes.target.linux-arm.mk b/components/autofill_regexes.target.linux-arm.mk
new file mode 100644
index 0000000..fc8b207
--- /dev/null
+++ b/components/autofill_regexes.target.linux-arm.mk
@@ -0,0 +1,50 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := GYP
+LOCAL_MODULE := components_autofill_regexes_gyp
+LOCAL_MODULE_STEM := autofill_regexes
+LOCAL_MODULE_SUFFIX := .stamp
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES :=
+
+### Rules for action "autofill_regexes":
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: gyp_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_intermediate_dir)
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: gyp_shared_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_shared_intermediate_dir)
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: $(LOCAL_PATH)/build/escape_unicode.py $(LOCAL_PATH)/components/autofill/browser/autofill_regex_constants.cc.utf8 $(GYP_TARGET_DEPENDENCIES)
+ @echo "Gyp action: components_components_gyp_autofill_regexes_target_autofill_regexes ($@)"
+ $(hide)cd $(gyp_local_path)/components; mkdir -p $(gyp_shared_intermediate_dir); python ../build/escape_unicode.py -o "$(gyp_shared_intermediate_dir)" autofill/browser/autofill_regex_constants.cc.utf8
+
+
+
+GYP_GENERATED_OUTPUTS := \
+ $(gyp_shared_intermediate_dir)/autofill_regex_constants.cc
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+### Rules for final target.
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_regexes_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_regexes
+autofill_regexes: components_autofill_regexes_gyp
+
+LOCAL_MODULE_PATH := $(PRODUCT_OUT)/gyp_stamp
+LOCAL_UNINSTALLABLE_MODULE := true
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+$(LOCAL_BUILT_MODULE): $(LOCAL_ADDITIONAL_DEPENDENCIES)
+ $(hide) echo "Gyp timestamp: $@"
+ $(hide) mkdir -p $(dir $@)
+ $(hide) touch $@
diff --git a/components/autofill_regexes.target.linux-x86.mk b/components/autofill_regexes.target.linux-x86.mk
new file mode 100644
index 0000000..fc8b207
--- /dev/null
+++ b/components/autofill_regexes.target.linux-x86.mk
@@ -0,0 +1,50 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := GYP
+LOCAL_MODULE := components_autofill_regexes_gyp
+LOCAL_MODULE_STEM := autofill_regexes
+LOCAL_MODULE_SUFFIX := .stamp
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES :=
+
+### Rules for action "autofill_regexes":
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: gyp_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_intermediate_dir)
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: gyp_shared_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_shared_intermediate_dir)
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/autofill_regex_constants.cc: $(LOCAL_PATH)/build/escape_unicode.py $(LOCAL_PATH)/components/autofill/browser/autofill_regex_constants.cc.utf8 $(GYP_TARGET_DEPENDENCIES)
+ @echo "Gyp action: components_components_gyp_autofill_regexes_target_autofill_regexes ($@)"
+ $(hide)cd $(gyp_local_path)/components; mkdir -p $(gyp_shared_intermediate_dir); python ../build/escape_unicode.py -o "$(gyp_shared_intermediate_dir)" autofill/browser/autofill_regex_constants.cc.utf8
+
+
+
+GYP_GENERATED_OUTPUTS := \
+ $(gyp_shared_intermediate_dir)/autofill_regex_constants.cc
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+### Rules for final target.
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_regexes_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_regexes
+autofill_regexes: components_autofill_regexes_gyp
+
+LOCAL_MODULE_PATH := $(PRODUCT_OUT)/gyp_stamp
+LOCAL_UNINSTALLABLE_MODULE := true
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+$(LOCAL_BUILT_MODULE): $(LOCAL_ADDITIONAL_DEPENDENCIES)
+ $(hide) echo "Gyp timestamp: $@"
+ $(hide) mkdir -p $(dir $@)
+ $(hide) touch $@
diff --git a/components/autofill_risk_proto.target.darwin-arm.mk b/components/autofill_risk_proto.target.darwin-arm.mk
new file mode 100644
index 0000000..ae76a27
--- /dev/null
+++ b/components/autofill_risk_proto.target.darwin-arm.mk
@@ -0,0 +1,178 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_autofill_risk_proto_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(gyp_shared_intermediate_dir)/protoc
+
+
+### Generated for rule "components_components_gyp_autofill_risk_proto_target_genproto":
+# "{'inputs': ['../tools/protoc_wrapper/protoc_wrapper.py', '$(gyp_shared_intermediate_dir)/protoc'], 'msvs_cygwin_shell': '0', 'extension': 'proto', 'outputs': ['$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/%(INPUT_ROOT)s_pb2.py', '$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/%(INPUT_ROOT)s.pb.cc', '$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/%(INPUT_ROOT)s.pb.h'], 'rule_name': 'genproto', 'rule_sources': ['autofill/browser/risk/proto/fingerprint.proto'], 'action': ['python', '../tools/protoc_wrapper/protoc_wrapper.py', '--include', '', '--protobuf', '$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/%(INPUT_ROOT)s.pb.h', '--proto-in-dir', 'autofill/browser/risk/proto', '--proto-in-file', '%(INPUT_ROOT)s$(suffix $<)', '--use-system-protobuf=0', '--', '$(gyp_shared_intermediate_dir)/protoc', '--cpp_out', '$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto', '--python_out', '$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto'], 'message': 'Generating C++ and Python code from $(RULE_SOURCES)', 'process_outputs_as_sources': '1'}":
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: gyp_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_intermediate_dir)
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: gyp_shared_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_shared_intermediate_dir)
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: $(LOCAL_PATH)/components/autofill/browser/risk/proto/fingerprint.proto $(LOCAL_PATH)/tools/protoc_wrapper/protoc_wrapper.py $(gyp_shared_intermediate_dir)/protoc $(GYP_TARGET_DEPENDENCIES)
+ mkdir -p $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto; cd $(gyp_local_path)/components; python ../tools/protoc_wrapper/protoc_wrapper.py --include "" --protobuf "$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.h" --proto-in-dir autofill/browser/risk/proto --proto-in-file "fingerprint$(suffix $<)" "--use-system-protobuf=0" -- "$(gyp_shared_intermediate_dir)/protoc" --cpp_out "$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto" --python_out "$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto"
+
+$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.cc: $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py
+$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.h: $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py
+.PHONY: components_autofill_risk_proto_gyp_rule_trigger
+components_autofill_risk_proto_gyp_rule_trigger: $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py
+
+### Finished generating for all rules
+
+GYP_GENERATED_OUTPUTS := \
+ $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py \
+ $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.cc \
+ $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.h
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+$(gyp_intermediate_dir)/fingerprint.pb.cc: $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.cc
+ mkdir -p $(@D); cp $< $@
+LOCAL_GENERATED_SOURCES := \
+ $(gyp_intermediate_dir)/fingerprint.pb.cc \
+ $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py \
+ $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.h \
+ components_autofill_risk_proto_gyp_rule_trigger
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS := \
+ $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto
+
+LOCAL_SRC_FILES :=
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-DPROTOBUF_USE_DLLS' \
+ '-DGOOGLE_PROTOBUF_NO_RTTI' \
+ '-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(gyp_shared_intermediate_dir)/protoc_out \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/third_party/protobuf \
+ $(LOCAL_PATH)/third_party/protobuf/src \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES :=
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_risk_proto_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_risk_proto
+autofill_risk_proto: components_autofill_risk_proto_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/autofill_risk_proto.target.darwin-x86.mk b/components/autofill_risk_proto.target.darwin-x86.mk
new file mode 100644
index 0000000..87682e4
--- /dev/null
+++ b/components/autofill_risk_proto.target.darwin-x86.mk
@@ -0,0 +1,177 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_autofill_risk_proto_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(gyp_shared_intermediate_dir)/protoc
+
+
+### Generated for rule "components_components_gyp_autofill_risk_proto_target_genproto":
+# "{'inputs': ['../tools/protoc_wrapper/protoc_wrapper.py', '$(gyp_shared_intermediate_dir)/protoc'], 'msvs_cygwin_shell': '0', 'extension': 'proto', 'outputs': ['$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/%(INPUT_ROOT)s_pb2.py', '$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/%(INPUT_ROOT)s.pb.cc', '$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/%(INPUT_ROOT)s.pb.h'], 'rule_name': 'genproto', 'rule_sources': ['autofill/browser/risk/proto/fingerprint.proto'], 'action': ['python', '../tools/protoc_wrapper/protoc_wrapper.py', '--include', '', '--protobuf', '$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/%(INPUT_ROOT)s.pb.h', '--proto-in-dir', 'autofill/browser/risk/proto', '--proto-in-file', '%(INPUT_ROOT)s$(suffix $<)', '--use-system-protobuf=0', '--', '$(gyp_shared_intermediate_dir)/protoc', '--cpp_out', '$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto', '--python_out', '$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto'], 'message': 'Generating C++ and Python code from $(RULE_SOURCES)', 'process_outputs_as_sources': '1'}":
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: gyp_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_intermediate_dir)
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: gyp_shared_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_shared_intermediate_dir)
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: $(LOCAL_PATH)/components/autofill/browser/risk/proto/fingerprint.proto $(LOCAL_PATH)/tools/protoc_wrapper/protoc_wrapper.py $(gyp_shared_intermediate_dir)/protoc $(GYP_TARGET_DEPENDENCIES)
+ mkdir -p $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto; cd $(gyp_local_path)/components; python ../tools/protoc_wrapper/protoc_wrapper.py --include "" --protobuf "$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.h" --proto-in-dir autofill/browser/risk/proto --proto-in-file "fingerprint$(suffix $<)" "--use-system-protobuf=0" -- "$(gyp_shared_intermediate_dir)/protoc" --cpp_out "$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto" --python_out "$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto"
+
+$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.cc: $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py
+$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.h: $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py
+.PHONY: components_autofill_risk_proto_gyp_rule_trigger
+components_autofill_risk_proto_gyp_rule_trigger: $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py
+
+### Finished generating for all rules
+
+GYP_GENERATED_OUTPUTS := \
+ $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py \
+ $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.cc \
+ $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.h
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+$(gyp_intermediate_dir)/fingerprint.pb.cc: $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.cc
+ mkdir -p $(@D); cp $< $@
+LOCAL_GENERATED_SOURCES := \
+ $(gyp_intermediate_dir)/fingerprint.pb.cc \
+ $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py \
+ $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.h \
+ components_autofill_risk_proto_gyp_rule_trigger
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS := \
+ $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto
+
+LOCAL_SRC_FILES :=
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -fno-stack-protector \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-DPROTOBUF_USE_DLLS' \
+ '-DGOOGLE_PROTOBUF_NO_RTTI' \
+ '-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(gyp_shared_intermediate_dir)/protoc_out \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/third_party/protobuf \
+ $(LOCAL_PATH)/third_party/protobuf/src \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES :=
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_risk_proto_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_risk_proto
+autofill_risk_proto: components_autofill_risk_proto_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/autofill_risk_proto.target.linux-arm.mk b/components/autofill_risk_proto.target.linux-arm.mk
new file mode 100644
index 0000000..ae76a27
--- /dev/null
+++ b/components/autofill_risk_proto.target.linux-arm.mk
@@ -0,0 +1,178 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_autofill_risk_proto_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(gyp_shared_intermediate_dir)/protoc
+
+
+### Generated for rule "components_components_gyp_autofill_risk_proto_target_genproto":
+# "{'inputs': ['../tools/protoc_wrapper/protoc_wrapper.py', '$(gyp_shared_intermediate_dir)/protoc'], 'msvs_cygwin_shell': '0', 'extension': 'proto', 'outputs': ['$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/%(INPUT_ROOT)s_pb2.py', '$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/%(INPUT_ROOT)s.pb.cc', '$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/%(INPUT_ROOT)s.pb.h'], 'rule_name': 'genproto', 'rule_sources': ['autofill/browser/risk/proto/fingerprint.proto'], 'action': ['python', '../tools/protoc_wrapper/protoc_wrapper.py', '--include', '', '--protobuf', '$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/%(INPUT_ROOT)s.pb.h', '--proto-in-dir', 'autofill/browser/risk/proto', '--proto-in-file', '%(INPUT_ROOT)s$(suffix $<)', '--use-system-protobuf=0', '--', '$(gyp_shared_intermediate_dir)/protoc', '--cpp_out', '$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto', '--python_out', '$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto'], 'message': 'Generating C++ and Python code from $(RULE_SOURCES)', 'process_outputs_as_sources': '1'}":
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: gyp_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_intermediate_dir)
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: gyp_shared_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_shared_intermediate_dir)
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: $(LOCAL_PATH)/components/autofill/browser/risk/proto/fingerprint.proto $(LOCAL_PATH)/tools/protoc_wrapper/protoc_wrapper.py $(gyp_shared_intermediate_dir)/protoc $(GYP_TARGET_DEPENDENCIES)
+ mkdir -p $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto; cd $(gyp_local_path)/components; python ../tools/protoc_wrapper/protoc_wrapper.py --include "" --protobuf "$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.h" --proto-in-dir autofill/browser/risk/proto --proto-in-file "fingerprint$(suffix $<)" "--use-system-protobuf=0" -- "$(gyp_shared_intermediate_dir)/protoc" --cpp_out "$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto" --python_out "$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto"
+
+$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.cc: $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py
+$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.h: $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py
+.PHONY: components_autofill_risk_proto_gyp_rule_trigger
+components_autofill_risk_proto_gyp_rule_trigger: $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py
+
+### Finished generating for all rules
+
+GYP_GENERATED_OUTPUTS := \
+ $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py \
+ $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.cc \
+ $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.h
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+$(gyp_intermediate_dir)/fingerprint.pb.cc: $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.cc
+ mkdir -p $(@D); cp $< $@
+LOCAL_GENERATED_SOURCES := \
+ $(gyp_intermediate_dir)/fingerprint.pb.cc \
+ $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py \
+ $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.h \
+ components_autofill_risk_proto_gyp_rule_trigger
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS := \
+ $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto
+
+LOCAL_SRC_FILES :=
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-DPROTOBUF_USE_DLLS' \
+ '-DGOOGLE_PROTOBUF_NO_RTTI' \
+ '-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(gyp_shared_intermediate_dir)/protoc_out \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/third_party/protobuf \
+ $(LOCAL_PATH)/third_party/protobuf/src \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES :=
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_risk_proto_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_risk_proto
+autofill_risk_proto: components_autofill_risk_proto_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/autofill_risk_proto.target.linux-x86.mk b/components/autofill_risk_proto.target.linux-x86.mk
new file mode 100644
index 0000000..87682e4
--- /dev/null
+++ b/components/autofill_risk_proto.target.linux-x86.mk
@@ -0,0 +1,177 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_autofill_risk_proto_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(gyp_shared_intermediate_dir)/protoc
+
+
+### Generated for rule "components_components_gyp_autofill_risk_proto_target_genproto":
+# "{'inputs': ['../tools/protoc_wrapper/protoc_wrapper.py', '$(gyp_shared_intermediate_dir)/protoc'], 'msvs_cygwin_shell': '0', 'extension': 'proto', 'outputs': ['$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/%(INPUT_ROOT)s_pb2.py', '$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/%(INPUT_ROOT)s.pb.cc', '$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/%(INPUT_ROOT)s.pb.h'], 'rule_name': 'genproto', 'rule_sources': ['autofill/browser/risk/proto/fingerprint.proto'], 'action': ['python', '../tools/protoc_wrapper/protoc_wrapper.py', '--include', '', '--protobuf', '$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/%(INPUT_ROOT)s.pb.h', '--proto-in-dir', 'autofill/browser/risk/proto', '--proto-in-file', '%(INPUT_ROOT)s$(suffix $<)', '--use-system-protobuf=0', '--', '$(gyp_shared_intermediate_dir)/protoc', '--cpp_out', '$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto', '--python_out', '$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto'], 'message': 'Generating C++ and Python code from $(RULE_SOURCES)', 'process_outputs_as_sources': '1'}":
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: gyp_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_intermediate_dir)
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: gyp_shared_intermediate_dir := $(GYP_ABS_ANDROID_TOP_DIR)/$(gyp_shared_intermediate_dir)
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py: $(LOCAL_PATH)/components/autofill/browser/risk/proto/fingerprint.proto $(LOCAL_PATH)/tools/protoc_wrapper/protoc_wrapper.py $(gyp_shared_intermediate_dir)/protoc $(GYP_TARGET_DEPENDENCIES)
+ mkdir -p $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto; cd $(gyp_local_path)/components; python ../tools/protoc_wrapper/protoc_wrapper.py --include "" --protobuf "$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.h" --proto-in-dir autofill/browser/risk/proto --proto-in-file "fingerprint$(suffix $<)" "--use-system-protobuf=0" -- "$(gyp_shared_intermediate_dir)/protoc" --cpp_out "$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto" --python_out "$(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto"
+
+$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.cc: $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py
+$(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.h: $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py
+.PHONY: components_autofill_risk_proto_gyp_rule_trigger
+components_autofill_risk_proto_gyp_rule_trigger: $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py
+
+### Finished generating for all rules
+
+GYP_GENERATED_OUTPUTS := \
+ $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py \
+ $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.cc \
+ $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.h
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+$(gyp_intermediate_dir)/fingerprint.pb.cc: $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.cc
+ mkdir -p $(@D); cp $< $@
+LOCAL_GENERATED_SOURCES := \
+ $(gyp_intermediate_dir)/fingerprint.pb.cc \
+ $(gyp_shared_intermediate_dir)/pyproto/components/autofill/browser/risk/proto/fingerprint_pb2.py \
+ $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto/fingerprint.pb.h \
+ components_autofill_risk_proto_gyp_rule_trigger
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS := \
+ $(gyp_shared_intermediate_dir)/protoc_out/components/autofill/browser/risk/proto
+
+LOCAL_SRC_FILES :=
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -fno-stack-protector \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-DPROTOBUF_USE_DLLS' \
+ '-DGOOGLE_PROTOBUF_NO_RTTI' \
+ '-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(gyp_shared_intermediate_dir)/protoc_out \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/third_party/protobuf \
+ $(LOCAL_PATH)/third_party/protobuf/src \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES :=
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_autofill_risk_proto_gyp
+
+# Alias gyp target name.
+.PHONY: autofill_risk_proto
+autofill_risk_proto: components_autofill_risk_proto_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/encryptor.target.darwin-arm.mk b/components/encryptor.target.darwin-arm.mk
new file mode 100644
index 0000000..13d6f8e
--- /dev/null
+++ b/components/encryptor.target.darwin-arm.mk
@@ -0,0 +1,146 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_encryptor_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES :=
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ components/webdata/encryptor/encryptor_posix.cc
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES :=
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_encryptor_gyp
+
+# Alias gyp target name.
+.PHONY: encryptor
+encryptor: components_encryptor_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/encryptor.target.darwin-x86.mk b/components/encryptor.target.darwin-x86.mk
new file mode 100644
index 0000000..c972136
--- /dev/null
+++ b/components/encryptor.target.darwin-x86.mk
@@ -0,0 +1,145 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_encryptor_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES :=
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ components/webdata/encryptor/encryptor_posix.cc
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -fno-stack-protector \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES :=
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_encryptor_gyp
+
+# Alias gyp target name.
+.PHONY: encryptor
+encryptor: components_encryptor_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/encryptor.target.linux-arm.mk b/components/encryptor.target.linux-arm.mk
new file mode 100644
index 0000000..13d6f8e
--- /dev/null
+++ b/components/encryptor.target.linux-arm.mk
@@ -0,0 +1,146 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_encryptor_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES :=
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ components/webdata/encryptor/encryptor_posix.cc
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES :=
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_encryptor_gyp
+
+# Alias gyp target name.
+.PHONY: encryptor
+encryptor: components_encryptor_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/encryptor.target.linux-x86.mk b/components/encryptor.target.linux-x86.mk
new file mode 100644
index 0000000..c972136
--- /dev/null
+++ b/components/encryptor.target.linux-x86.mk
@@ -0,0 +1,145 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_encryptor_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES :=
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ components/webdata/encryptor/encryptor_posix.cc
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -fno-stack-protector \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES :=
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_encryptor_gyp
+
+# Alias gyp target name.
+.PHONY: encryptor
+encryptor: components_encryptor_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/navigation_interception/OWNERS b/components/navigation_interception/OWNERS
index d7b0401..82ab373 100644
--- a/components/navigation_interception/OWNERS
+++ b/components/navigation_interception/OWNERS
@@ -1,3 +1,2 @@
[email protected]
[email protected]
[email protected]
diff --git a/components/webdata_common.target.darwin-arm.mk b/components/webdata_common.target.darwin-arm.mk
new file mode 100644
index 0000000..e2f15e8
--- /dev/null
+++ b/components/webdata_common.target.darwin-arm.mk
@@ -0,0 +1,157 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_webdata_common_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES :=
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ components/webdata/common/web_database.cc \
+ components/webdata/common/web_database_service.cc \
+ components/webdata/common/web_database_table.cc \
+ components/webdata/common/web_data_request_manager.cc \
+ components/webdata/common/web_data_service_backend.cc \
+ components/webdata/common/web_data_service_base.cc \
+ components/webdata/common/webdata_constants.cc
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-DWEBDATA_IMPLEMENTATION' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES :=
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_webdata_common_gyp
+
+# Alias gyp target name.
+.PHONY: webdata_common
+webdata_common: components_webdata_common_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/webdata_common.target.darwin-x86.mk b/components/webdata_common.target.darwin-x86.mk
new file mode 100644
index 0000000..8e8f68e
--- /dev/null
+++ b/components/webdata_common.target.darwin-x86.mk
@@ -0,0 +1,156 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_webdata_common_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES :=
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ components/webdata/common/web_database.cc \
+ components/webdata/common/web_database_service.cc \
+ components/webdata/common/web_database_table.cc \
+ components/webdata/common/web_data_request_manager.cc \
+ components/webdata/common/web_data_service_backend.cc \
+ components/webdata/common/web_data_service_base.cc \
+ components/webdata/common/webdata_constants.cc
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -fno-stack-protector \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-DWEBDATA_IMPLEMENTATION' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES :=
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_webdata_common_gyp
+
+# Alias gyp target name.
+.PHONY: webdata_common
+webdata_common: components_webdata_common_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/webdata_common.target.linux-arm.mk b/components/webdata_common.target.linux-arm.mk
new file mode 100644
index 0000000..e2f15e8
--- /dev/null
+++ b/components/webdata_common.target.linux-arm.mk
@@ -0,0 +1,157 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_webdata_common_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES :=
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ components/webdata/common/web_database.cc \
+ components/webdata/common/web_database_service.cc \
+ components/webdata/common/web_database_table.cc \
+ components/webdata/common/web_data_request_manager.cc \
+ components/webdata/common/web_data_service_backend.cc \
+ components/webdata/common/web_data_service_base.cc \
+ components/webdata/common/webdata_constants.cc
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-DWEBDATA_IMPLEMENTATION' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES :=
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_webdata_common_gyp
+
+# Alias gyp target name.
+.PHONY: webdata_common
+webdata_common: components_webdata_common_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/components/webdata_common.target.linux-x86.mk b/components/webdata_common.target.linux-x86.mk
new file mode 100644
index 0000000..8e8f68e
--- /dev/null
+++ b/components/webdata_common.target.linux-x86.mk
@@ -0,0 +1,156 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := components_webdata_common_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES :=
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_CPP_EXTENSION := .cc
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ components/webdata/common/web_database.cc \
+ components/webdata/common/web_database_service.cc \
+ components/webdata/common/web_database_table.cc \
+ components/webdata/common/web_data_request_manager.cc \
+ components/webdata/common/web_data_service_backend.cc \
+ components/webdata/common/web_data_service_base.cc \
+ components/webdata/common/webdata_constants.cc
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS := \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -fno-stack-protector \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_CFLAGS_C :=
+
+MY_DEFS := \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DUSE_LINUX_BREAKPAD' \
+ '-DNO_TCMALLOC' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DENABLE_LANGUAGE_DETECTION=1' \
+ '-DWEBDATA_IMPLEMENTATION' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+LOCAL_CFLAGS := $(MY_CFLAGS_C) $(MY_CFLAGS) $(MY_DEFS)
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(GYP_ABS_ANDROID_TOP_DIR)/frameworks/wilhelm/include \
+ $(GYP_ABS_ANDROID_TOP_DIR)/bionic \
+ $(GYP_ABS_ANDROID_TOP_DIR)/external/stlport/stlport
+
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES)
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS := \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo
+
+### Rules for final target.
+
+LOCAL_LDFLAGS := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_STATIC_LIBRARIES :=
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: components_webdata_common_gyp
+
+# Alias gyp target name.
+.PHONY: webdata_common
+webdata_common: components_webdata_common_gyp
+
+include $(BUILD_STATIC_LIBRARY)