/* 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 "nsIPlatformInfo.idl"

/**
 * A scriptable interface to the nsXULAppAPI structure. See nsXULAppAPI.h for
 * a detailed description of each attribute.
 */

[scriptable, uuid(ddea4f31-3c5e-4769-ac68-21ab4b3d7845)]
interface nsIXULAppInfo : nsIPlatformInfo
{
  /**
   * @see nsXREAppData.vendor
   * @returns an empty string if nsXREAppData.vendor is not set.
   */
  readonly attribute ACString vendor;

  /**
   * @see nsXREAppData.name
   */
  readonly attribute ACString name;

  /**
   * @see nsXREAppData.ID
   * @returns an empty string if nsXREAppData.ID is not set.
   */
  readonly attribute ACString ID;

  /**
   * The version of the XUL application. It is different than the
   * version of the XULRunner platform. Be careful about which one you want.
   *
   * @see nsXREAppData.version
   * @returns an empty string if nsXREAppData.version is not set.
   */
  readonly attribute ACString version;

  /**
   * The build ID/date of the application. For xulrunner applications,
   * this will be different than the build ID of the platform. Be careful
   * about which one you want.
   */
  readonly attribute ACString appBuildID;

  /**
   * @see nsXREAppData.UAName
   * @returns an empty string if nsXREAppData.UAName is not set.
   */
  readonly attribute ACString UAName;
};