Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 363594 Details for
Bug 485984
mail-client/thunderbird-24.0-r1 does not use libnotify
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Revert removal of native notifications
revert-removal-of-native-notifications.patch (text/plain), 9.26 KB, created by
Brad Laue
on 2013-11-19 21:11:29 UTC
(
hide
)
Description:
Revert removal of native notifications
Filename:
MIME Type:
Creator:
Brad Laue
Created:
2013-11-19 21:11:29 UTC
Size:
9.26 KB
patch
obsolete
># HG changeset patch ># Parent 36da3cb921935478b6a37936b18b5c85a33d5617 ># User Chris Coulson <chris.coulson@canonical.com> > >diff --git a/mozilla/toolkit/system/gnome/moz.build b/mozilla/toolkit/system/gnome/moz.build >--- a/mozilla/toolkit/system/gnome/moz.build >+++ b/mozilla/toolkit/system/gnome/moz.build >@@ -3,16 +3,18 @@ > # This Source Code Form is subject to the terms of the Mozilla Public > # License, v. 2.0. If a copy of the MPL was not distributed with this > # file, You can obtain one at http://mozilla.org/MPL/2.0/. > > MODULE = 'mozgnome' > > CPP_SOURCES += [ > 'nsGnomeModule.cpp', >+ 'nsSystemAlertsService.cpp', >+ 'nsAlertsIconListener.cpp' > ] > > if CONFIG['MOZ_ENABLE_GCONF']: > CPP_SOURCES += [ > 'nsGConfService.cpp', > ] > > if CONFIG['MOZ_ENABLE_GNOMEVFS']: >diff --git a/mozilla/toolkit/system/gnome/nsAlertsIconListener.h b/mozilla/toolkit/system/gnome/nsAlertsIconListener.h >new file mode 100644 >--- /dev/null >+++ b/mozilla/toolkit/system/gnome/nsAlertsIconListener.h >@@ -0,0 +1,88 @@ >+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ >+/* This Source Code Form is subject to the terms of the Mozilla Public >+ * License, v. 2.0. If a copy of the MPL was not distributed with this >+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ >+ >+#ifndef nsAlertsIconListener_h__ >+#define nsAlertsIconListener_h__ >+ >+#include "nsCOMPtr.h" >+#include "imgINotificationObserver.h" >+#include "nsStringAPI.h" >+#include "nsIObserver.h" >+#include "nsWeakReference.h" >+ >+#include <gdk-pixbuf/gdk-pixbuf.h> >+ >+class imgIRequest; >+ >+struct NotifyNotification; >+ >+class nsAlertsIconListener : public imgINotificationObserver, >+ public nsIObserver, >+ public nsSupportsWeakReference >+{ >+public: >+ NS_DECL_ISUPPORTS >+ NS_DECL_IMGINOTIFICATIONOBSERVER >+ NS_DECL_NSIOBSERVER >+ >+ nsAlertsIconListener(); >+ virtual ~nsAlertsIconListener(); >+ >+ nsresult InitAlertAsync(const nsAString & aImageUrl, >+ const nsAString & aAlertTitle, >+ const nsAString & aAlertText, >+ bool aAlertTextClickable, >+ const nsAString & aAlertCookie, >+ nsIObserver * aAlertListener); >+ >+ void SendCallback(); >+ void SendClosed(); >+ >+protected: >+ nsresult OnStopRequest(imgIRequest* aRequest); >+ nsresult OnStopFrame(imgIRequest* aRequest); >+ >+ /** >+ * The only difference between libnotify.so.4 and libnotify.so.1 for these symbols >+ * is that notify_notification_new takes three arguments in libnotify.so.4 and >+ * four in libnotify.so.1. >+ * Passing the fourth argument as NULL is binary compatible. >+ */ >+ typedef void (*NotifyActionCallback)(NotifyNotification*, char*, gpointer); >+ typedef bool (*notify_is_initted_t)(void); >+ typedef bool (*notify_init_t)(const char*); >+ typedef GList* (*notify_get_server_caps_t)(void); >+ typedef NotifyNotification* (*notify_notification_new_t)(const char*, const char*, const char*, const char*); >+ typedef bool (*notify_notification_show_t)(void*, char*); >+ typedef void (*notify_notification_set_icon_from_pixbuf_t)(void*, GdkPixbuf*); >+ typedef void (*notify_notification_add_action_t)(void*, const char*, const char*, NotifyActionCallback, gpointer, GFreeFunc); >+ >+ nsCOMPtr<imgIRequest> mIconRequest; >+ nsCString mAlertTitle; >+ nsCString mAlertText; >+ >+ nsCOMPtr<nsIObserver> mAlertListener; >+ nsString mAlertCookie; >+ >+ bool mLoadedFrame; >+ bool mAlertHasAction; >+ >+ static void* libNotifyHandle; >+ static bool libNotifyNotAvail; >+ static notify_is_initted_t notify_is_initted; >+ static notify_init_t notify_init; >+ static notify_get_server_caps_t notify_get_server_caps; >+ static notify_notification_new_t notify_notification_new; >+ static notify_notification_show_t notify_notification_show; >+ static notify_notification_set_icon_from_pixbuf_t notify_notification_set_icon_from_pixbuf; >+ static notify_notification_add_action_t notify_notification_add_action; >+ NotifyNotification* mNotification; >+ gulong mClosureHandler; >+ >+ nsresult StartRequest(const nsAString & aImageUrl); >+ nsresult ShowAlert(GdkPixbuf* aPixbuf); >+}; >+ >+#endif >diff --git a/mozilla/toolkit/system/gnome/nsGnomeModule.cpp b/mozilla/toolkit/system/gnome/nsGnomeModule.cpp >--- a/mozilla/toolkit/system/gnome/nsGnomeModule.cpp >+++ b/mozilla/toolkit/system/gnome/nsGnomeModule.cpp >@@ -17,53 +17,59 @@ NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGC > NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGnomeVFSService, Init) > #endif > #ifdef MOZ_ENABLE_GIO > #include "nsGIOService.h" > #include "nsGSettingsService.h" > NS_GENERIC_FACTORY_CONSTRUCTOR(nsGIOService) > NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGSettingsService, Init) > #endif >+#include "nsSystemAlertsService.h" >+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsSystemAlertsService, Init) > > #ifdef MOZ_ENABLE_GCONF > NS_DEFINE_NAMED_CID(NS_GCONFSERVICE_CID); > #endif > #ifdef MOZ_ENABLE_GNOMEVFS > NS_DEFINE_NAMED_CID(NS_GNOMEVFSSERVICE_CID); > #endif > #ifdef MOZ_ENABLE_GIO > NS_DEFINE_NAMED_CID(NS_GIOSERVICE_CID); > NS_DEFINE_NAMED_CID(NS_GSETTINGSSERVICE_CID); > #endif >+NS_DEFINE_NAMED_CID(NS_SYSTEMALERTSSERVICE_CID); >+ > > static const mozilla::Module::CIDEntry kGnomeCIDs[] = { > #ifdef MOZ_ENABLE_GCONF > { &kNS_GCONFSERVICE_CID, false, NULL, nsGConfServiceConstructor }, > #endif > #ifdef MOZ_ENABLE_GNOMEVFS > { &kNS_GNOMEVFSSERVICE_CID, false, NULL, nsGnomeVFSServiceConstructor }, > #endif > #ifdef MOZ_ENABLE_GIO > { &kNS_GIOSERVICE_CID, false, NULL, nsGIOServiceConstructor }, > { &kNS_GSETTINGSSERVICE_CID, false, NULL, nsGSettingsServiceConstructor }, > #endif >+ { &kNS_SYSTEMALERTSSERVICE_CID, false, NULL, nsSystemAlertsServiceConstructor }, > { NULL } > }; > > static const mozilla::Module::ContractIDEntry kGnomeContracts[] = { > #ifdef MOZ_ENABLE_GCONF > { NS_GCONFSERVICE_CONTRACTID, &kNS_GCONFSERVICE_CID }, > #endif > #ifdef MOZ_ENABLE_GNOMEVFS > { NS_GNOMEVFSSERVICE_CONTRACTID, &kNS_GNOMEVFSSERVICE_CID }, > #endif > #ifdef MOZ_ENABLE_GIO > { NS_GIOSERVICE_CONTRACTID, &kNS_GIOSERVICE_CID }, > { NS_GSETTINGSSERVICE_CONTRACTID, &kNS_GSETTINGSSERVICE_CID }, > #endif >+ { NS_SYSTEMALERTSERVICE_CONTRACTID, &kNS_SYSTEMALERTSSERVICE_CID }, > { NULL } > }; > > static nsresult > InitGType () > { > g_type_init(); > return NS_OK; >diff --git a/mozilla/toolkit/system/gnome/nsSystemAlertsService.cpp b/mozilla/toolkit/system/gnome/nsSystemAlertsService.cpp >new file mode 100644 >--- /dev/null >+++ b/mozilla/toolkit/system/gnome/nsSystemAlertsService.cpp >@@ -0,0 +1,54 @@ >+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode:nil; c-basic-offset: 2 -*- */ >+/* This Source Code Form is subject to the terms of the Mozilla Public >+ * License, v. 2.0. If a copy of the MPL was not distributed with this >+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ >+ >+#include "nsSystemAlertsService.h" >+#include "nsAlertsIconListener.h" >+#include "nsAutoPtr.h" >+ >+NS_IMPL_THREADSAFE_ADDREF(nsSystemAlertsService) >+NS_IMPL_THREADSAFE_RELEASE(nsSystemAlertsService) >+ >+NS_INTERFACE_MAP_BEGIN(nsSystemAlertsService) >+ NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIAlertsService) >+ NS_INTERFACE_MAP_ENTRY(nsIAlertsService) >+NS_INTERFACE_MAP_END_THREADSAFE >+ >+nsSystemAlertsService::nsSystemAlertsService() >+{} >+ >+nsSystemAlertsService::~nsSystemAlertsService() >+{} >+ >+nsresult >+nsSystemAlertsService::Init() >+{ >+ return NS_OK; >+} >+ >+NS_IMETHODIMP >+nsSystemAlertsService::ShowAlertNotification(const nsAString & aImageUrl, >+ const nsAString & aAlertTitle, >+ const nsAString & aAlertText, >+ bool aAlertTextClickable, >+ const nsAString & aAlertCookie, >+ nsIObserver * aAlertListener, >+ const nsAString & aAlertName, >+ const nsAString & aBidi, >+ const nsAString & aLang) >+{ >+ nsRefPtr<nsAlertsIconListener> alertListener = new nsAlertsIconListener(); >+ if (!alertListener) >+ return NS_ERROR_OUT_OF_MEMORY; >+ >+ return alertListener->InitAlertAsync(aImageUrl, aAlertTitle, aAlertText, aAlertTextClickable, >+ aAlertCookie, aAlertListener); >+} >+ >+NS_IMETHODIMP >+nsSystemAlertsService::CloseAlert(const nsAString & aAlertName) >+{ >+ return NS_ERROR_NOT_IMPLEMENTED; >+} >+ >diff --git a/mozilla/toolkit/system/gnome/nsSystemAlertsService.h b/mozilla/toolkit/system/gnome/nsSystemAlertsService.h >new file mode 100644 >--- /dev/null >+++ b/mozilla/toolkit/system/gnome/nsSystemAlertsService.h >@@ -0,0 +1,27 @@ >+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ >+/* This Source Code Form is subject to the terms of the Mozilla Public >+ * License, v. 2.0. If a copy of the MPL was not distributed with this >+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ >+ >+#ifndef nsSystemAlertsService_h__ >+#define nsSystemAlertsService_h__ >+ >+#include "nsIAlertsService.h" >+#include "nsCOMPtr.h" >+ >+class nsSystemAlertsService : public nsIAlertsService >+{ >+public: >+ NS_DECL_NSIALERTSSERVICE >+ NS_DECL_ISUPPORTS >+ >+ nsSystemAlertsService(); >+ virtual ~nsSystemAlertsService(); >+ >+ nsresult Init(); >+ >+protected: >+ >+}; >+ >+#endif /* nsSystemAlertsService_h__ */
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 485984
: 363594