/* 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 nsIInterfaceRequestor;
interface nsIKeygenThread;

/**
 * nsIGeneratingKeypairInfoDialogs
 *  This is the interface for giving feedback to the user
 *  while generating a key pair.
 */
[scriptable, uuid(11bf5cdc-1dd2-11b2-ba6a-c76afb326fa1)]
interface nsIGeneratingKeypairInfoDialogs : nsISupports
{
  [must_use]
  void displayGeneratingKeypairInfo(in nsIInterfaceRequestor ctx,
                                    in nsIKeygenThread runnable);
};

%{C++
/**
 * This component is to be implemented by the embeddor. It is used to show
 * feedback to the user while a private key is being generated.
 *
 * This component is only ever used on the UI thread.
 *
 * INTERFACES THAT NEED TO BE IMPLEMENTED:
 *   nsIGeneratingKeypairInfoDialogs
 */
#define NS_GENERATINGKEYPAIRINFODIALOGS_CONTRACTID \
            "@mozilla.org/nsGeneratingKeypairInfoDialogs;1"
%}
