Chromium Code Reviews| Index: chrome/browser/extensions/api/dns/dns_api.cc |
| diff --git a/chrome/browser/extensions/api/dns/dns_api.cc b/chrome/browser/extensions/api/dns/dns_api.cc |
| index 2ddbd698ade7f922f810c4425257c3e855544b6c..bc74483eb2ec39692359c0ab94454523dda0ddf6 100644 |
| --- a/chrome/browser/extensions/api/dns/dns_api.cc |
| +++ b/chrome/browser/extensions/api/dns/dns_api.cc |
| @@ -8,18 +8,17 @@ |
| #include "base/values.h" |
| #include "chrome/browser/browser_process.h" |
| #include "chrome/browser/io_thread.h" |
| +#include "chrome/common/extensions/api/experimental.dns.h" |
|
asargent_no_longer_on_chrome
2012/03/06 22:27:57
This experimental.dns.h file gets auto-generated d
miket_OOO
2012/03/07 00:23:01
Don't worry! If you take a look at http://coderevi
|
| #include "content/public/browser/browser_thread.h" |
| #include "net/base/host_port_pair.h" |
| #include "net/base/net_errors.h" |
| #include "net/base/net_util.h" |
| using content::BrowserThread; |
| +using namespace extensions::api::experimental; |
| namespace extensions { |
| -const char kAddressKey[] = "address"; |
| -const char kResultCodeKey[] = "resultCode"; |
| - |
| // static |
| net::HostResolver* DNSResolveFunction::host_resolver_for_testing; |
| @@ -42,7 +41,11 @@ void DNSResolveFunction::set_host_resolver_for_testing( |
| } |
| bool DNSResolveFunction::RunImpl() { |
| - EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &hostname_)); |
| + scoped_ptr<Resolve::Params> params(Resolve::Params::Create(*args_)); |
| + EXTENSION_FUNCTION_VALIDATE(params.get()); |
| + |
| + hostname_ = params->hostname; |
| + |
| bool result = BrowserThread::PostTask( |
| BrowserThread::IO, FROM_HERE, |
| base::Bind(&DNSResolveFunction::WorkOnIOThread, this)); |
| @@ -77,14 +80,17 @@ void DNSResolveFunction::WorkOnIOThread() { |
| } |
| void DNSResolveFunction::OnLookupFinished(int resolve_result) { |
| - DictionaryValue* api_result = new DictionaryValue(); |
| - api_result->SetInteger(kResultCodeKey, resolve_result); |
| + |
| + scoped_ptr<ResolveCallbackResolveInfo> resolve_info( |
| + new ResolveCallbackResolveInfo()); |
| + resolve_info->result_code = resolve_result; |
| if (resolve_result == net::OK) { |
| const struct addrinfo* head = addresses_->head(); |
| DCHECK(head); |
| - api_result->SetString(kAddressKey, net::NetAddressToString(head)); |
| + resolve_info->address.reset( |
| + new std::string(net::NetAddressToString(head))); |
| } |
| - result_.reset(api_result); |
| + result_.reset(Resolve::Result::Create(*resolve_info)); |
| response_ = true; |
| bool post_task_result = BrowserThread::PostTask( |