mozilla-kde.patch
changeset 850 a2bdff616a0e
parent 837 a1f740acf68e
child 868 284da266ec46
child 888 b94dace970c6
--- a/mozilla-kde.patch	Wed Apr 08 00:59:13 2015 +0200
+++ b/mozilla-kde.patch	Sun May 10 09:05:36 2015 +0200
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent  2b183c17f6e4693372442af1a8ee0be364f8cba0
+# Parent  214f99f3ce4f1f8ae9b3d18da44e5d66b3105663
 Description: Add KDE integration to Firefox (toolkit parts)
 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
 Author: Lubos Lunak <lunak@suse.com>
@@ -1836,8 +1836,8 @@
 +            secMan.isSystemPrincipal(window.opener.document.nodePrincipal)) {
 +          var psvc = Components.classes["@mozilla.org/preferences-service;1"]
 +                               .getService(Components.interfaces.nsIPrefBranch);
-+          var instantApply = psvc.getBoolPref("browser.preferences.instantApply");
-+          if (instantApply) {
++          var pdocEl = window.opener.document.documentElement;
++          if (pdocEl.instantApply) {
 +            var panes = this.preferencePanes;
 +            for (var i = 0; i < panes.length; ++i)
 +              panes[i].writePreferences(true);
@@ -2136,7 +2136,7 @@
 +#include "nsVoidArray.h"
 +#include "nsKDEUtils.h"
  
- class nsUnixSystemProxySettings MOZ_FINAL : public nsISystemProxySettings {
+ class nsUnixSystemProxySettings final : public nsISystemProxySettings {
  public:
    NS_DECL_ISUPPORTS
    NS_DECL_NSISYSTEMPROXYSETTINGS
@@ -2219,7 +2219,7 @@
 diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
 --- a/toolkit/xre/moz.build
 +++ b/toolkit/xre/moz.build
-@@ -43,17 +43,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt
+@@ -45,17 +45,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt
      GENERATED_SOURCES += [
          'moc_nsNativeAppSupportQt.cpp',
      ]
@@ -2666,9 +2666,9 @@
  LOCAL_INCLUDES += [
      '/dom/base',
      '/dom/ipc',
-     '/netwerk/base/src',
+     '/netwerk/base',
      '/netwerk/protocol/http',
-+    '/toolkit/xre'
++    '/toolkit/xre',
  ]
  
  if CONFIG['MOZ_ENABLE_DBUS']:
@@ -2904,7 +2904,7 @@
 diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
 --- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
 +++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
-@@ -7,33 +7,36 @@
+@@ -7,32 +7,35 @@
  #ifdef MOZ_WIDGET_QT
  #if (MOZ_ENABLE_CONTENTACTION)
  #include <contentaction/contentaction.h>
@@ -2918,7 +2918,6 @@
  #include "nsIGIOService.h"
  #include "nsNetCID.h"
  #include "nsIIOService.h"
- #include "nsIGnomeVFSService.h"
  #include "nsAutoPtr.h"
  #ifdef MOZ_ENABLE_DBUS
  #include "nsDBusHandlerApp.h"
@@ -2943,7 +2942,7 @@
  #endif
  
    return rv;
-@@ -46,24 +49,24 @@ nsMIMEInfoUnix::GetHasDefaultHandler(boo
+@@ -45,24 +48,24 @@ nsMIMEInfoUnix::GetHasDefaultHandler(boo
    // either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to
    // give the GNOME answer.
    if (mDefaultApplication)
@@ -2951,7 +2950,7 @@
  
    *_retval = false;
  
-   if (mClass ==  eProtocolInfo) {
+   if (mClass == eProtocolInfo) {
 -    *_retval = nsGNOMERegistry::HandlerExists(mSchemeOrType.get());
 +    *_retval = nsCommonRegistry::HandlerExists(mSchemeOrType.get());
    } else {
@@ -2971,7 +2970,7 @@
  
    if (*_retval)
      return NS_OK;
-@@ -98,16 +101,33 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
+@@ -97,16 +100,33 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
      ContentAction::Action::defaultActionForFile(uri, QString(mSchemeOrType.get()));
    if (action.isValid()) {
      action.trigger();
@@ -2998,32 +2997,13 @@
 +  }
 +
    nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
-   nsAutoCString uriSpec;
-   if (giovfs) {
-     // nsGIOMimeApp->Launch wants a URI string instead of local file
-     nsresult rv;
-     nsCOMPtr<nsIIOService> ioservice = do_GetService(NS_IOSERVICE_CONTRACTID, &rv);
-     NS_ENSURE_SUCCESS(rv, rv);
-     nsCOMPtr<nsIURI> uri;
-@@ -125,17 +145,17 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
-     /* Fallback to GnomeVFS */
-     nsCOMPtr<nsIGnomeVFSMimeApp> app;
-     if (NS_SUCCEEDED(gnomevfs->GetAppForMimeType(mSchemeOrType, getter_AddRefs(app))) && app)
-       return app->Launch(nativePath);
+   if (!giovfs) {
+     return NS_ERROR_FAILURE;
    }
  
-   // If we haven't got an app we try to get a valid one by searching for the
-   // extension mapped type
--  nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromExtension(nativePath);
-+  nsRefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromExtension(nativePath);
-   if (mimeInfo) {
-     nsAutoCString type;
-     mimeInfo->GetType(type);
-     if (giovfs) {
-       nsCOMPtr<nsIGIOMimeApp> app;
-       if (NS_SUCCEEDED(giovfs->GetAppForMimeType(type, getter_AddRefs(app))) && app)
-         return app->Launch(uriSpec);
-     } else if (gnomevfs) {
+   // nsGIOMimeApp->Launch wants a URI string instead of local file
+   nsresult rv;
+   nsCOMPtr<nsIIOService> ioservice = do_GetService(NS_IOSERVICE_CONTRACTID, &rv);
 diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exthandler/unix/nsOSHelperAppService.cpp
 --- a/uriloader/exthandler/unix/nsOSHelperAppService.cpp
 +++ b/uriloader/exthandler/unix/nsOSHelperAppService.cpp
@@ -3054,7 +3034,7 @@
  #endif
  
  #ifdef MOZ_WIDGET_GTK
-   // Check the GConf registry for a protocol handler
+   // Check the GNOME registry for a protocol handler
 -  *aHandlerExists = nsGNOMERegistry::HandlerExists(aProtocolScheme);
 +  *aHandlerExists = nsCommonRegistry::HandlerExists(aProtocolScheme);
  #endif
@@ -3094,25 +3074,25 @@
  
      rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt),
                                    majorType,
-@@ -1372,17 +1372,17 @@ nsOSHelperAppService::GetFromType(const 
+@@ -1373,17 +1373,17 @@ nsOSHelperAppService::GetFromType(const 
+   nsAutoString extensions, mime_types_description;
+   LookUpExtensionsAndDescription(majorType,
+                                  minorType,
+                                  extensions,
+                                  mime_types_description);
+ 
  #ifdef MOZ_WIDGET_GTK
-   nsRefPtr<nsMIMEInfoBase> gnomeInfo;
    if (handler.IsEmpty()) {
-     // No useful data yet.  Check the GNOME registry.  Unfortunately, newer
-     // GNOME versions no longer have type-to-extension mappings, so we might
-     // get back a MIMEInfo without any extensions set.  In that case we'll have
-     // to look in our mime.types files for the extensions.
-     LOG(("Looking in GNOME registry\n"));
--    gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType);
-+    gnomeInfo = nsCommonRegistry::GetFromType(aMIMEType);
-     if (gnomeInfo && gnomeInfo->HasExtensions()) {
-       LOG(("Got MIMEInfo from GNOME registry, and it has extensions set\n"));
+-    nsRefPtr<nsMIMEInfoBase> gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType);
++    nsRefPtr<nsMIMEInfoBase> gnomeInfo = nsCommonRegistry::GetFromType(aMIMEType);
+     if (gnomeInfo) {
+       LOG(("Got MIMEInfo from GNOME registry without extensions; setting them "
+            "to %s\n", NS_LossyConvertUTF16toASCII(extensions).get()));
+ 
+       NS_ASSERTION(!gnomeInfo->HasExtensions(), "How'd that happen?");
+       gnomeInfo->SetFileExtensions(NS_ConvertUTF16toUTF8(extensions));
        return gnomeInfo.forget();
      }
-   }
- #endif
- 
-   // Now look up our extensions
 diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
 --- a/widget/gtk/moz.build
 +++ b/widget/gtk/moz.build
@@ -3465,7 +3445,7 @@
 diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h
 --- a/widget/gtk/nsFilePicker.h
 +++ b/widget/gtk/nsFilePicker.h
-@@ -66,11 +66,17 @@ protected:
+@@ -68,11 +68,17 @@ protected:
    nsString  mDefault;
    nsString  mDefaultExtension;
  
@@ -3504,9 +3484,9 @@
  #define XPTONLY_MANIFEST nullptr
  #define XPTONLY_XPT nullptr
  #endif
-@@ -488,16 +489,17 @@ ParseManifest(NSLocationType aType, File
-   NS_NAMED_LITERAL_STRING(kPlatform, "platform");
-   NS_NAMED_LITERAL_STRING(kContentAccessible, "contentaccessible");
+@@ -489,16 +490,17 @@ ParseManifest(NSLocationType aType, File
+   NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled");
+   NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired");
    NS_NAMED_LITERAL_STRING(kApplication, "application");
    NS_NAMED_LITERAL_STRING(kAppVersion, "appversion");
    NS_NAMED_LITERAL_STRING(kGeckoVersion, "platformversion");
@@ -3522,7 +3502,7 @@
    NS_NAMED_LITERAL_STRING(kMain, "main");
    NS_NAMED_LITERAL_STRING(kContent, "content");
  
-@@ -548,44 +550,49 @@ ParseManifest(NSLocationType aType, File
+@@ -549,44 +551,49 @@ ParseManifest(NSLocationType aType, File
          CopyUTF8toUTF16(s, abi);
          abi.Insert(char16_t('_'), 0);
          abi.Insert(osTarget, 0);
@@ -3573,14 +3553,14 @@
    }
  
 @@ -681,25 +688,27 @@ ParseManifest(NSLocationType aType, File
+     TriState stOsVersion = eUnspecified;
      TriState stOs = eUnspecified;
      TriState stABI = eUnspecified;
      TriState stProcess = eUnspecified;
  #if defined(MOZ_WIDGET_ANDROID)
      TriState stTablet = eUnspecified;
  #endif
-     bool platform = false;
-     bool contentAccessible = false;
+     int flags = 0;
 +    TriState stDesktop = eUnspecified;
  
      while ((token = nsCRT::strtok(whitespace, kWhitespace, &whitespace)) &&
@@ -3600,7 +3580,7 @@
        }
  
  #if defined(MOZ_WIDGET_ANDROID)
-@@ -731,16 +740,17 @@ ParseManifest(NSLocationType aType, File
+@@ -749,16 +758,17 @@ ParseManifest(NSLocationType aType, File
      }
  
      if (!ok ||
@@ -3638,7 +3618,8 @@
 diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
 --- a/xpcom/io/nsLocalFileUnix.cpp
 +++ b/xpcom/io/nsLocalFileUnix.cpp
-@@ -45,16 +45,17 @@
+@@ -44,16 +44,17 @@
+ #include "prproces.h"
  #include "nsIDirectoryEnumerator.h"
  #include "nsISimpleEnumerator.h"
  #include "private/pprio.h"
@@ -3646,7 +3627,6 @@
  
  #ifdef MOZ_WIDGET_GTK
  #include "nsIGIOService.h"
- #include "nsIGnomeVFSService.h"
 +#include "nsKDEUtils.h"
  #endif
  
@@ -3656,7 +3636,7 @@
  #include "prmem.h"
  #include "plbase64.h"
  
-@@ -1965,55 +1966,57 @@ nsLocalFile::SetPersistentDescriptor(con
+@@ -1964,42 +1965,52 @@ nsLocalFile::SetPersistentDescriptor(con
    return InitWithNativePath(aPersistentDescriptor);
  #endif
  }
@@ -3666,14 +3646,11 @@
  {
  #ifdef MOZ_WIDGET_GTK
 -  nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
--  nsCOMPtr<nsIGnomeVFSService> gnomevfs =
--    do_GetService(NS_GNOMEVFSSERVICE_CONTRACTID);
--  if (!giovfs && !gnomevfs) {
+-  if (!giovfs) {
 -    return NS_ERROR_FAILURE;
 -  }
--
-+
 +  nsAutoCString url;
+ 
    bool isDirectory;
    if (NS_FAILED(IsDirectory(&isDirectory))) {
      return NS_ERROR_FAILURE;
@@ -3681,16 +3658,9 @@
  
 +  nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
    if (isDirectory) {
--    if (giovfs) {
--      return giovfs->ShowURIForInput(mPath);
--    } else
--      /* Fallback to GnomeVFS */
--    {
--      return gnomevfs->ShowURIForInput(mPath);
--    }
+-    return giovfs->ShowURIForInput(mPath);
 +    url = mPath;
-   } else if (giovfs &&
-              NS_SUCCEEDED(giovfs->OrgFreedesktopFileManager1ShowItems(mPath))) {
+   } else if (NS_SUCCEEDED(giovfs->OrgFreedesktopFileManager1ShowItems(mPath))) {
      return NS_OK;
    } else {
      nsCOMPtr<nsIFile> parentDir;
@@ -3702,11 +3672,7 @@
        return NS_ERROR_FAILURE;
      }
  
--    if (giovfs) {
--      return giovfs->ShowURIForInput(dirPath);
--    } else {
--      return gnomevfs->ShowURIForInput(dirPath);
--    }
+-    return giovfs->ShowURIForInput(dirPath);
 +    url = dirPath;
    }
 +
@@ -3717,14 +3683,10 @@
 +    return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
 +  }
 +
-+  nsCOMPtr<nsIGnomeVFSService> gnomevfs = do_GetService(NS_GNOMEVFSSERVICE_CONTRACTID);
-+  if (!giovfs && !gnomevfs)
++  if (!giovfs)
 +    return NS_ERROR_FAILURE;
 +
-+  if (giovfs)
-+    return giovfs->ShowURIForInput(url);
-+  else
-+    return gnomevfs->ShowURIForInput(url);
++  return giovfs->ShowURIForInput(url);
  #elif defined(MOZ_WIDGET_COCOA)
    CFURLRef url;
    if (NS_SUCCEEDED(GetCFURL(&url))) {
@@ -3733,7 +3695,7 @@
      return rv;
    }
    return NS_ERROR_FAILURE;
-@@ -2021,16 +2024,22 @@ nsLocalFile::Reveal()
+@@ -2007,16 +2018,22 @@ nsLocalFile::Reveal()
    return NS_ERROR_FAILURE;
  #endif
  }
@@ -3749,10 +3711,10 @@
 +    return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
 +  }
    nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
-   nsCOMPtr<nsIGnomeVFSService> gnomevfs =
-     do_GetService(NS_GNOMEVFSSERVICE_CONTRACTID);
-   if (giovfs) {
-     return giovfs->ShowURIForInput(mPath);
-   } else if (gnomevfs) {
-     /* GnomeVFS fallback */
-     return gnomevfs->ShowURIForInput(mPath);
+   if (!giovfs) {
+     return NS_ERROR_FAILURE;
+   }
+ 
+   return giovfs->ShowURIForInput(mPath);
+ #elif defined(MOZ_ENABLE_CONTENTACTION)
+   QUrl uri = QUrl::fromLocalFile(QString::fromUtf8(mPath.get()));