Hello community,
here is the log from the commit of package mozilla-xulrunner20 for openSUSE:Factory
checked in at Fri Jan 14 01:51:21 CET 2011.
--------
--- mozilla-xulrunner20/mozilla-xulrunner20.changes 2010-12-15 09:33:54.000000000 +0100
+++ mozilla-xulrunner20/mozilla-xulrunner20.changes 2011-01-12 22:47:56.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Jan 11 06:11:33 UTC 2011 - wr@rosenauer.org
+
+- update to 2.0b9
+- fixed GIO support (bmo#611953) (mozilla-gio.patch)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
l10n-2.0b.tar.bz2
mozilla-firefox-sync.patch
xulrunner-source-2.0b.tar.bz2
New:
----
l10n-2.0b9.tar.bz2
mozilla-gio.patch
xulrunner-source-2.0b9.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mozilla-xulrunner20.spec ++++++
--- /var/tmp/diff_new_pack.hTomsn/_old 2011-01-14 01:45:48.000000000 +0100
+++ /var/tmp/diff_new_pack.hTomsn/_new 2011-01-14 01:45:48.000000000 +0100
@@ -1,8 +1,8 @@
#
-# spec file for package mozilla-xulrunner20 (Version 2.0b)
+# spec file for package mozilla-xulrunner20 (Version 2.0b9)
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# 2006-2010 Wolfgang Rosenauer
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# 2006-2011 Wolfgang Rosenauer
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -30,10 +30,10 @@
BuildRequires: wireless-tools
%endif
License: GPLv2+ ; LGPLv2.1+ ; MPLv1.1+
-Version: 2.0b
-Release: 4
-%define releasedate 2010121400
-%define version_internal 2.0b8
+Version: 2.0b9
+Release: 1
+%define releasedate 2011011000
+%define version_internal 2.0b9
%define apiversion 2.0
%define uaweight 199900
Summary: Mozilla Runtime Environment 2.0
@@ -71,7 +71,7 @@
# ---
Patch11: mozilla-cpuid.patch
Patch12: mozilla-language.patch
-Patch13: mozilla-firefox-sync.patch
+Patch13: mozilla-gio.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: mozilla-js20 = %{version}
Requires(post): update-alternatives coreutils
++++++ compare-locales.tar.bz2 ++++++
++++++ create-tar.sh ++++++
--- /var/tmp/diff_new_pack.hTomsn/_old 2011-01-14 01:45:48.000000000 +0100
+++ /var/tmp/diff_new_pack.hTomsn/_new 2011-01-14 01:45:48.000000000 +0100
@@ -1,8 +1,8 @@
#!/bin/bash
BRANCH="mozilla-central"
-RELEASE_TAG="FIREFOX_4_0b8_RELEASE"
-VERSION="2.0b"
+RELEASE_TAG="FIREFOX_4_0b9_RELEASE"
+VERSION="2.0b9"
# mozilla
hg clone http://hg.mozilla.org/$BRANCH mozilla
++++++ l10n-2.0b.tar.bz2 -> l10n-2.0b9.tar.bz2 ++++++
mozilla-xulrunner20/l10n-2.0b.tar.bz2 mozilla-xulrunner20/l10n-2.0b9.tar.bz2 differ: char 11, line 1
++++++ mozilla-gio.patch ++++++
# HG changeset patch
# User Chris Coulson
# Parent 0ebe30f9eacfe67fa0b699457e524d5a9c96359e
Bug 611953 - GNOME 3.0 readiness (patch 2 + 3)
diff --git a/toolkit/system/gnome/nsGIOService.cpp b/toolkit/system/gnome/nsGIOService.cpp
--- a/toolkit/system/gnome/nsGIOService.cpp
+++ b/toolkit/system/gnome/nsGIOService.cpp
@@ -101,25 +101,25 @@ nsGIOMimeApp::GetName(nsACString& aName)
return NS_OK;
}
NS_IMETHODIMP
nsGIOMimeApp::GetCommand(nsACString& aCommand)
{
get_commandline_t g_app_info_get_commandline_ptr;
- void *libHandle = dlopen("libgio-2.0.so", RTLD_LAZY);
+ void *libHandle = dlopen("libgio-2.0.so.0", RTLD_LAZY);
if (!libHandle) {
return NS_ERROR_FAILURE;
}
dlerror(); /* clear any existing error */
g_app_info_get_commandline_ptr =
(get_commandline_t) dlsym(libHandle, "g_app_info_get_commandline");
- if (dlerror() != NULL) {
- const char cmd = *g_app_info_get_commandline_ptr(mApp);
+ if (dlerror() == NULL) {
+ const char *cmd = g_app_info_get_commandline_ptr(mApp);
if (!cmd) {
dlclose(libHandle);
return NS_ERROR_FAILURE;
}
aCommand.Assign(cmd);
}
dlclose(libHandle);
return NS_OK;
@@ -277,16 +277,43 @@ nsGIOMimeApp::SetAsDefaultForFileExtensi
} else {
*ext_pos = '\0';
}
}
g_free(extensions);
return NS_OK;
}
+/**
+ * Set default application for URI's of a particular scheme
+ * @param aURIScheme string containing the URI scheme
+ * @return NS_OK when application was set as default for URI scheme,
+ * NS_ERROR_FAILURE otherwise
+ */
+NS_IMETHODIMP
+nsGIOMimeApp::SetAsDefaultForURIScheme(nsACString const& aURIScheme)
+{
+ GError *error = NULL;
+ nsCAutoString contentType("x-scheme-handler/");
+ contentType.Append(aURIScheme);
+
+ g_app_info_set_as_default_for_type(mApp,
+ contentType.get(),
+ &error);
+ if (error) {
+ g_warning("Cannot set application as default for URI scheme (%s): %s",
+ PromiseFlatCString(aURIScheme).get(),
+ error->message);
+ g_error_free(error);
+ return NS_ERROR_FAILURE;
+ }
+
+ return NS_OK;
+}
+
nsresult
nsGIOService::Init()
{
// do nothing, gvfs/gio does not init.
return NS_OK;
}
NS_IMPL_ISUPPORTS1(nsGIOService, nsIGIOService)
@@ -317,29 +344,45 @@ nsGIOService::GetMimeTypeFromExtension(c
g_free(mime_type);
g_free(content_type);
return NS_OK;
}
// used in nsGNOMERegistry
// -----------------------------------------------------------------------------
NS_IMETHODIMP
+nsGIOService::GetAppForURIScheme(const nsACString& aURIScheme,
+ nsIGIOMimeApp** aApp)
+{
+ *aApp = nsnull;
+
+ GAppInfo *app_info = g_app_info_get_default_for_uri_scheme(
+ PromiseFlatCString(aURIScheme).get());
+ if (app_info) {
+ nsGIOMimeApp *mozApp = new nsGIOMimeApp(app_info);
+ NS_ADDREF(*aApp = mozApp);
+ } else {
+ return NS_ERROR_FAILURE;
+ }
+ return NS_OK;
+}
+
+NS_IMETHODIMP
nsGIOService::GetAppForMimeType(const nsACString& aMimeType,
nsIGIOMimeApp** aApp)
{
*aApp = nsnull;
char *content_type =
get_content_type_from_mime_type(PromiseFlatCString(aMimeType).get());
if (!content_type)
return NS_ERROR_FAILURE;
GAppInfo *app_info = g_app_info_get_default_for_type(content_type, false);
if (app_info) {
nsGIOMimeApp *mozApp = new nsGIOMimeApp(app_info);
- NS_ENSURE_TRUE(mozApp, NS_ERROR_OUT_OF_MEMORY);
NS_ADDREF(*aApp = mozApp);
} else {
g_free(content_type);
return NS_ERROR_FAILURE;
}
g_free(content_type);
return NS_OK;
}
@@ -414,75 +457,46 @@ nsGIOService::CreateAppFromCommand(nsACS
nsIGIOMimeApp** appInfo)
{
GError *error = NULL;
*appInfo = nsnull;
GAppInfo *app_info = NULL, *app_info_from_list = NULL;
GList *apps = g_app_info_get_all();
GList *apps_p = apps;
- get_commandline_t g_app_info_get_commandline_ptr;
-
- void *libHandle = dlopen("libgio-2.0.so", RTLD_LAZY);
- if (!libHandle) {
- return NS_ERROR_FAILURE;
- }
- dlerror(); /* clear any existing error */
- g_app_info_get_commandline_ptr =
- (get_commandline_t) dlsym(libHandle, "g_app_info_get_commandline");
- if (dlerror() != NULL) {
- g_app_info_get_commandline_ptr = NULL;
- }
// Try to find relevant and existing GAppInfo in all installed application
+ // We do this by comparing each GAppInfo's executable with out own
while (apps_p) {
app_info_from_list = (GAppInfo*) apps_p->data;
- /* This is a silly test. It just compares app names but not
- * commands. This is due to old version of Glib/Gio. The required
- * function which allows to do a regular check of existence of desktop file
- * is possible by using function g_app_info_get_commandline. This function
- * has been introduced in Glib 2.20. */
- if (app_info_from_list && strcmp(g_app_info_get_name(app_info_from_list),
- PromiseFlatCString(appName).get()) == 0 )
- {
- if (g_app_info_get_commandline_ptr)
- {
- /* Following test is only possible with Glib >= 2.20.
- * Compare path only by using strncmp */
- if (strncmp(g_app_info_get_commandline_ptr(app_info_from_list),
- PromiseFlatCString(cmd).get(),
- strlen(PromiseFlatCString(cmd).get())) == 0)
- {
- app_info = app_info_from_list;
- break;
- } else {
- g_object_unref(app_info_from_list);
- }
- } else {
+ if (!app_info) {
+ // If the executable is not absolute, get it's full path
+ char *executable = g_find_program_in_path(g_app_info_get_executable(app_info_from_list));
+
+ if (executable && strcmp(executable, PromiseFlatCString(cmd).get()) == 0) {
+ g_object_ref (app_info_from_list);
app_info = app_info_from_list;
- break;
}
- } else {
- g_object_unref(app_info_from_list);
+ g_free(executable);
}
+
+ g_object_unref(app_info_from_list);
apps_p = apps_p->next;
}
g_list_free(apps);
if (!app_info) {
app_info = g_app_info_create_from_commandline(PromiseFlatCString(cmd).get(),
PromiseFlatCString(appName).get(),
G_APP_INFO_CREATE_SUPPORTS_URIS,
&error);
}
if (!app_info) {
g_warning("Cannot create application info from command: %s", error->message);
g_error_free(error);
- dlclose(libHandle);
return NS_ERROR_FAILURE;
}
nsGIOMimeApp *mozApp = new nsGIOMimeApp(app_info);
NS_ENSURE_TRUE(mozApp, NS_ERROR_OUT_OF_MEMORY);
NS_ADDREF(*appInfo = mozApp);
- dlclose(libHandle);
return NS_OK;
}
diff --git a/xpcom/system/nsIGIOService.idl b/xpcom/system/nsIGIOService.idl
--- a/xpcom/system/nsIGIOService.idl
+++ b/xpcom/system/nsIGIOService.idl
@@ -39,17 +39,17 @@
#include "nsISupports.idl"
interface nsIUTF8StringEnumerator;
interface nsIURI;
/* nsIGIOMimeApp holds information about an application that is looked up
with nsIGIOService::GetAppForMimeType. */
-// 66009894-9877-405b-9321-bf30420e34e6 prev uuid
+// e77021b4-4012-407d-b686-7a1f18050109 prev uuid
[scriptable, uuid(e77021b4-4012-407d-b686-7a1f18050109)]
interface nsIGIOMimeApp : nsISupports
{
const long EXPECTS_URIS = 0;
const long EXPECTS_PATHS = 1;
const long EXPECTS_URIS_FOR_NON_FILES = 2;
@@ -57,41 +57,45 @@ interface nsIGIOMimeApp : nsISupports
readonly attribute AUTF8String name;
readonly attribute AUTF8String command;
readonly attribute long expectsURIs; // see constants above
readonly attribute nsIUTF8StringEnumerator supportedURISchemes;
void launch(in AUTF8String uri);
void setAsDefaultForMimeType(in AUTF8String mimeType);
void setAsDefaultForFileExtensions(in AUTF8String extensions);
+ void setAsDefaultForURIScheme(in AUTF8String uriScheme);
};
/*
* The VFS service makes use of two distinct registries.
*
* The application registry holds information about applications (uniquely
* identified by id), such as which MIME types and URI schemes they are
* capable of handling, whether they run in a terminal, etc.
*
* The MIME registry holds information about MIME types, such as which
* extensions map to a given MIME type. The MIME registry also stores the
* id of the application selected to handle each MIME type.
*/
-// prev id dea20bf0-4e4d-48c5-b932-dc3e116dc64b
-[scriptable, uuid(47e372c2-78bb-4899-8114-56aa7d9cdac5)]
+// prev id 47e372c2-78bb-4899-8114-56aa7d9cdac5
+[scriptable, uuid(74ca8791-330d-4786-9569-2a2a19f0b486)]
interface nsIGIOService : nsISupports
{
/*** MIME registry methods ***/
/* Obtain the MIME type registered for an extension. The extension
should not include a leading dot. */
AUTF8String getMimeTypeFromExtension(in AUTF8String extension);
+ /* Obtain the preferred application for opening a given URI scheme */
+ nsIGIOMimeApp getAppForURIScheme(in AUTF8String aURIScheme);
+
/* Obtain the preferred application for opening a given MIME type */
nsIGIOMimeApp getAppForMimeType(in AUTF8String mimeType);
/* Obtain the preferred application for opening a given MIME type */
nsIGIOMimeApp createAppFromCommand(in AUTF8String cmd,
in AUTF8String appName);
/* Obtain a description for the given MIME type */
++++++ mozilla-kde.patch ++++++
--- /var/tmp/diff_new_pack.hTomsn/_old 2011-01-14 01:45:48.000000000 +0100
+++ /var/tmp/diff_new_pack.hTomsn/_new 2011-01-14 01:45:48.000000000 +0100
@@ -39,7 +39,7 @@
#include "prefapi.h"
#include "prefread.h"
#include "prefapi_private_data.h"
-@@ -760,30 +761,48 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
+@@ -772,30 +773,48 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
}
static nsresult pref_LoadPrefsInDirList(const char *listId)
@@ -89,7 +89,7 @@
}
//----------------------------------------------------------------------------------------
-@@ -814,28 +833,40 @@ static nsresult pref_InitDefaults()
+@@ -826,28 +845,40 @@ static nsresult pref_InitDefaults()
/* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
static const char* specialFiles[] = {
#if defined(XP_MAC) || defined(XP_MACOSX)
@@ -167,7 +167,7 @@
#define DOWNLOAD_MANAGER_ALERT_ICON "chrome://mozapps/skin/downloads/downloadIcon.png"
#define PREF_BDM_SHOWALERTONCOMPLETE "browser.download.manager.showAlertOnComplete"
#define PREF_BDM_SHOWALERTINTERVAL "browser.download.manager.showAlertInterval"
-@@ -2192,16 +2196,25 @@ nsDownload::SetState(DownloadState aStat
+@@ -2199,16 +2203,25 @@ nsDownload::SetState(DownloadState aStat
nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
// Master pref to control this function.
@@ -193,7 +193,7 @@
PRInt64 goat = PR_Now() - mStartTime;
showTaskbarAlert = goat > alertIntervalUSec;
-@@ -2227,16 +2240,17 @@ nsDownload::SetState(DownloadState aStat
+@@ -2234,16 +2247,17 @@ nsDownload::SetState(DownloadState aStat
// because if it is, they'll click open the download manager and
// the items they downloaded will have been removed.
alerts->ShowAlertNotification(
@@ -2602,7 +2602,7 @@
OSHELPER += nsAndroidHandlerApp.cpp
OSHELPER += nsExternalSharingAppService.cpp
EXPORTS += nsExternalSharingAppService.h
- endif
+ OSHELPER += nsExternalURLHandlerService.cpp
diff --git a/uriloader/exthandler/unix/nsCommonRegistry.cpp b/uriloader/exthandler/unix/nsCommonRegistry.cpp
new file mode 100644
--- /dev/null
@@ -3201,14 +3201,14 @@
#include "nsAccessibilityHelper.h"
+#include "nsKDEUtils.h"
- #ifdef MOZ_PLATFORM_MAEMO
+ #if (MOZ_PLATFORM_MAEMO == 5)
#include