/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

interface nsIDOMMozNetworkStatsInterface;

[scriptable, builtinclass, uuid(3b16fe17-5583-483a-b486-b64a3243221c)]
interface nsIDOMMozNetworkStatsData : nsISupports
{
  readonly attribute unsigned long   rxBytes;   // Received bytes.
  readonly attribute unsigned long   txBytes;   // Sent bytes.
  readonly attribute jsval           date;      // Date.
};

[scriptable, builtinclass, uuid(b6fc4b14-628d-4c99-bf4e-e4ed56916cbe)]
interface nsIDOMMozNetworkStats : nsISupports
{
  /**
   * Manifest URL of an application for specifying the per-app
   * stats of the specified app. If null, system stats are returned.
   */
  readonly attribute DOMString    manifestURL;

  /**
   * Network the returned data belongs to.
   */
  readonly attribute nsIDOMMozNetworkStatsInterface network;

  /**
   * Stats for a network.
   */
  readonly attribute jsval        data;      // array of NetworkStatsData.
                                             // one element per day.

  /**
   * Dates
   */
  readonly attribute jsval        start; // Date.
  readonly attribute jsval        end;   // Date.
};
