[esc/f16] Gecko 2.0 fixes, #688361.
Jack Magne
jmagne at fedoraproject.org
Wed Nov 30 01:39:55 UTC 2011
commit f5a47dd0f8a40323ee57362d9a16ac92191b710d
Author: Jack Magne <jmagne at localhost.localdomain>
Date: Tue Nov 29 17:38:19 2011 -0800
Gecko 2.0 fixes, #688361.
esc-1.1.0-fix10.patch | 29 ++
esc-1.1.0-fix11.patch | 93 ++++++
esc-1.1.0-fix12.patch | 50 ++++
esc-1.1.0-fix9.patch | 772 +++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 944 insertions(+), 0 deletions(-)
---
diff --git a/esc-1.1.0-fix10.patch b/esc-1.1.0-fix10.patch
new file mode 100644
index 0000000..f6eda05
--- /dev/null
+++ b/esc-1.1.0-fix10.patch
@@ -0,0 +1,29 @@
+diff -up ./esc/src/app/xpcom/rhCoolKey.cpp.fix10 ./esc/src/app/xpcom/rhCoolKey.cpp
+--- ./esc/src/app/xpcom/rhCoolKey.cpp.fix10 2011-07-19 03:47:15.264254844 -0700
++++ ./esc/src/app/xpcom/rhCoolKey.cpp 2011-07-19 03:47:30.224254842 -0700
+@@ -542,7 +542,7 @@ PRBool rhCoolKey::InitInstance()
+ static const GREVersionRange greVersion =
+ {
+ "1.9", PR_TRUE,
+- "2", PR_TRUE
++ "9.9", PR_TRUE
+ };
+
+ nsresult rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcom_path, 4096);
+diff -up ./esc/src/app/xul/esc/application.ini.fix10 ./esc/src/app/xul/esc/application.ini
+--- ./esc/src/app/xul/esc/application.ini.fix10 2011-07-19 03:42:23.368254822 -0700
++++ ./esc/src/app/xul/esc/application.ini 2011-07-19 03:42:40.531254827 -0700
+@@ -25,11 +25,11 @@ Vendor=RedHat
+ Name=ESC
+ ;
+ ; This field specifies your application's version. This field is optional.
+-Version=1.1.0-13
++Version=1.1.0-15
+ ;
+ ; This field specifies your application's build ID (timestamp). This field is
+ ; required.
+-BuildID=0000001013
++BuildID=0000001015
+ ;
+ ; This ID is just an example. Every XUL app ought to have it's own unique ID.
+ ; You can use the microsoft "guidgen" or "uuidgen" tools, or go on
diff --git a/esc-1.1.0-fix11.patch b/esc-1.1.0-fix11.patch
new file mode 100644
index 0000000..bd6110e
--- /dev/null
+++ b/esc-1.1.0-fix11.patch
@@ -0,0 +1,93 @@
+diff -up ./esc/src/app/xpcom/Makefile.sdk.fix11 ./esc/src/app/xpcom/Makefile.sdk
+--- ./esc/src/app/xpcom/Makefile.sdk.fix11 2011-09-16 11:28:43.413286053 -0700
++++ ./esc/src/app/xpcom/Makefile.sdk 2011-09-16 11:28:43.529286053 -0700
+@@ -108,7 +108,7 @@ endif
+ ifeq ($(OS_ARCH),Linux)
+ CPPFLAGS += -fno-rtti \
+ -fno-exceptions \
+- -fshort-wchar -fPIC
++ -fshort-wchar -fPIC -std=gnu++0x
+ GECKO_LD_LIBS=-L$(GECKO_SDK_PATH)/lib $(GECKO_SDK_PATH)/lib/libxpcomglue.a -lnssutil3 -lnss3 -lcrmf -lssl3 -lsmime3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl
+ endif
+
+@@ -129,6 +129,10 @@ ifdef ESC_VERSION
+ GECKO_DEFINES += -DESC_VERSION=$(ESC_VERSION)
+ endif
+
++ifdef GECKO_BIN_PATH
++GECKO_DEFINES += -DGECKO_BIN_PATH=$(GECKO_BIN_PATH)
++endif
++
+ NSS_INCLUDE = /usr/include/nss3
+ NSPR_INCLUDE = /usr/include/nspr4
+
+diff -up ./esc/src/app/xpcom/rhCoolKey.cpp.fix11 ./esc/src/app/xpcom/rhCoolKey.cpp
+--- ./esc/src/app/xpcom/rhCoolKey.cpp.fix11 2011-09-16 11:28:43.510286053 -0700
++++ ./esc/src/app/xpcom/rhCoolKey.cpp 2011-09-16 11:28:43.530286053 -0700
+@@ -538,7 +538,7 @@ PRBool rhCoolKey::InitInstance()
+
+ char xpcom_path[4096];
+ xpcom_path[0] = 0;
+-
++/*
+ static const GREVersionRange greVersion =
+ {
+ "1.9", PR_TRUE,
+@@ -550,6 +550,13 @@ PRBool rhCoolKey::InitInstance()
+ return PR_FALSE;
+ }
+
++*/
++
++ char *grePath = (char *) GETSTRING(GECKO_BIN_PATH);
++
++
++ snprintf(xpcom_path,4096,grePath);
++
+ char *lib_name =(char *) XPCOM_LIB_NAME ;
+
+
+diff -up ./esc/src/app/xpcom/tray/Makefile.sdk.fix11 ./esc/src/app/xpcom/tray/Makefile.sdk
+--- ./esc/src/app/xpcom/tray/Makefile.sdk.fix11 2011-09-16 11:31:59.645286087 -0700
++++ ./esc/src/app/xpcom/tray/Makefile.sdk 2011-09-16 11:32:10.859286088 -0700
+@@ -23,7 +23,7 @@ include $(CORE_DEPTH)/coreconf/config.mk
+ include $(CORE_DEPTH)/coreconf/rules.mk
+
+ ifeq ($(OS_ARCH),Linux)
+-CXXFLAGS += $(MOZ_GTK_CFLAGS) $(MOZ_GTK2_CFLAGS) $(NOTIFY_CXX_FLAGS) -fPIC
++CXXFLAGS += $(MOZ_GTK_CFLAGS) $(MOZ_GTK2_CFLAGS) $(NOTIFY_CXX_FLAGS) -fPIC -std=gnu++0x
+ endif
+
+
+diff -up ./esc/src/app/xul/esc/application.ini.fix11 ./esc/src/app/xul/esc/application.ini
+--- ./esc/src/app/xul/esc/application.ini.fix11 2011-09-16 11:28:43.511286053 -0700
++++ ./esc/src/app/xul/esc/application.ini 2011-09-16 11:28:43.532286053 -0700
+@@ -25,11 +25,11 @@ Vendor=RedHat
+ Name=ESC
+ ;
+ ; This field specifies your application's version. This field is optional.
+-Version=1.1.0-15
++Version=1.1.0-16
+ ;
+ ; This field specifies your application's build ID (timestamp). This field is
+ ; required.
+-BuildID=0000001015
++BuildID=0000001016
+ ;
+ ; This ID is just an example. Every XUL app ought to have it's own unique ID.
+ ; You can use the microsoft "guidgen" or "uuidgen" tools, or go on
+@@ -41,12 +41,12 @@ ID={6380471b-1924-4b48-b652-49f42951af86
+ ; This field is required. It specifies the minimum Gecko version that this
+ ; application requires. Specifying 1.8 matches all releases with a version
+ ; prefixed by 1.8 (e.g., 1.8a4, 1.8b, 1.8.2).
+-MinVersion=1.99
++MinVersion=6.0.0
+ ;
+ ; This field is optional. It specifies the maximum Gecko version that this
+ ; application requires. It should be specified if your application uses
+ ; unfrozen interfaces. Specifying 1.8 matches all releases with a version
+ ; prefixed by 1.8 (e.g., 1.8a4, 1.8b, 1.8.2).
+-MaxVersion=2.99
++MaxVersion=20.0.0
+
+ [Shell]
diff --git a/esc-1.1.0-fix12.patch b/esc-1.1.0-fix12.patch
new file mode 100644
index 0000000..d40be5f
--- /dev/null
+++ b/esc-1.1.0-fix12.patch
@@ -0,0 +1,50 @@
+diff -up ./esc/coreconf/Linux3.1.mk.fix12 ./esc/coreconf/Linux3.1.mk
+--- ./esc/coreconf/Linux3.1.mk.fix12 2011-11-28 13:55:27.623816205 -0800
++++ ./esc/coreconf/Linux3.1.mk 2011-11-28 13:56:11.119536737 -0800
+@@ -0,0 +1,35 @@
++# BEGIN COPYRIGHT BLOCK
++# This Program is free software; you can redistribute it and/or modify it under
++# the terms of the GNU General Public License as published by the Free Software
++# Foundation; version 2 of the License.
++#
++# This Program is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
++# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License along with
++# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
++# Place, Suite 330, Boston, MA 02111-1307 USA.
++#
++# Copyright (C) 2005 Red Hat, Inc.
++# All rights reserved.
++# END COPYRIGHT BLOCK
++
++#
++# Config stuff for Linux 3.1 (ELF)
++#
++
++include $(CORE_DEPTH)/coreconf/Linux.mk
++
++OS_REL_CFLAGS += -DLINUX2_1
++MKSHLIB = $(CC) -shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
++ifdef BUILD_OPT
++ OPTIMIZER = -O2
++endif
++
++ifdef MAPFILE
++ MKSHLIB += -Wl,--version-script,$(MAPFILE)
++endif
++PROCESS_MAP_FILE = grep -v ';-' $(LIBRARY_NAME).def | \
++ sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
++
+diff -up ./esc/src/app/xpcom/rhCoolKey.cpp.fix12 ./esc/src/app/xpcom/rhCoolKey.cpp
+--- ./esc/src/app/xpcom/rhCoolKey.cpp.fix12 2011-11-28 19:29:53.894102752 -0800
++++ ./esc/src/app/xpcom/rhCoolKey.cpp 2011-11-28 19:30:46.003028405 -0800
+@@ -41,7 +41,6 @@
+ #include "prlink.h"
+ #include "prthread.h"
+ #include "nscore.h"
+-#include "nsCopySupport.h"
+ #include <vector>
+ #include <string>
+ #include <time.h>
diff --git a/esc-1.1.0-fix9.patch b/esc-1.1.0-fix9.patch
new file mode 100644
index 0000000..90cd339
--- /dev/null
+++ b/esc-1.1.0-fix9.patch
@@ -0,0 +1,772 @@
+diff -up ./esc/src/app/daemon/manifest.mn.fix9 ./esc/src/app/daemon/manifest.mn
+--- ./esc/src/app/daemon/manifest.mn.fix9 2011-03-24 12:35:31.481712082 -0700
++++ ./esc/src/app/daemon/manifest.mn 2011-03-24 12:35:39.758712086 -0700
+@@ -37,7 +37,7 @@ DEFINES += $(shell pkg-config --cflags x
+ CPPFLAGS += $(DEFINES) -g
+
+ LDFLAGS += -lstdc++ -L$(CORE_DIST)/$(OBJDIR)/lib -L$(XULRUNNER_LIBS_LDFLAGS) -lnss3 -lnspr4 -lssl3 -lckyapplet $(shell pkg-config --libs xft)
+-LDFLAGS += -lckymanager -lhttpchunked -lm -lnss3 -lplc4 -lplds4
++LDFLAGS += -lckymanager -lhttpchunked -lm -lnss3 -lplc4 -lplds4 -lX11
+ # MODULE public and private header directories are implicitly REQUIRED.
+
+ CPPSRCS = \
+diff -up ./esc/src/app/xpcom/rhCoolKey.cpp.fix9 ./esc/src/app/xpcom/rhCoolKey.cpp
+--- ./esc/src/app/xpcom/rhCoolKey.cpp.fix9 2011-03-24 12:37:10.273712093 -0700
++++ ./esc/src/app/xpcom/rhCoolKey.cpp 2011-03-24 12:37:18.813712092 -0700
+@@ -70,6 +70,7 @@
+
+ #define PSM_COMPONENT_CONTRACTID "@mozilla.org/psm;1"
+ #define NS_CERTOVERRIDE_CONTRACTID "@mozilla.org/security/certoverride;1"
++#define RH_COOLKEY_CONTRACTID "@redhat.com/rhCoolKey;1"
+
+ static const nsIID kIModuleIID = NS_IMODULE_IID;
+ static const nsIID kIFactoryIID = NS_IFACTORY_IID;
+@@ -1711,297 +1712,36 @@ NS_IMETHODIMP rhCoolKey::GetCoolKeyVersi
+
+ NS_GENERIC_FACTORY_CONSTRUCTOR(rhCoolKey)
+
+-NS_IMPL_ISUPPORTS1(rhCoolKey,rhICoolKey)
+-
+-// Implement full module and factory dance so we can see what is going on
+-
+-class rhCoolKeyFactory: public nsIFactory{
+-private:
+-nsrefcnt mRefCnt;
+-public:
+-rhCoolKeyFactory();
+-virtual ~rhCoolKeyFactory();
+-
+-NS_IMETHOD QueryInterface(const nsIID &aIID, void **aResult);
+-NS_IMETHOD_(nsrefcnt) AddRef(void);
+-NS_IMETHOD_(nsrefcnt) Release(void);
+-
+-NS_IMETHOD CreateInstance(nsISupports *aOuter, const nsIID & iid, void * *result);
+-NS_IMETHOD LockFactory(PRBool lock);
+-
++// Build a table of ClassIDs (CIDs) which are implemented by this module. CIDs
++// // should be completely unique UUIDs.
++// // each entry has the form { CID, service, factoryproc, constructorproc }
++// // where factoryproc is usually NULL.
++static const mozilla::Module::CIDEntry kCoolKeyCIDs[] = {
++ { &kCoolKeyCID, false, NULL, rhCoolKeyConstructor },
++ { NULL }
++ };
++
++// Build a table which maps contract IDs to CIDs.
++// // A contract is a string which identifies a particular set of functionality. In some
++// // cases an extension component may override the contract ID of a builtin gecko component
++// // to modify or extend functionality.
++//
++static const mozilla::Module::ContractIDEntry kCoolKeyContracts[] = {
++ { RH_COOLKEY_CONTRACTID, &kCoolKeyCID },
++ { NULL }
+ };
+
+-rhCoolKeyFactory::rhCoolKeyFactory()
+-{
+-mRefCnt = 0;
+-}
+-rhCoolKeyFactory::~rhCoolKeyFactory()
+-{
+-}
+-
+-NS_IMETHODIMP rhCoolKeyFactory::QueryInterface(const nsIID &aIID,
+-void **aResult)
+-{
+-if (aResult == NULL) {
+-return NS_ERROR_NULL_POINTER;
+-}
+-*aResult = NULL;
+-if (aIID.Equals(kISupportsIID)) {
+-*aResult = (void *) this;
+-}
+-else
+-if (aIID.Equals(kIFactoryIID)) {
+-*aResult = (void *) this;
+-}
+-
+-if (*aResult == NULL) {
+-return NS_ERROR_NO_INTERFACE;
+-}
+-
+-AddRef();
+-return NS_OK;
+-}
+-
+-NS_IMETHODIMP_(nsrefcnt) rhCoolKeyFactory::AddRef()
+-{
+-return ++mRefCnt;
+-}
+-
+-
+-NS_IMETHODIMP_(nsrefcnt) rhCoolKeyFactory::Release()
+-{
+-if (--mRefCnt == 0) {
+-delete this;
+-return 0;
+-}
+-return mRefCnt;
+-}
+-
+-
+-NS_IMETHODIMP
+-rhCoolKeyFactory::CreateInstance(nsISupports *aOuter, const nsIID & iid, void * *result)
+-{
+-if (!result)
+-return NS_ERROR_INVALID_ARG;
+-
+-rhCoolKey* sample = new rhCoolKey();
+-if (!sample)
+-return NS_ERROR_OUT_OF_MEMORY;
+-
+-nsresult rv = sample->QueryInterface(iid, result);
+-
+-if (NS_FAILED(rv)) {
+-*result = nsnull;
+-delete sample;
+-}
+-
+-return rv;
+-}
+-
+-
+-NS_IMETHODIMP
+-rhCoolKeyFactory::LockFactory(PRBool lock)
+-{
+-return NS_ERROR_NOT_IMPLEMENTED;
+-}
+-
+-// Module implementation
+-class rhCoolKeyModule : public nsIModule
+-{
+-public:
+-rhCoolKeyModule();
+-virtual ~rhCoolKeyModule();
+-
+-// nsISupports methods:
+-NS_IMETHOD QueryInterface(const nsIID & uuid, void * *result);
+-NS_IMETHOD_(nsrefcnt) AddRef(void);
+-NS_IMETHOD_(nsrefcnt) Release(void);
+-
+-// nsIModule methods:
+-NS_IMETHOD GetClassObject(nsIComponentManager *aCompMgr, const nsCID & aClass, const nsIID & aIID, void * *aResult);
+-NS_IMETHOD RegisterSelf(nsIComponentManager *aCompMgr, nsIFile *aLocation, const char *aLoaderStr, const char *aType);
+-NS_IMETHOD UnregisterSelf(nsIComponentManager *aCompMgr, nsIFile *aLocation, const char *aLoaderStr);
+-NS_IMETHOD CanUnload(nsIComponentManager *aCompMgr, PRBool *_retval);
+-
+-private:
+-nsrefcnt mRefCnt;
++static const mozilla::Module kCoolKeyModule = {
++ mozilla::Module::kVersion,
++ kCoolKeyCIDs,
++ kCoolKeyContracts,
++ NULL
+ };
+
++// The following line implements the one-and-only "NSModule" symbol exported from this
++// // shared library.
++ NSMODULE_DEFN(rhCoolKeyModule) = &kCoolKeyModule;
++//
+
+-//----------------------------------------------------------------------
+-
+-rhCoolKeyModule::rhCoolKeyModule()
+-{
+-mRefCnt = 0;
+-}
+-
+-rhCoolKeyModule::~rhCoolKeyModule()
+-{
+-}
+-
+-// nsISupports implemention
+-NS_IMETHODIMP_(nsrefcnt)
+-rhCoolKeyModule::AddRef(void)
+-{
+-char tBuff[56];
+-PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::AddRef \n",GetTStamp(tBuff,56)));
+-++mRefCnt;
+-return mRefCnt;
+-}
+-
+-
+-NS_IMETHODIMP_(nsrefcnt)
+-rhCoolKeyModule::Release(void)
+-{
+-char tBuff[56];
+-PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::Release : mRefCnt %d \n",GetTStamp(tBuff,56),mRefCnt - 1));
+---mRefCnt;
+-if (mRefCnt == 0) {
+-mRefCnt = 1; /* stabilize */
+-PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::Release deleting Module \n",GetTStamp(tBuff,56)));
+-delete this;
+-return 0;
+-}
+-return mRefCnt;
+-}
+-
+-
+-NS_IMETHODIMP
+-rhCoolKeyModule::QueryInterface(REFNSIID aIID, void** aInstancePtr)
+-{
+-char tBuff[56];
+-PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::QueryInterface \n",GetTStamp(tBuff,56)));
+-if ( !aInstancePtr )
+-return NS_ERROR_NULL_POINTER;
+-
+-nsISupports* foundInterface;
+-
+-if ( aIID.Equals(kIModuleIID) )
+-foundInterface = (nsIModule*) this;
+-
+-else if ( aIID.Equals(kISupportsIID) )
+-foundInterface = (nsISupports*) this;
+-
+-else
+-foundInterface = 0;
+-
+-if (foundInterface) {
+-foundInterface->AddRef();
+-*aInstancePtr = foundInterface;
+-return NS_OK;
+-}
+-
+-*aInstancePtr = foundInterface;
+-return NS_NOINTERFACE;
+-}
+-
+-
+-// Create a factory object for creating instances of aClass.
+-NS_IMETHODIMP
+-rhCoolKeyModule::GetClassObject(nsIComponentManager *aCompMgr,
+-const nsCID& aClass,
+-const nsIID& aIID,
+-void** result)
+-{
+-char tBuff[56];
+-PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::GetClassObject \n",GetTStamp(tBuff,56)));
+-if (!kCoolKeyCID.Equals(aClass))
+-return NS_ERROR_FACTORY_NOT_REGISTERED;
+-
+-if (!result)
+-return NS_ERROR_INVALID_ARG;
+-
+-rhCoolKeyFactory* factory = new rhCoolKeyFactory();
+-if (!factory)
+-return NS_ERROR_OUT_OF_MEMORY;
+-
+-nsresult rv = factory->QueryInterface(aIID, result);
+-
+-if (NS_FAILED(rv)) {
+-*result = nsnull;
+-delete factory;
+-}
+-
+-return rv;
+-}
+-
+-
+-NS_IMETHODIMP
+-rhCoolKeyModule::RegisterSelf(nsIComponentManager *aCompMgr,
+-nsIFile* aPath,
+-const char* registryLocation,
+-const char* componentType)
+-{
+-
+-char tBuff[54];
+-nsIComponentRegistrar* compReg = nsnull;
+-
+-PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::RegisterSelf \n",GetTStamp(tBuff,56)));
+-nsresult rv = aCompMgr->QueryInterface(kIComponentRegistrarIID, (void**)&compReg);
+-if (NS_FAILED(rv))
+-return rv;
+-
+-rv = compReg->RegisterFactoryLocation(kCoolKeyCID,
+-"CoolKey",
+-"@redhat.com/rhCoolKey",
+-aPath,
+-registryLocation,
+-componentType);
+-
+-compReg->Release();
+-
+-return rv;
+-}
+-
+-NS_IMETHODIMP
+-rhCoolKeyModule::UnregisterSelf(nsIComponentManager* aCompMgr,
+-nsIFile* aPath,
+-const char* registryLocation)
+-{
+-char tBuff[56];
+-PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::UnregisterSelf \n",GetTStamp(tBuff,56)));
+-nsIComponentRegistrar* compReg = nsnull;
+-
+-nsresult rv = aCompMgr->QueryInterface(kIComponentRegistrarIID, (void**)&compReg);
+-if (NS_FAILED(rv))
+-return rv;
+-
+-rv = compReg->UnregisterFactoryLocation(kCoolKeyCID, aPath);
+-
+-compReg->Release();
+-
+-return rv;
+-}
+-
+-NS_IMETHODIMP
+-rhCoolKeyModule::CanUnload(nsIComponentManager *aCompMgr, PRBool *okToUnload)
+-{
+-*okToUnload = PR_FALSE; // we do not know how to unload.
+-return NS_OK;
+-}
+-
+-
+-//----------------------------------------------------------------------
+-
+-extern "C" NS_EXPORT nsresult NSGetModule(nsIComponentManager *servMgr,
+-nsIFile* location,
+-nsIModule** return_cobj)
+-{
+-nsresult rv = NS_OK;
+-
+-char tBuff[56];
+-PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::NSGetModule \n",GetTStamp(tBuff,56)));
+-
+-// Create and initialize the module instance
+-rhCoolKeyModule *m = new rhCoolKeyModule();
+-if (!m) {
+-return NS_ERROR_OUT_OF_MEMORY;
+-}
++NS_IMPL_ISUPPORTS1(rhCoolKey,rhICoolKey)
+
+-// Increase refcnt and store away nsIModule interface to m in return_cobj
+-rv = m->QueryInterface(kIModuleIID, (void**)return_cobj);
+-if (NS_FAILED(rv)) {
+-delete m;
+-}
+-return rv;
+-}
+diff -up ./esc/src/app/xpcom/rhCoolKey.h.fix9 ./esc/src/app/xpcom/rhCoolKey.h
+--- ./esc/src/app/xpcom/rhCoolKey.h.fix9 2011-03-24 12:40:07.291712102 -0700
++++ ./esc/src/app/xpcom/rhCoolKey.h 2011-03-24 12:40:15.644712108 -0700
+@@ -19,7 +19,9 @@
+ #define RH_COOLKEY_H
+
+ #include "rhICoolKey.h"
+-#include "nsIGenericFactory.h"
++/*#include "nsIGenericFactory.h" */
++#include "mozilla/ModuleUtils.h"
++#include "nsIClassInfoImpl.h"
+ #include "nsEmbedString.h"
+ #include <list>
+ #include "nspr.h"
+diff -up ./esc/src/app/xpcom/rhICoolKey.idl.fix9 ./esc/src/app/xpcom/rhICoolKey.idl
+--- ./esc/src/app/xpcom/rhICoolKey.idl.fix9 2011-03-24 12:42:27.595712113 -0700
++++ ./esc/src/app/xpcom/rhICoolKey.idl 2011-03-24 12:42:39.069712124 -0700
+@@ -17,12 +17,11 @@
+
+ #include "nsISupports.idl"
+ #include "rhIKeyNotify.idl"
+-#include "nsIObserver.idl"
++//#include "nsIObserver.idl"
+
+-interface nsIDOMHTMLDocument;
+ [scriptable,uuid(ea54eee4-9548-4b63-b94d-c519ffc91d09)]
+
+-interface rhICoolKey: nsISupports
++interface rhICoolKey:nsISupports
+ {
+
+ void rhNotifyKeyStateChange(in unsigned long aKeyType, in string aKeyID, in unsigned long aKeyState, in unsigned long aData, in string strData);
+diff -up ./esc/src/app/xpcom/tray/rhLinuxTray.cpp.fix9 ./esc/src/app/xpcom/tray/rhLinuxTray.cpp
+--- ./esc/src/app/xpcom/tray/rhLinuxTray.cpp.fix9 2011-03-24 12:43:20.262712118 -0700
++++ ./esc/src/app/xpcom/tray/rhLinuxTray.cpp 2011-03-24 12:43:34.767712121 -0700
+@@ -18,14 +18,17 @@
+ #define FORCE_PR_LOG 1
+
+ #include "rhTray.h"
+-#include "nsIGenericFactory.h"
++#include "mozilla/ModuleUtils.h"
+ #include <prlog.h>
+ #include "notifytray.h"
+ #include "nsIStringBundle.h"
+ #include <gdk/gdkx.h>
+ #include <stdlib.h>
+
+-NS_IMPL_ISUPPORTS1(rhTray, rhITray)
++#define RH_COOLKEY_TRAY_CONTRACTID "@redhat.com/rhTray;1"
++
++static const nsCID kCoolKeyTrayCID = RH_TRAY_CID;
++
+
+ GtkWidget* rhTray::mWnd = NULL;
+ GtkWidget* rhTray::mIconMenu = NULL;
+@@ -861,15 +864,36 @@ gboolean rhTrayWindowListener::WndDelete
+ NS_GENERIC_FACTORY_CONSTRUCTOR(rhTray)
+
+
+-//rhTray Module Implementation
++// Build a table of ClassIDs (CIDs) which are implemented by this module. CIDs
++// // // should be completely unique UUIDs.
++// // // each entry has the form { CID, service, factoryproc, constructorproc }
++// // // where factoryproc is usually NULL.
++
++static const mozilla::Module::CIDEntry kCoolKeyTrayCIDs[] = {
++ { &kCoolKeyTrayCID, false, NULL, rhTrayConstructor },
++ { NULL }
++};
+
+-static const nsModuleComponentInfo components[] =
+-{
+- { "rhTray",
+- RH_TRAY_CID,
+- "@redhat.com/rhTray",
+- rhTrayConstructor
+- }
++// Build a table which maps contract IDs to CIDs.
++// A contract is a string which identifies a particular set of functionality. In some
++// cases an extension component may override the contract ID of a builtin gecko component
++// to modify or extend functionality.
++
++static const mozilla::Module::ContractIDEntry kCoolKeyTrayContracts[] = {
++ { RH_COOLKEY_TRAY_CONTRACTID, &kCoolKeyTrayCID },
++ { NULL }
+ };
+
+-NS_IMPL_NSGETMODULE(rhTrayModule, components)
++static const mozilla::Module kCoolKeyTrayModule = {
++ mozilla::Module::kVersion,
++ kCoolKeyTrayCIDs,
++ kCoolKeyTrayContracts,
++ NULL
++};
++
++// The following line implements the one-and-only "NSModule" symbol exported from this
++// shared library.
++NSMODULE_DEFN(rhCoolKeyTrayModule) = &kCoolKeyTrayModule;
++
++NS_IMPL_ISUPPORTS1(rhTray,rhITray)
++
+diff -up ./esc/src/app/xpcom/tray/rhTray.h.fix9 ./esc/src/app/xpcom/tray/rhTray.h
+--- ./esc/src/app/xpcom/tray/rhTray.h.fix9 2011-03-24 12:44:10.035712119 -0700
++++ ./esc/src/app/xpcom/tray/rhTray.h 2011-03-24 12:44:19.059712129 -0700
+@@ -19,7 +19,8 @@
+ #define RH_TRAY_H
+
+ #include "rhITray.h"
+-#include "nsIGenericFactory.h"
++//#include "nsIGenericFactory.h"
++//#include mozilla/ModuleUtils.h
+ #include "nsEmbedString.h"
+ #include <list>
+ #include "nsCOMPtr.h"
+diff -up ./esc/src/app/xul/esc/application.ini.fix9 ./esc/src/app/xul/esc/application.ini
+--- ./esc/src/app/xul/esc/application.ini.fix9 2011-03-24 12:45:51.087712126 -0700
++++ ./esc/src/app/xul/esc/application.ini 2011-03-24 12:46:01.780712129 -0700
+@@ -25,11 +25,11 @@ Vendor=RedHat
+ Name=ESC
+ ;
+ ; This field specifies your application's version. This field is optional.
+-Version=1.1.0-12
++Version=1.1.0-13
+ ;
+ ; This field specifies your application's build ID (timestamp). This field is
+ ; required.
+-BuildID=0000001012
++BuildID=0000001013
+ ;
+ ; This ID is just an example. Every XUL app ought to have it's own unique ID.
+ ; You can use the microsoft "guidgen" or "uuidgen" tools, or go on
+@@ -41,12 +41,12 @@ ID={6380471b-1924-4b48-b652-49f42951af86
+ ; This field is required. It specifies the minimum Gecko version that this
+ ; application requires. Specifying 1.8 matches all releases with a version
+ ; prefixed by 1.8 (e.g., 1.8a4, 1.8b, 1.8.2).
+-MinVersion=1.9
++MinVersion=1.99
+ ;
+ ; This field is optional. It specifies the maximum Gecko version that this
+ ; application requires. It should be specified if your application uses
+ ; unfrozen interfaces. Specifying 1.8 matches all releases with a version
+ ; prefixed by 1.8 (e.g., 1.8a4, 1.8b, 1.8.2).
+-MaxVersion=1.99
++MaxVersion=2.99
+
+ [Shell]
+diff -up ./esc/src/app/xul/esc/chrome/chrome.manifest.fix9 ./esc/src/app/xul/esc/chrome/chrome.manifest
+--- ./esc/src/app/xul/esc/chrome/chrome.manifest.fix9 2011-03-24 12:52:14.601712157 -0700
++++ ./esc/src/app/xul/esc/chrome/chrome.manifest 2011-03-24 12:52:23.723712155 -0700
+@@ -1,19 +0,0 @@
+-# BEGIN COPYRIGHT BLOCK
+-# This Program is free software; you can redistribute it and/or modify it under
+-# the terms of the GNU General Public License as published by the Free Software
+-# Foundation; version 2 of the License.
+-#
+-# This Program is distributed in the hope that it will be useful, but WITHOUT
+-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+-#
+-# You should have received a copy of the GNU General Public License along with
+-# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
+-# Place, Suite 330, Boston, MA 02111-1307 USA.
+-#
+-# Copyright (C) 2005 Red Hat, Inc.
+-# All rights reserved.
+-# END COPYRIGHT BLOCK
+-
+-content esc content/esc/
+-locale esc en-US locale/en-US/
+diff -up ./esc/src/app/xul/esc/chrome/content/esc/ESC.js.fix9 ./esc/src/app/xul/esc/chrome/content/esc/ESC.js
+--- ./esc/src/app/xul/esc/chrome/content/esc/ESC.js.fix9 2011-03-24 12:52:49.995712156 -0700
++++ ./esc/src/app/xul/esc/chrome/content/esc/ESC.js 2011-03-24 12:52:59.829712160 -0700
+@@ -132,7 +132,7 @@ jsNotify.prototype = {
+
+ try {
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+- netkey = Components.classes["@redhat.com/rhCoolKey"].getService();
++ netkey = Components.classes["@redhat.com/rhCoolKey;1"].getService();
+ netkey = netkey.QueryInterface(Components.interfaces.rhICoolKey);
+ gNotify = new jsNotify;
+ netkey.rhCoolKeySetNotifyCallback(gNotify);
+diff -up ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js.fix9 ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js
+--- ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js.fix9 2011-03-24 12:53:21.344712157 -0700
++++ ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js 2011-03-24 12:53:28.456712159 -0700
+@@ -63,7 +63,7 @@ jsWindNotify.prototype = {
+ // GECKO ONLY initialization
+ try {
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+- gTray = Components.classes["@redhat.com/rhTray"].getService();
++ gTray = Components.classes["@redhat.com/rhTray;1"].getService();
+
+
+ gTray = gTray.QueryInterface(Components.interfaces.rhITray);
+diff -up ./esc/src/app/xul/esc/chrome.manifest.fix9 ./esc/src/app/xul/esc/chrome.manifest
+--- ./esc/src/app/xul/esc/chrome.manifest.fix9 2011-03-24 12:49:14.983712140 -0700
++++ ./esc/src/app/xul/esc/chrome.manifest 2011-03-24 12:49:47.350712147 -0700
+@@ -0,0 +1,33 @@
++# BEGIN COPYRIGHT BLOCK
++# This Program is free software; you can redistribute it and/or modify it under
++# the terms of the GNU General Public License as published by the Free Software
++# Foundation; version 2 of the License.
++#
++# This Program is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
++# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License along with
++# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
++# Place, Suite 330, Boston, MA 02111-1307 USA.
++#
++# Copyright (C) 2005 Red Hat, Inc.
++# All rights reserved.
++# END COPYRIGHT BLOCK
++
++content esc chrome/content/esc/
++locale esc en-US chrome/locale/en-US/
++
++interfaces components/rhICoolKey.xpt
++interfaces components/rhIKeyNotify.xpt
++interfaces components/rhITray.xpt
++interfaces components/rhITrayWindNotify.xpt
++
++
++binary-component components/librhCoolKey.so
++binary-component components/librhTray.so
++
++
++component {36c65861-52a8-4ce9-aa3b-235b88216ed4} components/escCLH.js
++contract @redhat.com/esc-clh;1 {36c65861-52a8-4ce9-aa3b-235b88216ed4}
++category command-line-handler escCLH @redhat.com/esc-clh;1
+diff -up ./esc/src/app/xul/esc/components/escCLH.js.fix9 ./esc/src/app/xul/esc/components/escCLH.js
+--- ./esc/src/app/xul/esc/components/escCLH.js.fix9 2011-03-24 12:54:15.072712160 -0700
++++ ./esc/src/app/xul/esc/components/escCLH.js 2011-03-24 12:54:53.868712165 -0700
+@@ -2,6 +2,8 @@
+ * -myapp commandline handler; starts up My App.
+ */
+
++ Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
++
+ const nsIAppShellService = Components.interfaces.nsIAppShellService;
+ const nsISupports = Components.interfaces.nsISupports;
+ const nsICategoryManager = Components.interfaces.nsICategoryManager;
+@@ -20,20 +22,26 @@
+ consoleService.logStringMessage("esc: " + message + "\n");
+ }
+
++Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
++
+ /*
+ * Classes
+ */
++
++function escCLH() {}
+
+- const escCLH = {
++ escCLH.prototype = {
++
++
++ contractID: "@redhat.com/esc-clh;1",
++ classID: Components.ID("{36c65861-52a8-4ce9-aa3b-235b88216ed4}"),
++ // const clh_category = "c-esc";
++
++
+ /* nsISupports */
+- QueryInterface : function clh_QI(iid) {
+- if (iid.equals(nsICommandLineHandler) ||
+- iid.equals(nsIFactory) ||
+- iid.equals(nsISupports))
+- return this;
+
+- throw Components.results.NS_ERROR_NO_INTERFACE;
+- },
++ QueryInterface : XPCOMUtils.generateQI([nsICommandLineHandler]),
++
+
+ /* nsICommandLineHandler */
+
+@@ -91,76 +99,8 @@
+
+ helpInfo : " -myapp Open the My App.\n",
+
+- /* nsIFactory */
+-
+- createInstance : function clh_CI(outer, iid) {
+- if (outer != null)
+- throw Components.results.NS_ERROR_NO_AGGREGATION;
+-
+- return this.QueryInterface(iid);
+- },
+-
+- lockFactory : function clh_lock(lock) {
+- /* no-op */
+- }
+- };
+-
+- const clh_contractID = "@redhat.com/esc-clh;1";
+- const clh_CID = Components.ID("{36c65861-52a8-4ce9-aa3b-235b88216ed4}");
+- const clh_category = "c-esc";
+-
+- const escCLHModule = {
+- /* nsISupports */
+-
+- QueryInterface : function mod_QI(iid) {
+- if (iid.equals(nsIModule) ||
+- iid.equals(nsISupports))
+- return this;
+-
+- throw Components.results.NS_ERROR_NO_INTERFACE;
+- },
+-
+- /* nsIModule */
+- getClassObject : function mod_gch(compMgr, cid, iid) {
+- if (cid.equals(clh_CID))
+- return escCLH.QueryInterface(iid);
+-
+- throw Components.results.NS_ERROR_NOT_REGISTERED;
+- },
+-
+- registerSelf : function mod_regself(compMgr, fileSpec, location, type) {
+- compMgr.QueryInterface(nsIComponentRegistrar);
+-
+- compMgr.registerFactoryLocation(clh_CID,
+- "escCLH",
+- clh_contractID,
+- fileSpec,
+- location,
+- type);
+-
+- var catMan = Components.classes["@mozilla.org/categorymanager;1"]
+- .getService(nsICategoryManager);
+- catMan.addCategoryEntry("command-line-handler",
+- clh_category,
+- clh_contractID, true, true);
+- },
+-
+- unregisterSelf : function mod_unreg(compMgr, location, type) {
+- compMgr.QueryInterface(nsIComponentRegistrar);
+-
+- compMgr.unregisterFactoryLocation(clh_CID, location);
+-
+- var catMan = Components.classes["@mozilla.org/categorymanager;1"]
+- .getService(nsICategoryManager);
+- catMan.deleteCategoryEntry("command-line-handler", clh_category);
+- },
+-
+- canUnload : function (compMgr) {
+- return true;
+- }
+ };
+
+ /* Module initialisation */
+- function NSGetModule(comMgr, fileSpec) {
+- return escCLHModule;
+- }
++
++var NSGetFactory = XPCOMUtils.generateNSGetFactory([escCLH]);
+diff -up ./esc/src/lib/notifytray/notifyareaicon.c.fix9 ./esc/src/lib/notifytray/notifyareaicon.c
+--- ./esc/src/lib/notifytray/notifyareaicon.c.fix9 2011-03-24 12:57:00.410712173 -0700
++++ ./esc/src/lib/notifytray/notifyareaicon.c 2011-03-24 12:57:21.501712174 -0700
+@@ -90,19 +90,7 @@ notify_area_icon_class_init (NotifyAreaI
+ static void
+ notify_area_icon_unrealize (GtkWidget *widget)
+ {
+- NotifyAreaIcon *icon = (NotifyAreaIcon *) widget;
+-
+- GdkWindow *root_window;
+-
+ g_print("notify_area_icon_unrealize \n");
+- if (icon->manager_wnd != None)
+- {
+- GdkWindow *gdkwin;
+- gdkwin = gdk_window_lookup (icon->manager_wnd);
+-
+- }
+-
+- root_window = gdk_window_lookup (gdk_x11_get_default_root_xwindow ());
+
+ if (GTK_WIDGET_CLASS (plug_parent_class)->unrealize)
+ (* GTK_WIDGET_CLASS (plug_parent_class)->unrealize) (widget);
+@@ -159,14 +147,6 @@ notify_area_icon_update_manager_wnd(Noti
+
+ xdisplay = gdk_display;
+
+- if (icon->manager_wnd != None)
+- {
+- GdkWindow *gdkwin;
+-
+- gdkwin = gdk_window_lookup (icon->manager_wnd);
+-
+- }
+-
+ XGrabServer (xdisplay);
+
+ icon->manager_wnd = XGetSelectionOwner (xdisplay, icon->selection_atom);
+@@ -235,7 +215,7 @@ notify_area_icon_new(const gchar *name)
+ {
+ NotifyAreaIcon *icon;
+ char buff[256];
+- GdkWindow *root;
++ /* GdkWindow *root; */
+
+ Screen *xscreen = DefaultScreenOfDisplay (gdk_display);
+
+@@ -275,8 +255,6 @@ notify_area_icon_new(const gchar *name)
+ notify_area_icon_update_manager_wnd(icon);
+
+ g_print ("attempted to update_manager_wnd: %p",(void *)icon->manager_wnd);
+-
+- root = gdk_window_lookup (gdk_x11_get_default_root_xwindow ());
+
+ icon->tooltips = gtk_tooltips_new ();
+
+diff -up ./esc/src/lib/notifytray/notifytray.c.fix9 ./esc/src/lib/notifytray/notifytray.c
+--- ./esc/src/lib/notifytray/notifytray.c.fix9 2011-03-24 12:57:57.680712175 -0700
++++ ./esc/src/lib/notifytray/notifytray.c 2011-03-24 12:58:07.243712165 -0700
+@@ -239,7 +239,7 @@ void notify_icon_send_tooltip_msg(const
+ }
+
+ g_print("icon %s", icon);
+- NotifyNotification *not = notify_notification_new(msg_title, message,icon, GTK_WIDGET(notify));
++ NotifyNotification *not = notify_notification_new(msg_title, message,icon); /*, GTK_WIDGET(notify));*/
+
+ if(not)
+ {
More information about the scm-commits
mailing list