// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Use the <code>chrome.dns</code> API for dns resolution.
namespace dns {

  dictionary ResolveCallbackResolveInfo {
    // The result code. Zero indicates success.
    long resultCode;

    // A string representing the IP address literal. Supplied only if resultCode
    // indicates success. Note that we presently return only IPv4 addresses.
    DOMString? address;
  };

  callback ResolveCallback = void (ResolveCallbackResolveInfo resolveInfo);

  interface Functions {
    // Resolves the given hostname or IP address literal.
    // |hostname| : The hostname to resolve.
    // |callback| : Called when the resolution operation completes.
    static void resolve(DOMString hostname,
                        ResolveCallback callback);
  };

};
