widget/nsIMacWebAppUtils.idl
author Rob Wu <rob@robwu.nl>
Sat, 24 Sep 2016 11:16:32 +0200
changeset 320058 a41f871e2d1b37754bbd1001c36c075511b49342
parent 179210 05d9e797718231ff9bb7492447845de8a37dcab5
permissions -rw-r--r--
Bug 1299411 - Decouple Port implementation from API r=aswan Decoupled the API from the implementation. From now on it is possible to create Port instances without generating an API. This allows us to internally use Ports to pass around messages with minimal overhead (in the form of unnecessary clones of messages). This will be used by native messaging. This commit has no behavioral change, it is mostly moving around some code and storing the internal message listener in a set. MozReview-Commit-ID: 4h0LNJvTH9R

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

[scriptable, function, uuid(8c899c4f-58c1-4b74-9034-3bb64e484b68)]
interface nsITrashAppCallback : nsISupports
{
  void trashAppFinished(in nsresult rv);
};

/**
 * Allow MozApps API to locate and manipulate natively installed apps
 */

[scriptable, uuid(c69cf343-ea41-428b-b161-4655fd54d8e7)]
interface nsIMacWebAppUtils : nsISupports {
  /**
   * Find the path for an app with the given signature.
   */
  AString pathForAppWithIdentifier(in AString bundleIdentifier);

  /**
   * Launch the app with the given identifier, if it exists.
   */
  void launchAppWithIdentifier(in AString bundleIdentifier);

  /**
   * Move the app from the given directory to the Trash.
   */
  void trashApp(in AString path, in nsITrashAppCallback callback);
};