--- mozilla/chrome/src/Makefile.in.sav 2009-09-14 10:00:21.000000000 +0200 +++ mozilla/chrome/src/Makefile.in 2009-09-14 10:04:14.000000000 +0200 @@ -86,6 +86,7 @@ EXTRA_DSO_LDOPTS = \ ifneq (,$(filter gtk2,$(MOZ_WIDGET_TOOLKIT))) EXTRA_DSO_LDOPTS += $(MOZ_GTK2_LIBS) +LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre endif ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) --- mozilla/chrome/src/nsChromeRegistry.cpp.sav 2009-09-14 10:00:21.000000000 +0200 +++ mozilla/chrome/src/nsChromeRegistry.cpp 2009-09-14 10:04:14.000000000 +0200 @@ -114,6 +114,7 @@ #include "nsIXULAppInfo.h" #include "nsIXULRuntime.h" #include "nsPresShellIterator.h" +#include "nsKDEUtils.h" #ifdef MOZ_XUL // keep all the RDF stuff together, in case we can remove it in the far future @@ -2208,6 +2209,7 @@ nsChromeRegistry::ProcessManifestBuffer( NS_NAMED_LITERAL_STRING(kAppVersion, "appversion"); NS_NAMED_LITERAL_STRING(kOs, "os"); NS_NAMED_LITERAL_STRING(kOsVersion, "osversion"); + NS_NAMED_LITERAL_STRING(kDesktop, "desktop"); nsCOMPtr io (do_GetIOService()); if (!io) return NS_ERROR_FAILURE; @@ -2251,6 +2253,7 @@ nsChromeRegistry::ProcessManifestBuffer( } nsAutoString osVersion; + nsAutoString desktop; #if defined(XP_WIN) OSVERSIONINFO info = { sizeof(OSVERSIONINFO) }; if (GetVersionEx(&info)) { @@ -2258,6 +2261,7 @@ nsChromeRegistry::ProcessManifestBuffer( info.dwMajorVersion, info.dwMinorVersion); } + desktop = NS_LITERAL_STRING("win"); #elif defined(XP_MACOSX) long majorVersion, minorVersion; if ((Gestalt(gestaltSystemVersionMajor, &majorVersion) == noErr) && @@ -2266,10 +2270,12 @@ nsChromeRegistry::ProcessManifestBuffer( majorVersion, minorVersion); } + desktop = NS_LITERAL_STRING("macosx"); #elif defined(MOZ_WIDGET_GTK2) nsTextFormatter::ssprintf(osVersion, NS_LITERAL_STRING("%ld.%ld").get(), gtk_major_version, gtk_minor_version); + desktop = nsKDEUtils::kdeSession() ? NS_LITERAL_STRING("kde") : NS_LITERAL_STRING("gnome"); // TODO others? #endif char *token; @@ -2313,6 +2319,7 @@ nsChromeRegistry::ProcessManifestBuffer( TriState stApp = eUnspecified; TriState stOsVersion = eUnspecified; TriState stOs = eUnspecified; + TriState stDesktop = eUnspecified; PRBool badFlag = PR_FALSE; @@ -2326,6 +2333,7 @@ nsChromeRegistry::ProcessManifestBuffer( CheckFlag(kContentAccessible, wtoken, contentAccessible) || CheckStringFlag(kApplication, wtoken, appID, stApp) || CheckStringFlag(kOs, wtoken, osTarget, stOs) || + CheckStringFlag(kDesktop, wtoken, desktop, stDesktop) || CheckVersionFlag(kOsVersion, wtoken, osVersion, vc, stOsVersion) || CheckVersionFlag(kAppVersion, wtoken, appVersion, vc, stAppVersion)) continue; @@ -2337,7 +2345,7 @@ nsChromeRegistry::ProcessManifestBuffer( } if (badFlag || stApp == eBad || stAppVersion == eBad || - stOs == eBad || stOsVersion == eBad) + stOs == eBad || stOsVersion == eBad || stDesktop == eBad) continue; nsCOMPtr resolved; @@ -2398,6 +2406,7 @@ nsChromeRegistry::ProcessManifestBuffer( TriState stApp = eUnspecified; TriState stOs = eUnspecified; TriState stOsVersion = eUnspecified; + TriState stDesktop = eUnspecified; PRBool badFlag = PR_FALSE; @@ -2408,6 +2417,7 @@ nsChromeRegistry::ProcessManifestBuffer( if (CheckStringFlag(kApplication, wtoken, appID, stApp) || CheckStringFlag(kOs, wtoken, osTarget, stOs) || + CheckStringFlag(kDesktop, wtoken, desktop, stDesktop) || CheckVersionFlag(kOsVersion, wtoken, osVersion, vc, stOsVersion) || CheckVersionFlag(kAppVersion, wtoken, appVersion, vc, stAppVersion)) continue; @@ -2419,7 +2429,7 @@ nsChromeRegistry::ProcessManifestBuffer( } if (badFlag || stApp == eBad || stAppVersion == eBad || - stOs == eBad || stOsVersion == eBad) + stOs == eBad || stOsVersion == eBad || stDesktop == eBad) continue; nsCOMPtr resolved; @@ -2460,6 +2470,7 @@ nsChromeRegistry::ProcessManifestBuffer( TriState stApp = eUnspecified; TriState stOs = eUnspecified; TriState stOsVersion = eUnspecified; + TriState stDesktop = eUnspecified; PRBool badFlag = PR_FALSE; @@ -2470,6 +2481,7 @@ nsChromeRegistry::ProcessManifestBuffer( if (CheckStringFlag(kApplication, wtoken, appID, stApp) || CheckStringFlag(kOs, wtoken, osTarget, stOs) || + CheckStringFlag(kDesktop, wtoken, desktop, stDesktop) || CheckVersionFlag(kOsVersion, wtoken, osVersion, vc, stOsVersion) || CheckVersionFlag(kAppVersion, wtoken, appVersion, vc, stAppVersion)) continue; @@ -2481,7 +2493,7 @@ nsChromeRegistry::ProcessManifestBuffer( } if (badFlag || stApp == eBad || stAppVersion == eBad || - stOs == eBad || stOsVersion == eBad) + stOs == eBad || stOsVersion == eBad || stDesktop == eBad) continue; nsCOMPtr resolved; @@ -2524,6 +2536,7 @@ nsChromeRegistry::ProcessManifestBuffer( TriState stApp = eUnspecified; TriState stOs = eUnspecified; TriState stOsVersion = eUnspecified; + TriState stDesktop = eUnspecified; PRBool badFlag = PR_FALSE; @@ -2534,6 +2547,7 @@ nsChromeRegistry::ProcessManifestBuffer( if (CheckStringFlag(kApplication, wtoken, appID, stApp) || CheckStringFlag(kOs, wtoken, osTarget, stOs) || + CheckStringFlag(kDesktop, wtoken, desktop, stDesktop) || CheckVersionFlag(kOsVersion, wtoken, osVersion, vc, stOsVersion) || CheckVersionFlag(kAppVersion, wtoken, appVersion, vc, stAppVersion)) continue; @@ -2545,7 +2559,7 @@ nsChromeRegistry::ProcessManifestBuffer( } if (badFlag || stApp == eBad || stAppVersion == eBad || - stOs == eBad || stOsVersion == eBad) + stOs == eBad || stOsVersion == eBad || stDesktop == eBad) continue; nsCOMPtr baseuri, overlayuri; @@ -2580,6 +2594,7 @@ nsChromeRegistry::ProcessManifestBuffer( TriState stApp = eUnspecified; TriState stOs = eUnspecified; TriState stOsVersion = eUnspecified; + TriState stDesktop = eUnspecified; PRBool badFlag = PR_FALSE; @@ -2590,6 +2605,7 @@ nsChromeRegistry::ProcessManifestBuffer( if (CheckStringFlag(kApplication, wtoken, appID, stApp) || CheckStringFlag(kOs, wtoken, osTarget, stOs) || + CheckStringFlag(kDesktop, wtoken, desktop, stDesktop) || CheckVersionFlag(kOsVersion, wtoken, osVersion, vc, stOsVersion) || CheckVersionFlag(kAppVersion, wtoken, appVersion, vc, stAppVersion)) continue; @@ -2601,7 +2617,7 @@ nsChromeRegistry::ProcessManifestBuffer( } if (badFlag || stApp == eBad || stAppVersion == eBad || - stOs == eBad || stOsVersion == eBad) + stOs == eBad || stOsVersion == eBad || stDesktop == eBad) continue; nsCOMPtr baseuri, overlayuri; @@ -2640,6 +2656,7 @@ nsChromeRegistry::ProcessManifestBuffer( TriState stApp = eUnspecified; TriState stOs = eUnspecified; TriState stOsVersion = eUnspecified; + TriState stDesktop = eUnspecified; PRBool badFlag = PR_FALSE; @@ -2650,6 +2667,7 @@ nsChromeRegistry::ProcessManifestBuffer( if (CheckStringFlag(kApplication, wtoken, appID, stApp) || CheckStringFlag(kOs, wtoken, osTarget, stOs) || + CheckStringFlag(kDesktop, wtoken, desktop, stDesktop) || CheckVersionFlag(kOsVersion, wtoken, osVersion, vc, stOsVersion) || CheckVersionFlag(kAppVersion, wtoken, appVersion, vc, stAppVersion)) continue; @@ -2661,7 +2679,7 @@ nsChromeRegistry::ProcessManifestBuffer( } if (badFlag || stApp == eBad || stAppVersion == eBad || - stOs == eBad || stOsVersion == eBad) + stOs == eBad || stOsVersion == eBad || stDesktop == eBad) continue; nsCOMPtr chromeuri, resolveduri; @@ -2702,6 +2720,7 @@ nsChromeRegistry::ProcessManifestBuffer( TriState stApp = eUnspecified; TriState stOsVersion = eUnspecified; TriState stOs = eUnspecified; + TriState stDesktop = eUnspecified; PRBool badFlag = PR_FALSE; @@ -2712,6 +2731,7 @@ nsChromeRegistry::ProcessManifestBuffer( if (CheckStringFlag(kApplication, wtoken, appID, stApp) || CheckStringFlag(kOs, wtoken, osTarget, stOs) || + CheckStringFlag(kDesktop, wtoken, desktop, stDesktop) || CheckVersionFlag(kOsVersion, wtoken, osVersion, vc, stOsVersion) || CheckVersionFlag(kAppVersion, wtoken, appVersion, vc, stAppVersion)) continue; @@ -2723,7 +2743,7 @@ nsChromeRegistry::ProcessManifestBuffer( } if (badFlag || stApp == eBad || stAppVersion == eBad || - stOs == eBad || stOsVersion == eBad) + stOs == eBad || stOsVersion == eBad || stDesktop == eBad) continue; nsDependentCString host(package); --- mozilla/modules/libpref/src/Makefile.in.sav 2009-09-14 10:00:21.000000000 +0200 +++ mozilla/modules/libpref/src/Makefile.in 2009-09-14 10:04:14.000000000 +0200 @@ -97,3 +97,5 @@ nsPrefService.$(OBJ_SUFFIX): nsPrefServi @$(MAKE_DEPS_AUTO_CXX) $(ELOG) $(CCC) $(OUTOPTION)$@ -c $(COMPILE_CXXFLAGS:-O2=-O1) $(_VPATH_SRCS) endif + +LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre --- mozilla/modules/libpref/src/nsPrefService.cpp.sav 2009-09-14 10:00:21.000000000 +0200 +++ mozilla/modules/libpref/src/nsPrefService.cpp 2009-09-14 10:04:14.000000000 +0200 @@ -51,6 +51,7 @@ #include "nsCOMArray.h" #include "nsXPCOMCID.h" #include "nsAutoPtr.h" +#include "nsKDEUtils.h" #include "nsQuickSort.h" #include "prmem.h" @@ -606,7 +607,8 @@ pref_LoadPrefsInDir(nsIFile* aDir, char return rv; } -static nsresult pref_LoadPrefsInDirList(const char *listId) +static nsresult pref_LoadPrefsInDirList(const char *listId, + char const *const *aSpecialFiles = NULL, PRUint32 aSpecialFilesCount = 0) { nsresult rv; nsCOMPtr dirSvc(do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv)); @@ -625,7 +627,7 @@ static nsresult pref_LoadPrefsInDirList( nsCOMPtr dir = do_QueryInterface(elem); if (dir) { // Do we care if a file provided by this process fails to load? - pref_LoadPrefsInDir(dir, nsnull, 0); + pref_LoadPrefsInDir(dir, aSpecialFiles, aSpecialFilesCount); } } } @@ -676,6 +678,7 @@ static nsresult pref_InitInitialObjects( #if defined(MOZ_WIDGET_PHOTON) , "photon.js" #endif + , "" // placeholder for KDE (empty is otherwise harmless) #elif defined(XP_OS2) "os2pref.js" #elif defined(XP_BEOS) @@ -683,12 +686,23 @@ static nsresult pref_InitInitialObjects( #endif }; + if( nsKDEUtils::kdeSession()) { // TODO what if some setup actually requires the helper? + for( int i = 0; + i < NS_ARRAY_LENGTH(specialFiles); + ++i ) { + if( *specialFiles[ i ] == '\0' ) { + specialFiles[ i ] = "kde.js"; + break; + } + } + } + rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, NS_ARRAY_LENGTH(specialFiles)); if (NS_FAILED(rv)) { NS_WARNING("Error parsing application default preferences."); } - rv = pref_LoadPrefsInDirList(NS_APP_PREFS_DEFAULTS_DIR_LIST); + rv = pref_LoadPrefsInDirList(NS_APP_PREFS_DEFAULTS_DIR_LIST, specialFiles, NS_ARRAY_LENGTH(specialFiles)); NS_ENSURE_SUCCESS(rv, rv); NS_CreateServicesFromCategory(NS_PREFSERVICE_APPDEFAULTS_TOPIC_ID, --- mozilla/toolkit/components/downloads/src/Makefile.in.sav 2009-09-14 10:00:21.000000000 +0200 +++ mozilla/toolkit/components/downloads/src/Makefile.in 2009-09-14 10:04:14.000000000 +0200 @@ -100,3 +100,4 @@ include $(topsrcdir)/config/rules.mk EXTRA_DSO_LDOPTS += $(MOZ_COMPONENT_LIBS) +LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre --- mozilla/toolkit/components/downloads/src/nsDownloadManager.cpp.sav 2009-09-14 10:00:21.000000000 +0200 +++ mozilla/toolkit/components/downloads/src/nsDownloadManager.cpp 2009-09-14 10:04:14.000000000 +0200 @@ -85,6 +85,7 @@ #include "nsDocShellCID.h" #include "nsIPrivateBrowsingService.h" #include "nsNetCID.h" +#include "nsKDEUtils.h" #if defined(XP_WIN) && !defined(WINCE) #include @@ -2299,6 +2300,15 @@ nsDownload::SetState(DownloadState aStat pref->GetBoolPref(PREF_BDM_SHOWALERTONCOMPLETE, &showTaskbarAlert); if (showTaskbarAlert) { + if( nsKDEUtils::kdeSupport()) { + nsCStringArray command; + command.AppendCString( NS_LITERAL_CSTRING( "DOWNLOADFINISHED" )); + nsAutoString displayName; + GetDisplayName( displayName ); + command.AppendCString( nsCAutoString( ToNewUTF8String( displayName ))); + nsKDEUtils::command( command ); + } else { + // begin non-KDE block PRInt32 alertInterval = 2000; if (pref) pref->GetIntPref(PREF_BDM_SHOWALERTINTERVAL, &alertInterval); @@ -2334,6 +2344,7 @@ nsDownload::SetState(DownloadState aStat EmptyString()); } } + } // end non-KDE block } #if defined(XP_WIN) && !defined(WINCE) nsCOMPtr fileURL = do_QueryInterface(mTarget); --- mozilla/toolkit/content/jar.mn.sav 2009-09-14 10:00:21.000000000 +0200 +++ mozilla/toolkit/content/jar.mn 2009-09-14 10:04:14.000000000 +0200 @@ -43,6 +43,8 @@ toolkit.jar: *+ content/global/bindings/colorpicker.xml (widgets/colorpicker.xml) *+ content/global/bindings/datetimepicker.xml (widgets/datetimepicker.xml) *+ content/global/bindings/dialog.xml (widgets/dialog.xml) +*+ content/global/bindings/dialog-kde.xml (widgets/dialog-kde.xml) +% override chrome://global/content/bindings/dialog.xml chrome://global/content/bindings/dialog-kde.xml desktop=kde *+ content/global/bindings/editor.xml (widgets/editor.xml) * content/global/bindings/expander.xml (widgets/expander.xml) * content/global/bindings/filefield.xml (widgets/filefield.xml) @@ -56,6 +58,8 @@ toolkit.jar: *+ content/global/bindings/numberbox.xml (widgets/numberbox.xml) *+ content/global/bindings/popup.xml (widgets/popup.xml) *+ content/global/bindings/preferences.xml (widgets/preferences.xml) +*+ content/global/bindings/preferences-kde.xml (widgets/preferences-kde.xml) +% override chrome://global/content/bindings/preferences.xml chrome://global/content/bindings/preferences-kde.xml desktop=kde *+ content/global/bindings/progressmeter.xml (widgets/progressmeter.xml) *+ content/global/bindings/radio.xml (widgets/radio.xml) *+ content/global/bindings/resizer.xml (widgets/resizer.xml) --- mozilla/toolkit/content/widgets/dialog-kde.xml.sav 2009-09-14 10:00:21.000000000 +0200 +++ mozilla/toolkit/content/widgets/dialog-kde.xml 2009-09-14 10:04:14.000000000 +0200 @@ -19,7 +19,7 @@