| Index: third_party/libaddressinput/chromium/cpp/src/rule_retriever.cc
|
| diff --git a/third_party/libaddressinput/chromium/cpp/src/rule_retriever.cc b/third_party/libaddressinput/chromium/cpp/src/rule_retriever.cc
|
| index a77c93abd7169f676280f03510e6fec3faa2110e..cfe5a91a31e735889718620d530dd3a2f770ad56 100644
|
| --- a/third_party/libaddressinput/chromium/cpp/src/rule_retriever.cc
|
| +++ b/third_party/libaddressinput/chromium/cpp/src/rule_retriever.cc
|
| @@ -14,6 +14,7 @@
|
|
|
| #include "rule_retriever.h"
|
|
|
| +#include <libaddressinput/address_field.h>
|
| #include <libaddressinput/callback.h>
|
| #include <libaddressinput/util/basictypes.h>
|
| #include <libaddressinput/util/scoped_ptr.h>
|
| @@ -22,6 +23,7 @@
|
| #include <cstddef>
|
| #include <string>
|
|
|
| +#include "lookup_key.h"
|
| #include "retriever.h"
|
| #include "rule.h"
|
|
|
| @@ -32,12 +34,13 @@ namespace {
|
|
|
| class Helper {
|
| public:
|
| - Helper(const std::string& key,
|
| + Helper(const LookupKey& key,
|
| const RuleRetriever::Callback& rule_ready,
|
| const Retriever& data_retriever)
|
| - : rule_ready_(rule_ready),
|
| + : key_(key),
|
| + rule_ready_(rule_ready),
|
| data_retrieved_(BuildCallback(this, &Helper::OnDataRetrieved)) {
|
| - data_retriever.Retrieve(key, *data_retrieved_);
|
| + data_retriever.Retrieve(key_.GetKeyValue(), *data_retrieved_);
|
| }
|
|
|
| private:
|
| @@ -48,14 +51,18 @@ class Helper {
|
| const std::string& data) {
|
| Rule rule;
|
| if (!success) {
|
| - rule_ready_(false, key, rule);
|
| + rule_ready_(false, key_, rule);
|
| } else {
|
| + if (key_.GetLevel() == COUNTRY) {
|
| + rule.CopyFrom(Rule::GetDefault());
|
| + }
|
| success = rule.ParseSerializedRule(data);
|
| - rule_ready_(success, key, rule);
|
| + rule_ready_(success, key_, rule);
|
| }
|
| delete this;
|
| }
|
|
|
| + const LookupKey& key_;
|
| const RuleRetriever::Callback& rule_ready_;
|
| scoped_ptr<Retriever::Callback> data_retrieved_;
|
|
|
| @@ -71,7 +78,7 @@ RuleRetriever::RuleRetriever(const Retriever* retriever)
|
|
|
| RuleRetriever::~RuleRetriever() {}
|
|
|
| -void RuleRetriever::RetrieveRule(const std::string& key,
|
| +void RuleRetriever::RetrieveRule(const LookupKey& key,
|
| const Callback& rule_ready) const {
|
| new Helper(key, rule_ready, *data_retriever_);
|
| }
|
|
|