From 90cf500b2ff19af27e5352d4f8b2d5f5a2003811 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Dec 01 2014 11:04:12 +0000 Subject: Fixed libnotify patch --- diff --git a/firefox.spec b/firefox.spec index e7bf872..5ecc152 100644 --- a/firefox.spec +++ b/firefox.spec @@ -148,8 +148,6 @@ Patch217: firefox-baseline-disable.patch # Upstream patches Patch300: mozilla-858919.patch -Patch301: mozilla-858919-2.patch -Patch302: mozilla-858919-3.patch # Gtk3 upstream patches Patch402: mozilla-gtk3-tab-size.patch @@ -297,8 +295,6 @@ cd %{tarballdir} # Upstream patches %patch300 -p1 -b .858919 -%patch301 -p1 -b .858919 -%patch302 -p1 -b .858919 %if %{toolkit_gtk3} %patch402 -p1 -b .gtk3-tab-size diff --git a/mozilla-858919-2.patch b/mozilla-858919-2.patch deleted file mode 100644 index ece5906..0000000 --- a/mozilla-858919-2.patch +++ /dev/null @@ -1,28 +0,0 @@ -# HG changeset patch -# Parent 9d66436af432f057f65d16ab9f5871baca4ada78 -# User Martin Stransky -Bug 858919 - Send "alertshow" event for Web Notifications by libnotify, r=?karlt - -diff --git a/toolkit/system/gnome/nsAlertsIconListener.cpp b/toolkit/system/gnome/nsAlertsIconListener.cpp ---- a/toolkit/system/gnome/nsAlertsIconListener.cpp -+++ b/toolkit/system/gnome/nsAlertsIconListener.cpp -@@ -175,16 +175,19 @@ nsAlertsIconListener::ShowAlert(GdkPixbu - // different signature, so a marshaller is used instead of a C callback to - // get the user_data (this) in a parseable format. |closure| is created - // with a floating reference, which gets sunk by g_signal_connect_closure(). - GClosure* closure = g_closure_new_simple(sizeof(GClosure), this); - g_closure_set_marshal(closure, notify_closed_marshal); - mClosureHandler = g_signal_connect_closure(mNotification, "closed", closure, FALSE); - gboolean result = notify_notification_show(mNotification, nullptr); - -+ if (result && mAlertListener) -+ mAlertListener->Observe(nullptr, "alertshow", mAlertCookie.get()); -+ - return result ? NS_OK : NS_ERROR_FAILURE; - } - - nsresult - nsAlertsIconListener::StartRequest(const nsAString & aImageUrl) - { - if (mIconRequest) { - // Another icon request is already in flight. Kill it. diff --git a/mozilla-858919-3.patch b/mozilla-858919-3.patch deleted file mode 100644 index 7d04cd9..0000000 --- a/mozilla-858919-3.patch +++ /dev/null @@ -1,144 +0,0 @@ -# HG changeset patch -# Parent 531e0bc755b2335dec5aae2a10f4ba454307981d -# User Martin Stransky -Bug 858919 - Fixes image loading for libnotify notifications. r=?karlt - -diff --git a/toolkit/system/gnome/nsAlertsIconListener.cpp b/toolkit/system/gnome/nsAlertsIconListener.cpp ---- a/toolkit/system/gnome/nsAlertsIconListener.cpp -+++ b/toolkit/system/gnome/nsAlertsIconListener.cpp -@@ -46,16 +46,31 @@ static void notify_closed_marshal(GClosu - NS_ABORT_IF_FALSE(n_param_values >= 1, "No object in params"); - - nsAlertsIconListener* alert = - static_cast(closure->data); - alert->SendClosed(); - NS_RELEASE(alert); - } - -+static GdkPixbuf* -+GetPixbufFromImgRequest(imgIRequest* aRequest) -+{ -+ nsCOMPtr image; -+ nsresult rv = aRequest->GetImage(getter_AddRefs(image)); -+ if (NS_FAILED(rv)) { -+ return nullptr; -+ } -+ -+ nsCOMPtr imgToPixbuf = -+ do_GetService("@mozilla.org/widget/image-to-gdk-pixbuf;1"); -+ -+ return imgToPixbuf->ConvertImageToPixbuf(image); -+} -+ - NS_IMPL_ISUPPORTS(nsAlertsIconListener, imgINotificationObserver, - nsIObserver, nsISupportsWeakReference) - - nsAlertsIconListener::nsAlertsIconListener() - : mLoadedFrame(false), - mNotification(nullptr) - { - if (!libNotifyHandle && !libNotifyNotAvail) { -@@ -101,57 +116,55 @@ nsAlertsIconListener::Notify(imgIRequest - } - - return NS_OK; - } - - nsresult - nsAlertsIconListener::OnStopRequest(imgIRequest* aRequest) - { -+ NS_ASSERTION(mIconRequest == aRequest, "aRequest does not match!"); -+ - uint32_t imgStatus = imgIRequest::STATUS_ERROR; - nsresult rv = aRequest->GetImageStatus(&imgStatus); - NS_ENSURE_SUCCESS(rv, rv); - if (imgStatus == imgIRequest::STATUS_ERROR && !mLoadedFrame) { - // We have an error getting the image. Display the notification with no icon. - ShowAlert(nullptr); -- } - -- if (mIconRequest) { -+ // Cancel any pending request - mIconRequest->Cancel(NS_BINDING_ABORTED); - mIconRequest = nullptr; - } -+ - return NS_OK; - } - - nsresult - nsAlertsIconListener::OnStopFrame(imgIRequest* aRequest) - { -- if (aRequest != mIconRequest) -- return NS_ERROR_FAILURE; -+ NS_ASSERTION(mIconRequest == aRequest, "aRequest does not match!"); - - if (mLoadedFrame) - return NS_OK; // only use one frame - -- nsCOMPtr image; -- nsresult rv = aRequest->GetImage(getter_AddRefs(image)); -- if (NS_FAILED(rv)) -- return rv; -- -- nsCOMPtr imgToPixbuf = -- do_GetService("@mozilla.org/widget/image-to-gdk-pixbuf;1"); -- -- GdkPixbuf* imagePixbuf = imgToPixbuf->ConvertImageToPixbuf(image); -- if (!imagePixbuf) -- return NS_ERROR_FAILURE; -- -- ShowAlert(imagePixbuf); -- -- g_object_unref(imagePixbuf); -+ GdkPixbuf* imagePixbuf = GetPixbufFromImgRequest(aRequest); -+ if (!imagePixbuf) { -+ ShowAlert(nullptr); -+ } else { -+ ShowAlert(imagePixbuf); -+ g_object_unref(imagePixbuf); -+ } - - mLoadedFrame = true; -+ -+ // Cancel any pending request (multipart image loading/decoding for instance) -+ mIconRequest->Cancel(NS_BINDING_ABORTED); -+ mIconRequest = nullptr; -+ - return NS_OK; - } - - nsresult - nsAlertsIconListener::ShowAlert(GdkPixbuf* aPixbuf) - { - mNotification = notify_notification_new(mAlertTitle.get(), mAlertText.get(), - nullptr, nullptr); -@@ -196,19 +209,25 @@ nsAlertsIconListener::StartRequest(const - NS_NewURI(getter_AddRefs(imageUri), aImageUrl); - if (!imageUri) - return ShowAlert(nullptr); - - nsCOMPtr il(do_GetService("@mozilla.org/image/loader;1")); - if (!il) - return ShowAlert(nullptr); - -- return il->LoadImageXPCOM(imageUri, nullptr, nullptr, nullptr, nullptr, -- this, nullptr, nsIRequest::LOAD_NORMAL, nullptr, -- nullptr, getter_AddRefs(mIconRequest)); -+ nsresult rv = il->LoadImageXPCOM(imageUri, nullptr, nullptr, nullptr, nullptr, -+ this, nullptr, nsIRequest::LOAD_NORMAL, nullptr, -+ nullptr, getter_AddRefs(mIconRequest)); -+ if (NS_FAILED(rv)) -+ return rv; -+ -+ mIconRequest->StartDecoding(); -+ -+ return NS_OK; - } - - void - nsAlertsIconListener::SendCallback() - { - if (mAlertListener) - mAlertListener->Observe(nullptr, "alertclickcallback", mAlertCookie.get()); - } diff --git a/mozilla-858919.patch b/mozilla-858919.patch index 6e62b81..b3cb692 100644 --- a/mozilla-858919.patch +++ b/mozilla-858919.patch @@ -1,33 +1,153 @@ -# HG changeset patch -# Parent b17cad2d1e5e6bcb5a10096d51d07ea8a79b6921 -# User Martin Stransky -Bug 858919 - Add support for libnotify calls which was removed for new notification API. r=karlt - -diff --git a/toolkit/system/gnome/moz.build b/toolkit/system/gnome/moz.build ---- a/toolkit/system/gnome/moz.build -+++ b/toolkit/system/gnome/moz.build -@@ -1,15 +1,17 @@ - # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- - # vim: set filetype=python: - # 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 +diff -up mozilla-release/toolkit/components/alerts/nsAlertsService.cpp.858919 mozilla-release/toolkit/components/alerts/nsAlertsService.cpp +--- mozilla-release/toolkit/components/alerts/nsAlertsService.cpp.858919 2014-11-26 03:17:37.000000000 +0100 ++++ mozilla-release/toolkit/components/alerts/nsAlertsService.cpp 2014-12-01 11:58:31.896101722 +0100 +@@ -100,10 +100,12 @@ NS_IMETHODIMP nsAlertsService::ShowAlert + nsCOMPtr sysAlerts(do_GetService(NS_SYSTEMALERTSERVICE_CONTRACTID)); + nsresult rv; + if (sysAlerts) { +- return sysAlerts->ShowAlertNotification(aImageUrl, aAlertTitle, aAlertText, aAlertTextClickable, +- aAlertCookie, aAlertListener, aAlertName, +- aBidi, aLang, aData, +- IPC::Principal(aPrincipal)); ++ rv = sysAlerts->ShowAlertNotification(aImageUrl, aAlertTitle, aAlertText, aAlertTextClickable, ++ aAlertCookie, aAlertListener, aAlertName, ++ aBidi, aLang, aData, ++ IPC::Principal(aPrincipal)); ++ if (NS_SUCCEEDED(rv)) ++ return NS_OK; + } + + if (!ShouldShowAlert()) { +diff -up mozilla-release/toolkit/system/gnome/moz.build.858919 mozilla-release/toolkit/system/gnome/moz.build +--- mozilla-release/toolkit/system/gnome/moz.build.858919 2014-11-26 03:17:39.000000000 +0100 ++++ mozilla-release/toolkit/system/gnome/moz.build 2014-12-01 11:58:31.896101722 +0100 +@@ -5,7 +5,9 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. SOURCES += [ + 'nsAlertsIconListener.cpp', -+ 'nsAlertsService.cpp', 'nsGnomeModule.cpp', ++ 'nsSystemAlertsService.cpp', ] if CONFIG['MOZ_ENABLE_GCONF']: - SOURCES += [ - 'nsGConfService.cpp', - ] +diff -up mozilla-release/toolkit/system/gnome/nsAlertsIconListener.cpp.858919 mozilla-release/toolkit/system/gnome/nsAlertsIconListener.cpp +--- mozilla-release/toolkit/system/gnome/nsAlertsIconListener.cpp.858919 2014-11-26 03:17:39.000000000 +0100 ++++ mozilla-release/toolkit/system/gnome/nsAlertsIconListener.cpp 2014-12-01 12:00:39.455960137 +0100 +@@ -51,6 +51,21 @@ static void notify_closed_marshal(GClosu + NS_RELEASE(alert); + } + ++static GdkPixbuf* ++GetPixbufFromImgRequest(imgIRequest* aRequest) ++{ ++ nsCOMPtr image; ++ nsresult rv = aRequest->GetImage(getter_AddRefs(image)); ++ if (NS_FAILED(rv)) { ++ return nullptr; ++ } ++ ++ nsCOMPtr imgToPixbuf = ++ do_GetService("@mozilla.org/widget/image-to-gdk-pixbuf;1"); ++ ++ return imgToPixbuf->ConvertImageToPixbuf(image); ++} ++ + NS_IMPL_ISUPPORTS(nsAlertsIconListener, imgINotificationObserver, + nsIObserver, nsISupportsWeakReference) + +@@ -106,15 +121,15 @@ nsAlertsIconListener::Notify(imgIRequest + nsresult + nsAlertsIconListener::OnStopRequest(imgIRequest* aRequest) + { ++ NS_ASSERTION(mIconRequest == aRequest, "aRequest does not match!"); ++ + uint32_t imgStatus = imgIRequest::STATUS_ERROR; + nsresult rv = aRequest->GetImageStatus(&imgStatus); + NS_ENSURE_SUCCESS(rv, rv); + if (imgStatus == imgIRequest::STATUS_ERROR && !mLoadedFrame) { + // We have an error getting the image. Display the notification with no icon. + ShowAlert(nullptr); +- } + +- if (mIconRequest) { + mIconRequest->Cancel(NS_BINDING_ABORTED); + mIconRequest = nullptr; + } +@@ -124,29 +139,25 @@ nsAlertsIconListener::OnStopRequest(imgI + nsresult + nsAlertsIconListener::OnStopFrame(imgIRequest* aRequest) + { +- if (aRequest != mIconRequest) +- return NS_ERROR_FAILURE; ++ NS_ASSERTION(mIconRequest == aRequest, "aRequest does not match!"); + + if (mLoadedFrame) + return NS_OK; // only use one frame + +- nsCOMPtr image; +- nsresult rv = aRequest->GetImage(getter_AddRefs(image)); +- if (NS_FAILED(rv)) +- return rv; +- +- nsCOMPtr imgToPixbuf = +- do_GetService("@mozilla.org/widget/image-to-gdk-pixbuf;1"); +- +- GdkPixbuf* imagePixbuf = imgToPixbuf->ConvertImageToPixbuf(image); +- if (!imagePixbuf) +- return NS_ERROR_FAILURE; ++ GdkPixbuf* imagePixbuf = GetPixbufFromImgRequest(aRequest); ++ if (!imagePixbuf) { ++ ShowAlert(nullptr); ++ } else { ++ ShowAlert(imagePixbuf); ++ g_object_unref(imagePixbuf); ++ } + +- ShowAlert(imagePixbuf); ++ mLoadedFrame = true; + +- g_object_unref(imagePixbuf); ++ // Cancel any pending request (multipart image loading/decoding for instance) ++ mIconRequest->Cancel(NS_BINDING_ABORTED); ++ mIconRequest = nullptr; + +- mLoadedFrame = true; + return NS_OK; + } + +@@ -180,6 +191,9 @@ nsAlertsIconListener::ShowAlert(GdkPixbu + mClosureHandler = g_signal_connect_closure(mNotification, "closed", closure, FALSE); + gboolean result = notify_notification_show(mNotification, nullptr); + ++ if (result && mAlertListener) ++ mAlertListener->Observe(nullptr, "alertshow", mAlertCookie.get()); ++ + return result ? NS_OK : NS_ERROR_FAILURE; + } + +@@ -201,9 +215,15 @@ nsAlertsIconListener::StartRequest(const + if (!il) + return ShowAlert(nullptr); + +- return il->LoadImageXPCOM(imageUri, nullptr, nullptr, nullptr, nullptr, +- this, nullptr, nsIRequest::LOAD_NORMAL, nullptr, +- nullptr, getter_AddRefs(mIconRequest)); ++ nsresult rv = il->LoadImageXPCOM(imageUri, nullptr, nullptr, nullptr, nullptr, ++ this, nullptr, nsIRequest::LOAD_NORMAL, nullptr, ++ 0 /* use default */, getter_AddRefs(mIconRequest)); ++ if (NS_FAILED(rv)) ++ return rv; ++ ++ mIconRequest->StartDecoding(); ++ ++ return NS_OK; + } -diff --git a/toolkit/system/gnome/nsAlertsIconListener.h b/toolkit/system/gnome/nsAlertsIconListener.h -new file mode 100644 ---- /dev/null -+++ b/toolkit/system/gnome/nsAlertsIconListener.h + void +diff -up mozilla-release/toolkit/system/gnome/nsAlertsIconListener.h.858919 mozilla-release/toolkit/system/gnome/nsAlertsIconListener.h +--- mozilla-release/toolkit/system/gnome/nsAlertsIconListener.h.858919 2014-12-01 11:58:31.896101722 +0100 ++++ mozilla-release/toolkit/system/gnome/nsAlertsIconListener.h 2014-12-01 11:58:31.896101722 +0100 @@ -0,0 +1,89 @@ +/* -*- 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 @@ -118,50 +238,86 @@ new file mode 100644 +}; + +#endif -diff --git a/toolkit/system/gnome/nsAlertsService.cpp b/toolkit/system/gnome/nsAlertsService.cpp -new file mode 100644 ---- /dev/null -+++ b/toolkit/system/gnome/nsAlertsService.cpp -@@ -0,0 +1,53 @@ +diff -up mozilla-release/toolkit/system/gnome/nsGnomeModule.cpp.858919 mozilla-release/toolkit/system/gnome/nsGnomeModule.cpp +--- mozilla-release/toolkit/system/gnome/nsGnomeModule.cpp.858919 2014-11-26 03:17:39.000000000 +0100 ++++ mozilla-release/toolkit/system/gnome/nsGnomeModule.cpp 2014-12-01 11:58:31.896101722 +0100 +@@ -22,6 +22,8 @@ NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGn + 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); +@@ -33,6 +35,7 @@ NS_DEFINE_NAMED_CID(NS_GNOMEVFSSERVICE_C + 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 +@@ -45,6 +48,7 @@ static const mozilla::Module::CIDEntry k + { &kNS_GIOSERVICE_CID, false, nullptr, nsGIOServiceConstructor }, + { &kNS_GSETTINGSSERVICE_CID, false, nullptr, nsGSettingsServiceConstructor }, + #endif ++ { &kNS_SYSTEMALERTSSERVICE_CID, false, nullptr, nsSystemAlertsServiceConstructor }, + { nullptr } + }; + +@@ -59,6 +63,7 @@ static const mozilla::Module::ContractID + { NS_GIOSERVICE_CONTRACTID, &kNS_GIOSERVICE_CID }, + { NS_GSETTINGSSERVICE_CONTRACTID, &kNS_GSETTINGSSERVICE_CID }, + #endif ++ { NS_SYSTEMALERTSERVICE_CONTRACTID, &kNS_SYSTEMALERTSSERVICE_CID }, + { nullptr } + }; + +diff -up mozilla-release/toolkit/system/gnome/nsSystemAlertsService.cpp.858919 mozilla-release/toolkit/system/gnome/nsSystemAlertsService.cpp +--- mozilla-release/toolkit/system/gnome/nsSystemAlertsService.cpp.858919 2014-12-01 11:58:31.897101728 +0100 ++++ mozilla-release/toolkit/system/gnome/nsSystemAlertsService.cpp 2014-12-01 11:58:31.896101722 +0100 +@@ -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 "nsXULAppAPI.h" -+#include "nsAlertsService.h" ++#include "nsSystemAlertsService.h" +#include "nsAlertsIconListener.h" +#include "nsAutoPtr.h" + -+NS_IMPL_ADDREF(nsAlertsService) -+NS_IMPL_RELEASE(nsAlertsService) ++NS_IMPL_ADDREF(nsSystemAlertsService) ++NS_IMPL_RELEASE(nsSystemAlertsService) + -+NS_INTERFACE_MAP_BEGIN(nsAlertsService) ++NS_INTERFACE_MAP_BEGIN(nsSystemAlertsService) + NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIAlertsService) + NS_INTERFACE_MAP_ENTRY(nsIAlertsService) +NS_INTERFACE_MAP_END_THREADSAFE + -+nsAlertsService::nsAlertsService() ++nsSystemAlertsService::nsSystemAlertsService() +{ +} + -+nsAlertsService::~nsAlertsService() ++nsSystemAlertsService::~nsSystemAlertsService() +{} + +nsresult -+nsAlertsService::Init() ++nsSystemAlertsService::Init() +{ + return NS_OK; +} + -+NS_IMETHODIMP nsAlertsService::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, -+ nsIPrincipal * aPrincipal) ++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, ++ const nsAString & aData, ++ nsIPrincipal * aPrincipal) +{ + nsRefPtr alertListener = new nsAlertsIconListener(); + if (!alertListener) @@ -171,102 +327,39 @@ new file mode 100644 + aAlertCookie, aAlertListener); +} + -+NS_IMETHODIMP nsAlertsService::CloseAlert(const nsAString& aAlertName, -+ nsIPrincipal* aPrincipal) ++NS_IMETHODIMP nsSystemAlertsService::CloseAlert(const nsAString& aAlertName, ++ nsIPrincipal* aPrincipal) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} -diff --git a/toolkit/system/gnome/nsAlertsService.h b/toolkit/system/gnome/nsAlertsService.h -new file mode 100644 ---- /dev/null -+++ b/toolkit/system/gnome/nsAlertsService.h +diff -up mozilla-release/toolkit/system/gnome/nsSystemAlertsService.h.858919 mozilla-release/toolkit/system/gnome/nsSystemAlertsService.h +--- mozilla-release/toolkit/system/gnome/nsSystemAlertsService.h.858919 2014-12-01 11:58:31.897101728 +0100 ++++ mozilla-release/toolkit/system/gnome/nsSystemAlertsService.h 2014-12-01 11:58:31.897101728 +0100 @@ -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 nsAlertsService_h__ -+#define nsAlertsService_h__ ++#ifndef nsSystemAlertsService_h__ ++#define nsSystemAlertsService_h__ + +#include "nsIAlertsService.h" +#include "nsCOMPtr.h" + -+class nsAlertsService : public nsIAlertsService ++class nsSystemAlertsService : public nsIAlertsService +{ +public: + NS_DECL_NSIALERTSSERVICE + NS_DECL_ISUPPORTS + -+ nsAlertsService(); ++ nsSystemAlertsService(); + + nsresult Init(); + +protected: -+ virtual ~nsAlertsService(); ++ virtual ~nsSystemAlertsService(); + +}; + -+#endif /* nsAlertsService_h__ */ -diff --git a/toolkit/system/gnome/nsGnomeModule.cpp b/toolkit/system/gnome/nsGnomeModule.cpp ---- a/toolkit/system/gnome/nsGnomeModule.cpp -+++ b/toolkit/system/gnome/nsGnomeModule.cpp -@@ -17,53 +17,58 @@ 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 "nsAlertsService.h" -+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsAlertsService, 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, nullptr, nsGConfServiceConstructor }, - #endif - #ifdef MOZ_ENABLE_GNOMEVFS - { &kNS_GNOMEVFSSERVICE_CID, false, nullptr, nsGnomeVFSServiceConstructor }, - #endif - #ifdef MOZ_ENABLE_GIO - { &kNS_GIOSERVICE_CID, false, nullptr, nsGIOServiceConstructor }, - { &kNS_GSETTINGSSERVICE_CID, false, nullptr, nsGSettingsServiceConstructor }, - #endif -+ { &kNS_SYSTEMALERTSSERVICE_CID, false, nullptr, nsAlertsServiceConstructor }, - { nullptr } - }; - - 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 }, - { nullptr } - }; - - static nsresult - InitGType () - { - g_type_init(); - return NS_OK; ++#endif /* nsSystemAlertsService_h__ */