mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-02 18:08:58 +00:00
Fix Linux-specific issues with static xpcom registration, bug 568691.
This commit is contained in:
parent
dfd21e98ac
commit
703663d5db
@ -40,7 +40,6 @@
|
||||
#include <dbus/dbus.h>
|
||||
#include "nsDBusHandlerApp.h"
|
||||
#include "nsIURI.h"
|
||||
#include "nsIGenericFactory.h"
|
||||
#include "nsIClassInfoImpl.h"
|
||||
#include "nsCOMPtr.h"
|
||||
|
||||
@ -54,6 +53,7 @@
|
||||
|
||||
// XXX why does nsMIMEInfoImpl have a threadsafe nsISupports? do we need one
|
||||
// here too?
|
||||
NS_IMPL_CLASSINFO(nsDBusHandlerApp, NULL, 0)
|
||||
NS_IMPL_ISUPPORTS2_CI(nsDBusHandlerApp, nsIDBusHandlerApp, nsIHandlerApp)
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
@ -237,6 +237,4 @@ NS_IMETHODIMP nsDBusHandlerApp::SetObjectPath(const nsACString & aObjpath)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_DECL_CLASSINFO(nsDBusHandlerApp)
|
||||
|
||||
|
||||
|
@ -36,7 +36,7 @@
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "nsIGenericFactory.h"
|
||||
#include "mozilla/ModuleUtils.h"
|
||||
#include "nsWidgetsCID.h"
|
||||
#include "nsAppShell.h"
|
||||
#include "nsAppShellSingleton.h"
|
||||
@ -109,7 +109,7 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(nsAccelerometerUnix)
|
||||
// from nsWindow.cpp
|
||||
extern PRBool gDisableNativeTheme;
|
||||
|
||||
static NS_IMETHODIMP
|
||||
static nsresult
|
||||
nsNativeThemeGTKConstructor(nsISupports *aOuter, REFNSIID aIID,
|
||||
void **aResult)
|
||||
{
|
||||
@ -150,7 +150,7 @@ NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPrintSession, Init)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPrintDialogServiceGTK, Init)
|
||||
#endif
|
||||
|
||||
static NS_IMETHODIMP
|
||||
static nsresult
|
||||
nsFilePickerConstructor(nsISupports *aOuter, REFNSIID aIID,
|
||||
void **aResult)
|
||||
{
|
||||
@ -184,7 +184,7 @@ nsFilePickerConstructor(nsISupports *aOuter, REFNSIID aIID,
|
||||
return picker->QueryInterface(aIID, aResult);
|
||||
}
|
||||
|
||||
static NS_IMETHODIMP
|
||||
static nsresult
|
||||
nsNativeKeyBindingsConstructor(nsISupports *aOuter, REFNSIID aIID,
|
||||
void **aResult,
|
||||
NativeKeyBindingsType aKeyBindingsType)
|
||||
@ -212,7 +212,7 @@ nsNativeKeyBindingsConstructor(nsISupports *aOuter, REFNSIID aIID,
|
||||
return rv;
|
||||
}
|
||||
|
||||
static NS_IMETHODIMP
|
||||
static nsresult
|
||||
nsNativeKeyBindingsInputConstructor(nsISupports *aOuter, REFNSIID aIID,
|
||||
void **aResult)
|
||||
{
|
||||
@ -220,7 +220,7 @@ nsNativeKeyBindingsInputConstructor(nsISupports *aOuter, REFNSIID aIID,
|
||||
eKeyBindings_Input);
|
||||
}
|
||||
|
||||
static NS_IMETHODIMP
|
||||
static nsresult
|
||||
nsNativeKeyBindingsTextAreaConstructor(nsISupports *aOuter, REFNSIID aIID,
|
||||
void **aResult)
|
||||
{
|
||||
@ -228,132 +228,132 @@ nsNativeKeyBindingsTextAreaConstructor(nsISupports *aOuter, REFNSIID aIID,
|
||||
eKeyBindings_TextArea);
|
||||
}
|
||||
|
||||
static const nsModuleComponentInfo components[] =
|
||||
{
|
||||
{ "Gtk2 Window",
|
||||
NS_WINDOW_CID,
|
||||
"@mozilla.org/widget/window/gtk;1",
|
||||
nsWindowConstructor },
|
||||
{ "Gtk2 Child Window",
|
||||
NS_CHILD_CID,
|
||||
"@mozilla.org/widgets/child_window/gtk;1",
|
||||
nsChildWindowConstructor },
|
||||
{ "Gtk2 AppShell",
|
||||
NS_APPSHELL_CID,
|
||||
"@mozilla.org/widget/appshell/gtk;1",
|
||||
nsAppShellConstructor },
|
||||
{ "Gtk2 Look And Feel",
|
||||
NS_LOOKANDFEEL_CID,
|
||||
"@mozilla.org/widget/lookandfeel;1",
|
||||
nsLookAndFeelConstructor },
|
||||
{ "Gtk2 File Picker",
|
||||
NS_FILEPICKER_CID,
|
||||
"@mozilla.org/filepicker;1",
|
||||
nsFilePickerConstructor },
|
||||
{ "Gtk2 Sound",
|
||||
NS_SOUND_CID,
|
||||
"@mozilla.org/sound;1",
|
||||
nsSoundConstructor },
|
||||
{ "Accelerometer",
|
||||
NS_ACCELEROMETER_CID,
|
||||
NS_ACCELEROMETER_CONTRACTID,
|
||||
nsAccelerometerUnixConstructor },
|
||||
{ "Transferable",
|
||||
NS_TRANSFERABLE_CID,
|
||||
"@mozilla.org/widget/transferable;1",
|
||||
nsTransferableConstructor },
|
||||
|
||||
NS_DEFINE_NAMED_CID(NS_WINDOW_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_CHILD_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_APPSHELL_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_LOOKANDFEEL_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_FILEPICKER_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_SOUND_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_ACCELEROMETER_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_TRANSFERABLE_CID);
|
||||
#ifdef MOZ_X11
|
||||
{ "Gtk Clipboard",
|
||||
NS_CLIPBOARD_CID,
|
||||
"@mozilla.org/widget/clipboard;1",
|
||||
nsClipboardConstructor },
|
||||
{ "Clipboard Helper",
|
||||
NS_CLIPBOARDHELPER_CID,
|
||||
"@mozilla.org/widget/clipboardhelper;1",
|
||||
nsClipboardHelperConstructor },
|
||||
{ "Gtk Drag Service",
|
||||
NS_DRAGSERVICE_CID,
|
||||
"@mozilla.org/widget/dragservice;1",
|
||||
nsDragServiceConstructor },
|
||||
NS_DEFINE_NAMED_CID(NS_CLIPBOARD_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_CLIPBOARDHELPER_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_DRAGSERVICE_CID);
|
||||
#endif
|
||||
{ "HTML Format Converter",
|
||||
NS_HTMLFORMATCONVERTER_CID,
|
||||
"@mozilla.org/widget/htmlformatconverter;1",
|
||||
nsHTMLFormatConverterConstructor },
|
||||
{ "Gtk2 Bidi Keyboard",
|
||||
NS_BIDIKEYBOARD_CID,
|
||||
"@mozilla.org/widget/bidikeyboard;1",
|
||||
nsBidiKeyboardConstructor },
|
||||
{ "Input Native Keybindings",
|
||||
NS_NATIVEKEYBINDINGSINPUT_CID,
|
||||
NS_NATIVEKEYBINDINGSINPUT_CONTRACTID,
|
||||
nsNativeKeyBindingsInputConstructor },
|
||||
{ "TextArea Native Keybindings",
|
||||
NS_NATIVEKEYBINDINGSTEXTAREA_CID,
|
||||
NS_NATIVEKEYBINDINGSTEXTAREA_CONTRACTID,
|
||||
nsNativeKeyBindingsTextAreaConstructor },
|
||||
{ "Editor Native Keybindings",
|
||||
NS_NATIVEKEYBINDINGSEDITOR_CID,
|
||||
NS_NATIVEKEYBINDINGSEDITOR_CONTRACTID,
|
||||
nsNativeKeyBindingsTextAreaConstructor },
|
||||
{ "Gtk Screen Manager",
|
||||
NS_SCREENMANAGER_CID,
|
||||
"@mozilla.org/gfx/screenmanager;1",
|
||||
nsScreenManagerGtkConstructor },
|
||||
NS_DEFINE_NAMED_CID(NS_HTMLFORMATCONVERTER_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_BIDIKEYBOARD_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_NATIVEKEYBINDINGSINPUT_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_NATIVEKEYBINDINGSTEXTAREA_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_NATIVEKEYBINDINGSEDITOR_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_SCREENMANAGER_CID);
|
||||
#ifdef NATIVE_THEME_SUPPORT
|
||||
{ "Native Theme Renderer",
|
||||
NS_THEMERENDERER_CID,
|
||||
"@mozilla.org/chrome/chrome-native-theme;1",
|
||||
nsNativeThemeGTKConstructor },
|
||||
NS_DEFINE_NAMED_CID(NS_THEMERENDERER_CID);
|
||||
#endif
|
||||
#ifdef NS_PRINTING
|
||||
{ "PrintSettings Service",
|
||||
NS_PRINTSETTINGSSERVICE_CID,
|
||||
"@mozilla.org/gfx/printsettings-service;1",
|
||||
nsPrintOptionsGTKConstructor },
|
||||
{ "Gtk Printer Enumerator",
|
||||
NS_PRINTER_ENUMERATOR_CID,
|
||||
// "@mozilla.org/gfx/printer_enumerator/gtk;1",
|
||||
"@mozilla.org/gfx/printerenumerator;1",
|
||||
nsPrinterEnumeratorGTKConstructor },
|
||||
{ "Print Session",
|
||||
NS_PRINTSESSION_CID,
|
||||
"@mozilla.org/gfx/printsession;1",
|
||||
nsPrintSessionConstructor },
|
||||
{ "Gtk Device Context Spec",
|
||||
NS_DEVICE_CONTEXT_SPEC_CID,
|
||||
// "@mozilla.org/gfx/device_context_spec/gtk;1",
|
||||
"@mozilla.org/gfx/devicecontextspec;1",
|
||||
nsDeviceContextSpecGTKConstructor },
|
||||
{ "Native Print Dialog",
|
||||
NS_PRINTDIALOGSERVICE_CID,
|
||||
NS_PRINTDIALOGSERVICE_CONTRACTID,
|
||||
nsPrintDialogServiceGTKConstructor },
|
||||
NS_DEFINE_NAMED_CID(NS_PRINTSETTINGSSERVICE_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_PRINTER_ENUMERATOR_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_PRINTSESSION_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_DEVICE_CONTEXT_SPEC_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_PRINTDIALOGSERVICE_CID);
|
||||
#endif
|
||||
{ "Image to gdk-pixbuf converter",
|
||||
NS_IMAGE_TO_PIXBUF_CID,
|
||||
"@mozilla.org/widget/image-to-gdk-pixbuf;1",
|
||||
nsImageToPixbufConstructor },
|
||||
NS_DEFINE_NAMED_CID(NS_IMAGE_TO_PIXBUF_CID);
|
||||
#if defined(MOZ_X11)
|
||||
{ "User Idle Service",
|
||||
NS_IDLE_SERVICE_CID,
|
||||
"@mozilla.org/widget/idleservice;1",
|
||||
nsIdleServiceGTKConstructor },
|
||||
NS_DEFINE_NAMED_CID(NS_IDLE_SERVICE_CID);
|
||||
#endif
|
||||
|
||||
|
||||
static const mozilla::Module::CIDEntry kWidgetCIDs[] = {
|
||||
{ &kNS_WINDOW_CID, false, NULL, nsWindowConstructor },
|
||||
{ &kNS_CHILD_CID, false, NULL, nsChildWindowConstructor },
|
||||
{ &kNS_APPSHELL_CID, false, NULL, nsAppShellConstructor },
|
||||
{ &kNS_LOOKANDFEEL_CID, false, NULL, nsLookAndFeelConstructor },
|
||||
{ &kNS_FILEPICKER_CID, false, NULL, nsFilePickerConstructor },
|
||||
{ &kNS_SOUND_CID, false, NULL, nsSoundConstructor },
|
||||
{ &kNS_ACCELEROMETER_CID, false, NULL, nsAccelerometerUnixConstructor },
|
||||
{ &kNS_TRANSFERABLE_CID, false, NULL, nsTransferableConstructor },
|
||||
#ifdef MOZ_X11
|
||||
{ &kNS_CLIPBOARD_CID, false, NULL, nsClipboardConstructor },
|
||||
{ &kNS_CLIPBOARDHELPER_CID, false, NULL, nsClipboardHelperConstructor },
|
||||
{ &kNS_DRAGSERVICE_CID, false, NULL, nsDragServiceConstructor },
|
||||
#endif
|
||||
{ &kNS_HTMLFORMATCONVERTER_CID, false, NULL, nsHTMLFormatConverterConstructor },
|
||||
{ &kNS_BIDIKEYBOARD_CID, false, NULL, nsBidiKeyboardConstructor },
|
||||
{ &kNS_NATIVEKEYBINDINGSINPUT_CID, false, NULL, nsNativeKeyBindingsInputConstructor },
|
||||
{ &kNS_NATIVEKEYBINDINGSTEXTAREA_CID, false, NULL, nsNativeKeyBindingsTextAreaConstructor },
|
||||
{ &kNS_NATIVEKEYBINDINGSEDITOR_CID, false, NULL, nsNativeKeyBindingsTextAreaConstructor },
|
||||
{ &kNS_SCREENMANAGER_CID, false, NULL, nsScreenManagerGtkConstructor },
|
||||
#ifdef NATIVE_THEME_SUPPORT
|
||||
{ &kNS_THEMERENDERER_CID, false, NULL, nsNativeThemeGTKConstructor },
|
||||
#endif
|
||||
#ifdef NS_PRINTING
|
||||
{ &kNS_PRINTSETTINGSSERVICE_CID, false, NULL, nsPrintOptionsGTKConstructor },
|
||||
{ &kNS_PRINTER_ENUMERATOR_CID, false, NULL, nsPrinterEnumeratorGTKConstructor },
|
||||
{ &kNS_PRINTSESSION_CID, false, NULL, nsPrintSessionConstructor },
|
||||
{ &kNS_DEVICE_CONTEXT_SPEC_CID, false, NULL, nsDeviceContextSpecGTKConstructor },
|
||||
{ &kNS_PRINTDIALOGSERVICE_CID, false, NULL, nsPrintDialogServiceGTKConstructor },
|
||||
#endif
|
||||
{ &kNS_IMAGE_TO_PIXBUF_CID, false, NULL, nsImageToPixbufConstructor },
|
||||
#if defined(MOZ_X11)
|
||||
{ &kNS_IDLE_SERVICE_CID, false, NULL, nsIdleServiceGTKConstructor },
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
static const mozilla::Module::ContractIDEntry kWidgetContracts[] = {
|
||||
{ "@mozilla.org/widget/window/gtk;1", &kNS_WINDOW_CID },
|
||||
{ "@mozilla.org/widgets/child_window/gtk;1", &kNS_CHILD_CID },
|
||||
{ "@mozilla.org/widget/appshell/gtk;1", &kNS_APPSHELL_CID },
|
||||
{ "@mozilla.org/widget/lookandfeel;1", &kNS_LOOKANDFEEL_CID },
|
||||
{ "@mozilla.org/filepicker;1", &kNS_FILEPICKER_CID },
|
||||
{ "@mozilla.org/sound;1", &kNS_SOUND_CID },
|
||||
{ NS_ACCELEROMETER_CONTRACTID, &kNS_ACCELEROMETER_CID },
|
||||
{ "@mozilla.org/widget/transferable;1", &kNS_TRANSFERABLE_CID },
|
||||
#ifdef MOZ_X11
|
||||
{ "@mozilla.org/widget/clipboard;1", &kNS_CLIPBOARD_CID },
|
||||
{ "@mozilla.org/widget/clipboardhelper;1", &kNS_CLIPBOARDHELPER_CID },
|
||||
{ "@mozilla.org/widget/dragservice;1", &kNS_DRAGSERVICE_CID },
|
||||
#endif
|
||||
{ "@mozilla.org/widget/htmlformatconverter;1", &kNS_HTMLFORMATCONVERTER_CID },
|
||||
{ "@mozilla.org/widget/bidikeyboard;1", &kNS_BIDIKEYBOARD_CID },
|
||||
{ NS_NATIVEKEYBINDINGSINPUT_CONTRACTID, &kNS_NATIVEKEYBINDINGSINPUT_CID },
|
||||
{ NS_NATIVEKEYBINDINGSTEXTAREA_CONTRACTID, &kNS_NATIVEKEYBINDINGSTEXTAREA_CID },
|
||||
{ NS_NATIVEKEYBINDINGSEDITOR_CONTRACTID, &kNS_NATIVEKEYBINDINGSEDITOR_CID },
|
||||
{ "@mozilla.org/gfx/screenmanager;1", &kNS_SCREENMANAGER_CID },
|
||||
#ifdef NATIVE_THEME_SUPPORT
|
||||
{ "@mozilla.org/chrome/chrome-native-theme;1", &kNS_THEMERENDERER_CID },
|
||||
#endif
|
||||
#ifdef NS_PRINTING
|
||||
{ "@mozilla.org/gfx/printsettings-service;1", &kNS_PRINTSETTINGSSERVICE_CID },
|
||||
{ "@mozilla.org/gfx/printerenumerator;1", &kNS_PRINTER_ENUMERATOR_CID },
|
||||
{ "@mozilla.org/gfx/printsession;1", &kNS_PRINTSESSION_CID },
|
||||
{ "@mozilla.org/gfx/devicecontextspec;1", &kNS_DEVICE_CONTEXT_SPEC_CID },
|
||||
{ NS_PRINTDIALOGSERVICE_CONTRACTID, &kNS_PRINTDIALOGSERVICE_CID },
|
||||
#endif
|
||||
{ "@mozilla.org/widget/image-to-gdk-pixbuf;1", &kNS_IMAGE_TO_PIXBUF_CID },
|
||||
#if defined(MOZ_X11)
|
||||
{ "@mozilla.org/widget/idleservice;1", &kNS_IDLE_SERVICE_CID },
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
static void
|
||||
nsWidgetGtk2ModuleDtor(nsIModule *aSelf)
|
||||
nsWidgetGtk2ModuleDtor()
|
||||
{
|
||||
nsFilePicker::Shutdown();
|
||||
nsSound::Shutdown();
|
||||
nsWindow::ReleaseGlobals();
|
||||
nsAppShellShutdown(aSelf);
|
||||
nsAppShellShutdown();
|
||||
}
|
||||
|
||||
NS_IMPL_NSGETMODULE_WITH_CTOR_DTOR(nsWidgetGtk2Module,
|
||||
components,
|
||||
nsAppShellInit,
|
||||
nsWidgetGtk2ModuleDtor)
|
||||
static const mozilla::Module kWidgetModule = {
|
||||
mozilla::Module::kVersion,
|
||||
kWidgetCIDs,
|
||||
kWidgetContracts,
|
||||
NULL,
|
||||
NULL,
|
||||
nsAppShellInit,
|
||||
nsWidgetGtk2ModuleDtor
|
||||
};
|
||||
|
||||
NSMODULE_DEFN(nsWidgetGtk2Module) = &kWidgetModule;
|
||||
|
@ -80,7 +80,7 @@ private:
|
||||
_getlanguagehelper, \
|
||||
_flags \
|
||||
}; \
|
||||
extern nsIClassInfo* NS_CLASSINFO_NAME(_class) = NULL;
|
||||
nsIClassInfo* NS_CLASSINFO_NAME(_class) = NULL;
|
||||
|
||||
#define NS_IMPL_QUERY_CLASSINFO(_class) \
|
||||
if ( aIID.Equals(NS_GET_IID(nsIClassInfo)) ) { \
|
||||
|
Loading…
Reference in New Issue
Block a user