gecko/uriloader/exthandler/nsIExternalHelperAppService.idl
Ehsan Akhgari 0fd9123eac Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
This patch was generated by a script.  Here's the source of the script for
future reference:

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name nsXPCOMCID.h \
       ! -name prtypes.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t

convert PRIntn int
convert PRUintn unsigned

convert PRSize size_t

convert PROffset32 int32_t
convert PROffset64 int64_t

convert PRPtrdiff ptrdiff_t

convert PRFloat64 double
2012-08-22 11:56:38 -04:00

147 lines
5.1 KiB
Plaintext

/* -*- Mode: C++; tab-width: 3; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* 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 "nsICancelable.idl"
interface nsIURI;
interface nsIRequest;
interface nsIStreamListener;
interface nsIFile;
interface nsIMIMEInfo;
interface nsIWebProgressListener2;
interface nsIInterfaceRequestor;
/**
* The external helper app service is used for finding and launching
* platform specific external applications for a given mime content type.
*/
[scriptable, uuid(9e456297-ba3e-42b1-92bd-b7db014268cb)]
interface nsIExternalHelperAppService : nsISupports
{
/**
* Binds an external helper application to a stream listener. The caller
* should pump data into the returned stream listener. When the OnStopRequest
* is issued, the stream listener implementation will launch the helper app
* with this data.
* @param aMimeContentType The content type of the incoming data
* @param aRequest The request corresponding to the incoming data
* @param aWindowContext Use GetInterface to retrieve properties like the
* dom window or parent window...
* The service might need this in order to bring up dialogs.
* @param aForceSave True to always save this content to disk, regardless of
* nsIMIMEInfo and other such influences.
* @return A nsIStreamListener which the caller should pump the data into.
*/
nsIStreamListener doContent (in ACString aMimeContentType, in nsIRequest aRequest,
in nsIInterfaceRequestor aWindowContext,
in boolean aForceSave);
/**
* Returns true if data from a URL with this extension combination
* is to be decoded from aEncodingType prior to saving or passing
* off to helper apps, false otherwise.
*/
boolean applyDecodingForExtension(in AUTF8String aExtension,
in ACString aEncodingType);
};
/**
* This is a private interface shared between external app handlers and the platform specific
* external helper app service
*/
[scriptable, uuid(6613e2e7-feab-4e3a-bb1f-b03200d544ec)]
interface nsPIExternalAppLauncher : nsISupports
{
/**
* mscott --> eventually I should move this into a new service so other
* consumers can add temporary files they want deleted on exit.
* @param aTemporaryFile A temporary file we should delete on exit.
*/
void deleteTemporaryFileOnExit(in nsIFile aTemporaryFile);
/**
* Delete a temporary file created inside private browsing mode when
* the private browsing mode has ended.
*/
void deleteTemporaryPrivateFileWhenPossible(in nsIFile aTemporaryFile);
};
/**
* A helper app launcher is a small object created to handle the launching
* of an external application.
*
* Note that cancelling the load via the nsICancelable interface will release
* the reference to the launcher dialog.
*/
[scriptable, uuid(d9a19faf-497b-408c-b995-777d956b72c0)]
interface nsIHelperAppLauncher : nsICancelable
{
/**
* The mime info object associated with the content type this helper app
* launcher is currently attempting to load
*/
readonly attribute nsIMIMEInfo MIMEInfo;
/**
* The source uri
*/
readonly attribute nsIURI source;
/**
* The suggested name for this file
*/
readonly attribute AString suggestedFileName;
/**
* Called when we want to just save the content to a particular file.
* NOTE: This will release the reference to the nsIHelperAppLauncherDialog.
* @param aNewFileLocation Location where the content should be saved
*/
void saveToDisk(in nsIFile aNewFileLocation, in boolean aRememberThisPreference);
/**
* Use aApplication to launch with this content.
* NOTE: This will release the reference to the nsIHelperAppLauncherDialog.
* @param aApplication nsIFile corresponding to the location of the application to use.
* @param aRememberThisPreference TRUE if we should remember this choice.
*/
void launchWithApplication(in nsIFile aApplication, in boolean aRememberThisPreference);
/**
* The following methods are used by the progress dialog to get or set
* information on the current helper app launcher download.
* This reference will be released when the download is finished (after the
* listener receives the STATE_STOP notification).
*/
void setWebProgressListener(in nsIWebProgressListener2 aWebProgressListener);
/**
* when the stand alone progress window actually closes, it calls this method
* so we can release any local state...
*/
void closeProgressWindow();
/**
* The file we are saving to
*/
readonly attribute nsIFile targetFile;
/**
* The executable-ness of the target file
*/
readonly attribute boolean targetFileIsExecutable;
/**
* Time when the download started
*/
readonly attribute PRTime timeDownloadStarted;
/**
* The download content length, or -1 if the length is not available.
*/
readonly attribute int64_t contentLength;
};