зеркало из https://github.com/mozilla/gecko-dev.git
Bug 418131 - "Need a way to detect GTK+ version so we don't break users on major update" [p=ventnor.bugzilla@yahoo.com.au (Michael Ventnor) r=bsmedberg sr=dveditz a=blocking-firefox3+]
This commit is contained in:
Родитель
4bcd5af890
Коммит
17bf692bc0
|
@ -1022,18 +1022,26 @@ function UpdateService() {
|
|||
LOG("UpdateService", "XPCOM ABI unknown: updates are not possible.");
|
||||
}
|
||||
|
||||
var osVersion;
|
||||
var sysInfo = Components.classes["@mozilla.org/system-info;1"]
|
||||
.getService(Components.interfaces.nsIPropertyBag2);
|
||||
try {
|
||||
var sysInfo =
|
||||
Components.classes["@mozilla.org/system-info;1"]
|
||||
.getService(Components.interfaces.nsIPropertyBag2);
|
||||
|
||||
gOSVersion = encodeURIComponent(sysInfo.getProperty("name") + " " +
|
||||
sysInfo.getProperty("version"));
|
||||
osVersion = sysInfo.getProperty("name") + " " + sysInfo.getProperty("version");
|
||||
}
|
||||
catch (e) {
|
||||
LOG("UpdateService", "OS Version unknown: updates are not possible.");
|
||||
}
|
||||
|
||||
if (osVersion) {
|
||||
try {
|
||||
osVersion += " (" + sysInfo.getProperty("secondaryLibrary") + ")";
|
||||
}
|
||||
catch (e) {
|
||||
// Not all platforms have a secondary widget library, so an error is nothing to worry about.
|
||||
}
|
||||
gOSVersion = encodeURIComponent(osVersion);
|
||||
}
|
||||
|
||||
#ifdef XP_MACOSX
|
||||
// Mac universal build should report a different ABI than either macppc
|
||||
// or mactel.
|
||||
|
|
|
@ -148,3 +148,7 @@ include $(topsrcdir)/config/rules.mk
|
|||
|
||||
DEFINES += -D_IMPL_NS_COM
|
||||
|
||||
ifneq (,$(filter gtk2,$(MOZ_WIDGET_TOOLKIT)))
|
||||
CXXFLAGS += $(MOZ_GTK2_CFLAGS)
|
||||
endif
|
||||
|
||||
|
|
|
@ -39,6 +39,11 @@
|
|||
#include "nsSystemInfo.h"
|
||||
#include "prsystem.h"
|
||||
#include "nsString.h"
|
||||
#include "prprf.h"
|
||||
|
||||
#ifdef MOZ_WIDGET_GTK2
|
||||
#include <gtk/gtk.h>
|
||||
#endif
|
||||
|
||||
nsSystemInfo::nsSystemInfo()
|
||||
{
|
||||
|
@ -74,6 +79,17 @@ nsSystemInfo::Init()
|
|||
else
|
||||
NS_WARNING("PR_GetSystemInfo failed");
|
||||
}
|
||||
|
||||
#ifdef MOZ_WIDGET_GTK2
|
||||
// This must be done here because NSPR can only separate OS's when compiled, not libraries.
|
||||
char* gtkver = PR_smprintf("GTK %u.%u.%u", gtk_major_version, gtk_minor_version, gtk_micro_version);
|
||||
if (gtkver) {
|
||||
rv = SetPropertyAsACString(NS_ConvertASCIItoUTF16("secondaryLibrary"),
|
||||
nsDependentCString(gtkver));
|
||||
PR_smprintf_free(gtkver);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
#endif
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
|
|
@ -186,6 +186,10 @@ ifeq ($(OS_ARCH),BeOS)
|
|||
EXTRA_DSO_LDOPTS += -lbe
|
||||
endif
|
||||
|
||||
ifneq (,$(filter gtk2,$(MOZ_WIDGET_TOOLKIT)))
|
||||
EXTRA_DSO_LDOPTS += $(MOZ_GTK2_LIBS)
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME,shell32 ole32 uuid version)
|
||||
ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC))
|
||||
|
|
Загрузка…
Ссылка в новой задаче