diff -r 3fabd9f66322 -r 8891dd9439a1 mozilla-kde.patch --- a/mozilla-kde.patch Sun Dec 25 10:36:35 2011 +0100 +++ b/mozilla-kde.patch Mon Dec 26 09:20:25 2011 +0100 @@ -3595,15 +3595,15 @@ NS_NAMED_LITERAL_STRING(kOsVersion, "osversion"); NS_NAMED_LITERAL_STRING(kABI, "abi"); + NS_NAMED_LITERAL_STRING(kDesktop, "desktop"); + #if defined(ANDROID) + NS_NAMED_LITERAL_STRING(kTablet, "tablet"); + #endif // Obsolete NS_NAMED_LITERAL_STRING(kXPCNativeWrappers, "xpcnativewrappers"); nsAutoString appID; - nsAutoString appVersion; - nsAutoString geckoVersion; - nsAutoString osTarget; -@@ -478,39 +480,44 @@ ParseManifestCommon(NSLocationType aType +@@ -481,41 +483,46 @@ ParseManifestCommon(NSLocationType aType CopyUTF8toUTF16(s, abi); abi.Insert(PRUnichar('_'), 0); abi.Insert(osTarget, 0); @@ -3636,8 +3636,10 @@ gtk_minor_version); + desktop = nsKDEUtils::kdeSession() ? NS_LITERAL_STRING("kde") : NS_LITERAL_STRING("gnome"); #elif defined(ANDROID) + bool isTablet = false; if (mozilla::AndroidBridge::Bridge()) { mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build$VERSION", "RELEASE", osVersion); + isTablet = mozilla::AndroidBridge::Bridge()->IsTablet(); } + desktop = NS_LITERAL_STRING("android"); #endif @@ -3648,13 +3650,13 @@ char *token; char *newline = buf; -@@ -589,24 +596,26 @@ ParseManifestCommon(NSLocationType aType - TriState stAppVersion = eUnspecified; - TriState stGeckoVersion = eUnspecified; - TriState stApp = eUnspecified; +@@ -597,24 +604,26 @@ ParseManifestCommon(NSLocationType aType TriState stOsVersion = eUnspecified; TriState stOs = eUnspecified; TriState stABI = eUnspecified; + #if defined(ANDROID) + TriState stTablet = eUnspecified; + #endif bool platform = false; bool contentAccessible = false; + TriState stDesktop = eUnspecified; @@ -3672,10 +3674,10 @@ CheckVersionFlag(kGeckoVersion, wtoken, geckoVersion, stGeckoVersion)) continue; - if (directive->contentflags && - (CheckFlag(kPlatform, wtoken, platform) || - CheckFlag(kContentAccessible, wtoken, contentAccessible))) -@@ -627,16 +636,17 @@ ParseManifestCommon(NSLocationType aType + #if defined(ANDROID) + bool tablet = false; + if (CheckFlag(kTablet, wtoken, tablet)) { +@@ -643,16 +652,17 @@ ParseManifestCommon(NSLocationType aType } if (!ok || @@ -3685,14 +3687,14 @@ stOs == eBad || stOsVersion == eBad || + stDesktop == eBad || + #ifdef ANDROID + stTablet == eBad || + #endif stABI == eBad) continue; if (directive->regfunc) { if (GeckoProcessType_Default != XRE_GetProcessType()) - continue; - - if (!nsChromeRegistry::gChromeRegistry) { diff --git a/xpcom/io/Makefile.in b/xpcom/io/Makefile.in --- a/xpcom/io/Makefile.in +++ b/xpcom/io/Makefile.in