/* 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 nsIFile;

/**
 * Installation and management of XUL applications.
 *
 * @status IN_FLUX   This interface is not stable and will change in the
 *                   future.
 */
[scriptable, uuid(800ace15-6b38-48c4-b057-7928378f6cd2)]
interface nsIXULAppInstall : nsISupports
{
  /**
   * Install a XUL application into a form that can be run by the native
   * operating system.
   *
   * @param aAppFile   Directory or a zip file containing a 
   *                   XULRunner package (with the required application.ini
   *                   file in the root).
   * @param aDirectory Path specifying the location to install the
   *                   application. If null, an appropriate default install
   *                   location will be used. e.g. "C:\Program Files\<Vendor>"
   *                   on Windows.
   * @param aLeafName  The leaf name of the application directory. If empty
   *                   an appropriate default will be chosen. e.g. "Simple.app"
   *                   on Mac.
   */
  void installApplication(in nsIFile aAppFile, in nsIFile aDirectory,
                          in AString aLeafName);
};
