mozilla-kde.patch
changeset 828 59013b3a51f5
parent 807 f54c68340963
child 837 a1f740acf68e
--- a/mozilla-kde.patch	Sun Jan 25 11:12:18 2015 +0100
+++ b/mozilla-kde.patch	Wed Jan 28 13:45:46 2015 +0100
@@ -1,3 +1,5 @@
+# HG changeset patch
+# Parent  aba9432d1fd32a118ba24e92c6b6e99ddb0b9bdc
 Description: Add KDE integration to Firefox (toolkit parts)
 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
 Author: Lubos Lunak <lunak@suse.com>
@@ -202,7 +204,7 @@
 diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp
 --- a/toolkit/components/downloads/nsDownloadManager.cpp
 +++ b/toolkit/components/downloads/nsDownloadManager.cpp
-@@ -44,16 +44,20 @@
+@@ -46,16 +46,20 @@
  #ifdef XP_WIN
  #include <shlobj.h>
  #include "nsWindowsHelpers.h"
@@ -223,7 +225,7 @@
  #include "AndroidBridge.h"
  using namespace mozilla::widget::android;
  #endif
-@@ -2712,16 +2716,25 @@ nsDownload::SetState(DownloadState aStat
+@@ -2717,16 +2721,25 @@ nsDownload::SetState(DownloadState aStat
        nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
  
        // Master pref to control this function.
@@ -249,7 +251,7 @@
          int64_t goat = PR_Now() - mStartTime;
          showTaskbarAlert = goat > alertIntervalUSec;
  
-@@ -2752,16 +2765,17 @@ nsDownload::SetState(DownloadState aStat
+@@ -2757,16 +2770,17 @@ nsDownload::SetState(DownloadState aStat
                    NS_LITERAL_STRING(DOWNLOAD_MANAGER_ALERT_ICON), title,
                    message, !removeWhenDone,
                    mPrivate ? NS_LITERAL_STRING("private") : NS_LITERAL_STRING("non-private"),
@@ -270,7 +272,7 @@
 diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
 --- a/toolkit/content/jar.mn
 +++ b/toolkit/content/jar.mn
-@@ -55,29 +55,33 @@ toolkit.jar:
+@@ -57,29 +57,33 @@ toolkit.jar:
     content/global/viewZoomOverlay.js          (viewZoomOverlay.js)
  *+ content/global/bindings/autocomplete.xml    (widgets/autocomplete.xml)
     content/global/bindings/browser.xml         (widgets/browser.xml)
@@ -768,7 +770,7 @@
 new file mode 100644
 --- /dev/null
 +++ b/toolkit/content/widgets/preferences-kde.xml
-@@ -0,0 +1,1343 @@
+@@ -0,0 +1,1350 @@
 +<?xml version="1.0"?>
 +
 +<!DOCTYPE bindings [
@@ -903,8 +905,12 @@
 +        // In non-instant apply mode, we must try and use the last saved state
 +        // from any previous opens of a child dialog instead of the value from
 +        // preferences, to pick up any edits a user may have made. 
++
++        var secMan = Components.classes["@mozilla.org/scriptsecuritymanager;1"]
++                    .getService(Components.interfaces.nsIScriptSecurityManager);
 +        if (this.preferences.type == "child" && 
-+            !this.instantApply && window.opener) {
++            !this.instantApply && window.opener &&
++            secMan.isSystemPrincipal(window.opener.document.nodePrincipal)) {
 +          var pdoc = window.opener.document;
 +
 +          // Try to find a preference element for the same preference.
@@ -1824,7 +1830,10 @@
 +          return false;
 +        }
 +
-+        if (this.type == "child" && window.opener) {
++        var secMan = Components.classes["@mozilla.org/scriptsecuritymanager;1"]
++                    .getService(Components.interfaces.nsIScriptSecurityManager);
++        if (this.type == "child" && window.opener &&
++            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");
@@ -2650,11 +2659,11 @@
          'android/nsExternalSharingAppService.cpp',
          'android/nsExternalURLHandlerService.cpp',
          'android/nsMIMEInfoAndroid.cpp',
-@@ -121,16 +123,17 @@ include('/ipc/chromium/chromium-config.m
+@@ -123,16 +125,17 @@ include('/ipc/chromium/chromium-config.m
+ 
  FINAL_LIBRARY = 'xul'
  
  LOCAL_INCLUDES += [
-     '/content/base/src',
      '/dom/base',
      '/dom/ipc',
      '/netwerk/base/src',
@@ -2895,8 +2904,8 @@
 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
-@@ -10,30 +10,33 @@
- #include <QString>
+@@ -7,33 +7,36 @@
+ #ifdef MOZ_WIDGET_QT
  #if (MOZ_ENABLE_CONTENTACTION)
  #include <contentaction/contentaction.h>
  #include "nsContentHandlerApp.h"
@@ -2914,6 +2923,9 @@
  #ifdef MOZ_ENABLE_DBUS
  #include "nsDBusHandlerApp.h"
  #endif
+ #ifdef MOZ_WIDGET_QT
+ #include "nsMIMEInfoQt.h"
+ #endif
 +#if defined(XP_UNIX) && !defined(XP_MACOSX)
 +#include "nsKDEUtils.h"
 +#endif
@@ -2926,12 +2938,12 @@
  
  #ifdef MOZ_WIDGET_QT
    if (NS_FAILED(rv)) {
-     nsAutoCString spec;
-     aURI->GetAsciiSpec(spec);
-     if (QDesktopServices::openUrl(QUrl(spec.get()))) {
-       rv = NS_OK;
-     }
-@@ -50,24 +53,24 @@ nsMIMEInfoUnix::GetHasDefaultHandler(boo
+     rv = nsMIMEInfoQt::LoadUriInternal(aURI);
+   }
+ #endif
+ 
+   return rv;
+@@ -46,24 +49,24 @@ nsMIMEInfoUnix::GetHasDefaultHandler(boo
    // either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to
    // give the GNOME answer.
    if (mDefaultApplication)
@@ -2959,7 +2971,7 @@
  
    if (*_retval)
      return NS_OK;
-@@ -102,16 +105,33 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
+@@ -98,16 +101,33 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
      ContentAction::Action::defaultActionForFile(uri, QString(mSchemeOrType.get()));
    if (action.isValid()) {
      action.trigger();
@@ -2993,7 +3005,7 @@
      nsCOMPtr<nsIIOService> ioservice = do_GetService(NS_IOSERVICE_CONTRACTID, &rv);
      NS_ENSURE_SUCCESS(rv, rv);
      nsCOMPtr<nsIURI> uri;
-@@ -129,17 +149,17 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
+@@ -125,17 +145,17 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
      /* Fallback to GnomeVFS */
      nsCOMPtr<nsIGnomeVFSMimeApp> app;
      if (NS_SUCCEEDED(gnomevfs->GetAppForMimeType(mSchemeOrType, getter_AddRefs(app))) && app)
@@ -3104,24 +3116,24 @@
 diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
 --- a/widget/gtk/moz.build
 +++ b/widget/gtk/moz.build
-@@ -81,16 +81,17 @@ include('/ipc/chromium/chromium-config.m
+@@ -79,16 +79,17 @@ else:
+ include('/ipc/chromium/chromium-config.mozbuild')
+ 
  FINAL_LIBRARY = 'xul'
  
  LOCAL_INCLUDES += [
-     '../shared',
-     '../xpwidgets',
      '/layout/generic',
      '/layout/xul',
      '/other-licenses/atk-1.0',
-+    '/toolkit/xre'
++    '/toolkit/xre',
+     '/widget',
  ]
  
  if CONFIG['MOZ_X11']:
      LOCAL_INCLUDES += [
-         '../shared/x11',
+         '/widget/x11',
      ]
  
- DEFINES['CAIRO_GFX'] = True
 diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
 --- a/widget/gtk/nsFilePicker.cpp
 +++ b/widget/gtk/nsFilePicker.cpp
@@ -3626,7 +3638,7 @@
 diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
 --- a/xpcom/io/nsLocalFileUnix.cpp
 +++ b/xpcom/io/nsLocalFileUnix.cpp
-@@ -44,16 +44,17 @@
+@@ -45,16 +45,17 @@
  #include "nsIDirectoryEnumerator.h"
  #include "nsISimpleEnumerator.h"
  #include "private/pprio.h"