// Copyright 2013 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.system.network</code> API.
namespace system.network {
  dictionary NetworkInterface {
    // The underlying name of the adapter. On *nix, this will typically be
    // "eth0", "wlan0", etc.
    DOMString name;

    // The available IPv4/6 address.
    DOMString address;

    // The prefix length
    long prefixLength;
  };

  // Callback from the <code>getNetworkInterfaces</code> method.
  // |networkInterfaces| : Array of object containing network interfaces
  // information.
  callback GetNetworkInterfacesCallback =
      void (NetworkInterface[] networkInterfaces);

  interface Functions {
    // Retrieves information about local adapters on this system.
    // |callback| : Called when local adapter information is available.
    static void getNetworkInterfaces(GetNetworkInterfacesCallback callback);
  };
};
