--- 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"