mozilla-gio-launch-uri.patch
changeset 231 bb385ce8c773
parent 229 298263f797be
equal deleted inserted replaced
230:e4846f1b81c5 231:bb385ce8c773
     1 # HG changeset patch
     1 # HG changeset patch
     2 # Parent 7d47a19639db505e19282ac69c305c636d0fec18
     2 # Parent 689e53e965fdd8c76354a69fa936a3fd4f07a220
     3 
     3 
     4 diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
     4 diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
     5 --- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
     5 --- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
     6 +++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
     6 +++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
     7 @@ -53,16 +53,18 @@
     7 @@ -53,16 +53,18 @@
    21  #endif
    21  #endif
    22  #if defined(XP_UNIX) && !defined(XP_MACOSX)
    22  #if defined(XP_UNIX) && !defined(XP_MACOSX)
    23  #include "nsKDEUtils.h"
    23  #include "nsKDEUtils.h"
    24  #endif
    24  #endif
    25  
    25  
    26 @@ -172,38 +174,47 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
    26 @@ -172,38 +174,50 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
    27      }
    27      }
    28      if (!mDefaultApplication)
    28      if (!mDefaultApplication)
    29        return NS_ERROR_FILE_NOT_FOUND;
    29        return NS_ERROR_FILE_NOT_FOUND;
    30  
    30  
    31      return LaunchWithIProcess(mDefaultApplication, nativePath);
    31      return LaunchWithIProcess(mDefaultApplication, nativePath);
    33  
    33  
    34    nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
    34    nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
    35 +  nsCAutoString uriSpec;
    35 +  nsCAutoString uriSpec;
    36 +  if (giovfs) {
    36 +  if (giovfs) {
    37 +    // nsGIOMimeApp->Launch wants a URI string instead of local file
    37 +    // nsGIOMimeApp->Launch wants a URI string instead of local file
    38 +    nsCOMPtr<nsIIOService> ioservice = do_GetService(NS_IOSERVICE_CONTRACTID);
    38 +    nsresult rv;
       
    39 +    nsCOMPtr<nsIIOService> ioservice = do_GetService(NS_IOSERVICE_CONTRACTID, &rv);
       
    40 +    NS_ENSURE_SUCCESS(rv, rv);
    39 +    nsCOMPtr<nsIURI> uri;
    41 +    nsCOMPtr<nsIURI> uri;
    40 +    ioservice->NewFileURI(aFile, getter_AddRefs(uri));
    42 +    rv = ioservice->NewFileURI(aFile, getter_AddRefs(uri));
       
    43 +    NS_ENSURE_SUCCESS(rv, rv);
    41 +    uri->GetSpec(uriSpec);
    44 +    uri->GetSpec(uriSpec);
    42 +  }
    45 +  }
    43 +
    46 +
    44    nsCOMPtr<nsIGnomeVFSService> gnomevfs = do_GetService(NS_GNOMEVFSSERVICE_CONTRACTID);
    47    nsCOMPtr<nsIGnomeVFSService> gnomevfs = do_GetService(NS_GNOMEVFSSERVICE_CONTRACTID);
    45    if (giovfs) {
    48    if (giovfs) {