diff --git a/mozilla/embedding/browser/photon/src/EmbedProgress.cpp b/mozilla/embedding/browser/photon/src/EmbedProgress.cpp index 51fcbb63aa7..9ae3977cd7c 100644 --- a/mozilla/embedding/browser/photon/src/EmbedProgress.cpp +++ b/mozilla/embedding/browser/photon/src/EmbedProgress.cpp @@ -146,9 +146,9 @@ EmbedProgress::OnStateChange(nsIWebProgress *aWebProgress, if( moz->EmbedRef->app_launcher ) { nsCOMPtr aSourceUrl; - PRInt64 dummy; nsCOMPtr tempFile; - moz->EmbedRef->app_launcher->GetDownloadInfo( getter_AddRefs(aSourceUrl), &dummy, getter_AddRefs( tempFile ) ); + moz->EmbedRef->app_launcher->GetSource( getter_AddRefs(aSourceUrl) ); + moz->EmbedRef->app_launcher->GetTargetFile( getter_AddRefs( tempFile ) ); if( tempFile ) { diff --git a/mozilla/embedding/browser/photon/src/nsUnknownContentTypeHandler.cpp b/mozilla/embedding/browser/photon/src/nsUnknownContentTypeHandler.cpp index b5c62c957f0..cb600c9b513 100644 --- a/mozilla/embedding/browser/photon/src/nsUnknownContentTypeHandler.cpp +++ b/mozilla/embedding/browser/photon/src/nsUnknownContentTypeHandler.cpp @@ -86,9 +86,9 @@ NS_IMETHODIMP nsUnknownContentTypeHandler::Show( nsIHelperAppLauncher *aLauncher mimeInfo->GetMIMEType( &mimeType ); nsCOMPtr aSourceUrl; - PRInt64 dummy; nsCOMPtr aFile; - aLauncher->GetDownloadInfo( getter_AddRefs(aSourceUrl), &dummy, getter_AddRefs(aFile) ); + aLauncher->GetSource( getter_AddRefs(aSourceUrl) ); + aLauncher->GetTargetFile( getter_AddRefs(aFile) ); char *url; nsCAutoString specString; diff --git a/mozilla/embedding/components/ui/helperAppDlg/nsHelperAppDlg.js b/mozilla/embedding/components/ui/helperAppDlg/nsHelperAppDlg.js index 3ef29224e70..df4b4fd77b5 100644 --- a/mozilla/embedding/components/ui/helperAppDlg/nsHelperAppDlg.js +++ b/mozilla/embedding/components/ui/helperAppDlg/nsHelperAppDlg.js @@ -364,9 +364,7 @@ nsHelperAppDialog.prototype = { // in that case). // Need to get temporary file and check for executable-ness. - var ignore1 = new Object; - var ignore2 = new Object; - var tmpFile = this.mLauncher.getDownloadInfo( ignore1, ignore2 ); + var tmpFile = this.mLauncher.targetFile; // Default is Ok if the file isn't executable (and vice-versa). result = !tmpFile.isExecutable(); diff --git a/mozilla/uriloader/exthandler/nsExternalHelperAppService.cpp b/mozilla/uriloader/exthandler/nsExternalHelperAppService.cpp index 7a29ac772f0..014bea15fc6 100644 --- a/mozilla/uriloader/exthandler/nsExternalHelperAppService.cpp +++ b/mozilla/uriloader/exthandler/nsExternalHelperAppService.cpp @@ -963,23 +963,20 @@ NS_IMETHODIMP nsExternalAppHandler::SetWebProgressListener(nsIWebProgressListene return NS_OK; } -NS_IMETHODIMP nsExternalAppHandler::GetDownloadInfo(nsIURI ** aSourceUrl, PRInt64 * aTimeDownloadStarted, nsIFile ** aTarget) +NS_IMETHODIMP nsExternalAppHandler::GetTargetFile(nsIFile** aTarget) { - - *aTimeDownloadStarted = mTimeDownloadStarted; - if (mFinalFileDestination) - { *aTarget = mFinalFileDestination; - } else *aTarget = mTempFile; NS_IF_ADDREF(*aTarget); + return NS_OK; +} - *aSourceUrl = mSourceUrl; - NS_IF_ADDREF(*aSourceUrl); - +NS_IMETHODIMP nsExternalAppHandler::GetTimeDownloadStarted(PRTime* aTime) +{ + *aTime = mTimeDownloadStarted; return NS_OK; } @@ -1366,10 +1363,7 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest *request, nsISuppo * happening if we decide to execute */ nsCOMPtr fileToTest; - nsCOMPtr garbageURI; - PRInt64 garbageTimestamp; - GetDownloadInfo(getter_AddRefs(garbageURI), &garbageTimestamp, - getter_AddRefs(fileToTest)); + GetTargetFile(getter_AddRefs(fileToTest)); if (fileToTest) { PRBool isExecutable; rv = fileToTest->IsExecutable(&isExecutable); diff --git a/mozilla/uriloader/exthandler/nsExternalHelperAppService.h b/mozilla/uriloader/exthandler/nsExternalHelperAppService.h index 9d30ebb66a7..90a73d2908f 100644 --- a/mozilla/uriloader/exthandler/nsExternalHelperAppService.h +++ b/mozilla/uriloader/exthandler/nsExternalHelperAppService.h @@ -27,6 +27,7 @@ #define FORCE_PR_LOG #endif #include "prlog.h" +#include "prtime.h" #include "nsIExternalHelperAppService.h" #include "nsIExternalProtocolService.h" @@ -229,7 +230,7 @@ protected: PRPackedBool mProgressListenerInitialized; // This is set when handling something with "Content-Disposition: attachment" PRPackedBool mHandlingAttachment; - PRInt64 mTimeDownloadStarted; + PRTime mTimeDownloadStarted; PRInt32 mContentLength; PRInt32 mProgress; // Number of bytes received (for sending progress notifications). diff --git a/mozilla/uriloader/exthandler/nsIExternalHelperAppService.idl b/mozilla/uriloader/exthandler/nsIExternalHelperAppService.idl index 2f74bc28a0b..c59b763e925 100644 --- a/mozilla/uriloader/exthandler/nsIExternalHelperAppService.idl +++ b/mozilla/uriloader/exthandler/nsIExternalHelperAppService.idl @@ -20,10 +20,6 @@ * Scott MacGregor */ -/* The external helper app service is used for finding and launching - platform specific external applications for a given mime content type. - */ - #include "nsISupports.idl" interface nsIURI; @@ -33,83 +29,121 @@ interface nsIFile; interface nsIMIMEInfo; interface nsIWebProgressListener; - +/** + * The external helper app service is used for finding and launching + * platform specific external applications for a given mime content type. + */ [scriptable, uuid(663CC0AA-42EA-11d4-98D0-001083010E9B)] interface nsIExternalHelperAppService : nsISupports { - // doContent: 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. - // aMimeContentType --> the content type of the incoming data - // aRequest --> the request corresponding to the incoming data - // aWindowContext --> use GetInterface to retrieve properties like the dom window or parent window... - // the service might need this in order to bring up dialogs. - // returns a nsIStreamListener which the caller should pump the data into. + /** + * 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. + * @return A nsIStreamListener which the caller should pump the data into. + */ nsIStreamListener doContent (in string aMimeContentType, in nsIRequest aRequest, in nsISupports aWindowContext); - // applyDecodingForType: returns true if this type is to be decoded - // prior to saving or passing off to helper apps, - // false otherwise + /** + * Returns true if this type is to be decoded prior to saving or passing + * off to helper apps, false otherwise + */ boolean applyDecodingForType (in string aMimeContentType); - // applyDecodingForExtension: returns false if files with this extension - // are not to be decoded prior to saving or - // passing off to helper apps, false otherwise + /** + * Returns false if files with this extension are not to be decoded prior + * to saving or passing off to helper apps, false otherwise + */ boolean applyDecodingForExtension(in string aExtension); }; -// this is a private interface shared between external app handlers and the platform specific -// external helper app service +/** + * This is a private interface shared between external app handlers and the platform specific + * external helper app service + */ [scriptable, uuid(491D04D5-449C-11d4-98D0-001083010E9B)] interface nsPIExternalAppLauncher : nsISupports { - // launchAppWithTempFile --> used by the handler to actually launch the helper application - // aTempFile --> the file which contains the data we want the helper app to use when it is launched + /** + * Used by the handler to actually launch the helper application. + * @param aTempFile The file which contains the data we want the helper app + * to use when it is launched + */ void launchAppWithTempFile(in nsIMIMEInfo aMIMEInfo, in nsIFile aTempFile); - // mscott --> eventually I should move this into a new service so other consumers can add temporary files - // they want deleted on exit. - // aTemporaryFile --> a temporary file we should delete on exit. - + /** + * 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); }; -// a helper app launcher is a small object created to handle the launching of an external application. - +/** + * A helper app launcher is a small object created to handle the launching + * of an external application. + */ [scriptable, uuid(9503D0FE-4C9D-11d4-98D0-001083010E9B)] interface nsIHelperAppLauncher : nsISupports { - // the mime info object associated with the content type this helper app launcher is currently - // attempting to load + /** + * The mime info object associated with the content type this helper app + * launcher is currently attempting to load + */ readonly attribute nsIMIMEInfo MIMEInfo; - // the source url + /** + * The source uri + */ readonly attribute nsIURI source; + /** + * The suggested name for this file + */ readonly attribute wstring suggestedFileName; - // saveToDisk: called when we want to just save the content to a particular file - // aNewFileLocation --> location where the content should be saved + /** + * Called when we want to just save the content to a particular file + * @param aNewFileLocation Location where the content should be saved + */ void saveToDisk(in nsIFile aNewFileLocation, in boolean aRememberThisPreference); - // launchWithApplication: use aApplication to launch with this content - // aApplication --> nsIFile corresponding to the location of the application to use - // aRememberThisPreference --> TRUE if we should remember this choice. + /** + * Use aApplication to launch with this content. + * @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); - // called if the user decides to cancel the handling of this content type + /** + * Called if the user decides to cancel the handling of this content type + */ void Cancel(); - // the following methods are used by the progress dialog to get or set information - // on the current helper app launcher download + /** + * the following methods are used by the progress dialog to get or set + * information on the current helper app launcher download. + */ void setWebProgressListener(in nsIWebProgressListener aWebProgressListener); - // when the stand along progress window actually closes, it calls this method - // so we can release any local state... + /** + * when the stand along progress window actually closes, it calls this method + * so we can release any local state... + */ void closeProgressWindow(); - // aSourceUrl--> the url we are downloading....and the file we are saving too - // aTimeDownloadStarted --> time in ms that the download actually began - nsIFile getDownloadInfo(out nsIURI aSourceUrl, out long long aTimeDownloadStarted); - + /** + * The file we are saving to + */ + readonly attribute nsIFile targetFile; + /** + * Time when the download started + */ + readonly attribute PRTime timeDownloadStarted; };