/browser/components/build/nsModule.cpp

https://github.com/apakhotin/mozilla-central · C++ · 190 lines · 133 code · 19 blank · 38 comment · 5 complexity · 5069511255f4b331243f8c7e353d8af9 MD5 · raw file

  1. /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
  2. /* ***** BEGIN LICENSE BLOCK *****
  3. * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  4. *
  5. * The contents of this file are subject to the Mozilla Public License Version
  6. * 1.1 (the "License"); you may not use this file except in compliance with
  7. * the License. You may obtain a copy of the License at
  8. * http://www.mozilla.org/MPL/
  9. *
  10. * Software distributed under the License is distributed on an "AS IS" basis,
  11. * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  12. * for the specific language governing rights and limitations under the
  13. * License.
  14. *
  15. * The Original Code is mozilla.org code.
  16. *
  17. * The Initial Developer of the Original Code is
  18. * Netscape Communications Corporation.
  19. * Portions created by the Initial Developer are Copyright (C) 1998
  20. * the Initial Developer. All Rights Reserved.
  21. *
  22. * Contributor(s):
  23. * Joe Hewitt <hewitt@netscape.com> (Original Author)
  24. *
  25. * Alternatively, the contents of this file may be used under the terms of
  26. * either the GNU General Public License Version 2 or later (the "GPL"), or
  27. * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  28. * in which case the provisions of the GPL or the LGPL are applicable instead
  29. * of those above. If you wish to allow use of your version of this file only
  30. * under the terms of either the GPL or the LGPL, and not to allow others to
  31. * use your version of this file under the terms of the MPL, indicate your
  32. * decision by deleting the provisions above and replace them with the notice
  33. * and other provisions required by the GPL or the LGPL. If you do not delete
  34. * the provisions above, a recipient may use your version of this file under
  35. * the terms of any one of the MPL, the GPL or the LGPL.
  36. *
  37. * ***** END LICENSE BLOCK ***** */
  38. #include "mozilla/ModuleUtils.h"
  39. #include "nsBrowserCompsCID.h"
  40. #include "DirectoryProvider.h"
  41. #if defined(XP_WIN)
  42. #include "nsWindowsShellService.h"
  43. #elif defined(XP_MACOSX)
  44. #include "nsMacShellService.h"
  45. #elif defined(MOZ_WIDGET_GTK2)
  46. #include "nsGNOMEShellService.h"
  47. #endif
  48. #include "nsProfileMigrator.h"
  49. #if !defined(XP_OS2)
  50. #include "nsOperaProfileMigrator.h"
  51. #endif
  52. #if defined(XP_WIN) && !defined(__MINGW32__)
  53. #include "nsIEProfileMigrator.h"
  54. #elif defined(XP_MACOSX)
  55. #include "nsSafariProfileMigrator.h"
  56. #endif
  57. #include "rdf.h"
  58. #include "nsFeedSniffer.h"
  59. #include "AboutRedirector.h"
  60. #include "nsIAboutModule.h"
  61. #include "nsPrivateBrowsingServiceWrapper.h"
  62. #include "nsNetCID.h"
  63. using namespace mozilla::browser;
  64. /////////////////////////////////////////////////////////////////////////////
  65. NS_GENERIC_FACTORY_CONSTRUCTOR(DirectoryProvider)
  66. #if defined(XP_WIN)
  67. NS_GENERIC_FACTORY_CONSTRUCTOR(nsWindowsShellService)
  68. #elif defined(XP_MACOSX)
  69. NS_GENERIC_FACTORY_CONSTRUCTOR(nsMacShellService)
  70. #elif defined(MOZ_WIDGET_GTK2)
  71. NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init)
  72. #endif
  73. #if !defined(XP_OS2)
  74. NS_GENERIC_FACTORY_CONSTRUCTOR(nsOperaProfileMigrator)
  75. #endif
  76. NS_GENERIC_FACTORY_CONSTRUCTOR(nsProfileMigrator)
  77. #if defined(XP_WIN) && !defined(__MINGW32__)
  78. NS_GENERIC_FACTORY_CONSTRUCTOR(nsIEProfileMigrator)
  79. #elif defined(XP_MACOSX)
  80. NS_GENERIC_FACTORY_CONSTRUCTOR(nsSafariProfileMigrator)
  81. #endif
  82. NS_GENERIC_FACTORY_CONSTRUCTOR(nsFeedSniffer)
  83. NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPrivateBrowsingServiceWrapper, Init)
  84. NS_DEFINE_NAMED_CID(NS_BROWSERDIRECTORYPROVIDER_CID);
  85. #if defined(XP_WIN)
  86. NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID);
  87. #elif defined(MOZ_WIDGET_GTK2)
  88. NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID);
  89. #endif
  90. NS_DEFINE_NAMED_CID(NS_FEEDSNIFFER_CID);
  91. NS_DEFINE_NAMED_CID(NS_BROWSER_ABOUT_REDIRECTOR_CID);
  92. NS_DEFINE_NAMED_CID(NS_FIREFOX_PROFILEMIGRATOR_CID);
  93. #if defined(XP_WIN) && !defined(__MINGW32__)
  94. NS_DEFINE_NAMED_CID(NS_WINIEPROFILEMIGRATOR_CID);
  95. #elif defined(XP_MACOSX)
  96. NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID);
  97. NS_DEFINE_NAMED_CID(NS_SAFARIPROFILEMIGRATOR_CID);
  98. #endif
  99. #if !defined(XP_OS2)
  100. NS_DEFINE_NAMED_CID(NS_OPERAPROFILEMIGRATOR_CID);
  101. #endif
  102. NS_DEFINE_NAMED_CID(NS_PRIVATE_BROWSING_SERVICE_WRAPPER_CID);
  103. static const mozilla::Module::CIDEntry kBrowserCIDs[] = {
  104. { &kNS_BROWSERDIRECTORYPROVIDER_CID, false, NULL, DirectoryProviderConstructor },
  105. #if defined(XP_WIN)
  106. { &kNS_SHELLSERVICE_CID, false, NULL, nsWindowsShellServiceConstructor },
  107. #elif defined(MOZ_WIDGET_GTK2)
  108. { &kNS_SHELLSERVICE_CID, false, NULL, nsGNOMEShellServiceConstructor },
  109. #endif
  110. { &kNS_FEEDSNIFFER_CID, false, NULL, nsFeedSnifferConstructor },
  111. { &kNS_BROWSER_ABOUT_REDIRECTOR_CID, false, NULL, AboutRedirector::Create },
  112. { &kNS_FIREFOX_PROFILEMIGRATOR_CID, false, NULL, nsProfileMigratorConstructor },
  113. #if defined(XP_WIN) && !defined(__MINGW32__)
  114. { &kNS_WINIEPROFILEMIGRATOR_CID, false, NULL, nsIEProfileMigratorConstructor },
  115. #elif defined(XP_MACOSX)
  116. { &kNS_SHELLSERVICE_CID, false, NULL, nsMacShellServiceConstructor },
  117. { &kNS_SAFARIPROFILEMIGRATOR_CID, false, NULL, nsSafariProfileMigratorConstructor },
  118. #endif
  119. #if !defined(XP_OS2)
  120. { &kNS_OPERAPROFILEMIGRATOR_CID, false, NULL, nsOperaProfileMigratorConstructor },
  121. #endif
  122. { &kNS_PRIVATE_BROWSING_SERVICE_WRAPPER_CID, false, NULL, nsPrivateBrowsingServiceWrapperConstructor },
  123. { NULL }
  124. };
  125. static const mozilla::Module::ContractIDEntry kBrowserContracts[] = {
  126. { NS_BROWSERDIRECTORYPROVIDER_CONTRACTID, &kNS_BROWSERDIRECTORYPROVIDER_CID },
  127. #if defined(XP_WIN)
  128. { NS_SHELLSERVICE_CONTRACTID, &kNS_SHELLSERVICE_CID },
  129. #elif defined(MOZ_WIDGET_GTK2)
  130. { NS_SHELLSERVICE_CONTRACTID, &kNS_SHELLSERVICE_CID },
  131. #endif
  132. { NS_FEEDSNIFFER_CONTRACTID, &kNS_FEEDSNIFFER_CID },
  133. #ifdef MOZ_SAFE_BROWSING
  134. { NS_ABOUT_MODULE_CONTRACTID_PREFIX "blocked", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
  135. #endif
  136. { NS_ABOUT_MODULE_CONTRACTID_PREFIX "certerror", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
  137. { NS_ABOUT_MODULE_CONTRACTID_PREFIX "feeds", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
  138. { NS_ABOUT_MODULE_CONTRACTID_PREFIX "privatebrowsing", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
  139. { NS_ABOUT_MODULE_CONTRACTID_PREFIX "rights", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
  140. { NS_ABOUT_MODULE_CONTRACTID_PREFIX "robots", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
  141. { NS_ABOUT_MODULE_CONTRACTID_PREFIX "sessionrestore", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
  142. #ifdef MOZ_SERVICES_SYNC
  143. { NS_ABOUT_MODULE_CONTRACTID_PREFIX "sync-tabs", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
  144. #endif
  145. { NS_ABOUT_MODULE_CONTRACTID_PREFIX "home", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
  146. { NS_ABOUT_MODULE_CONTRACTID_PREFIX "permissions", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
  147. { NS_PROFILEMIGRATOR_CONTRACTID, &kNS_FIREFOX_PROFILEMIGRATOR_CID },
  148. #if defined(XP_WIN) && !defined(__MINGW32__)
  149. { NS_BROWSERPROFILEMIGRATOR_CONTRACTID_PREFIX "ie", &kNS_WINIEPROFILEMIGRATOR_CID },
  150. #elif defined(XP_MACOSX)
  151. { NS_SHELLSERVICE_CONTRACTID, &kNS_SHELLSERVICE_CID },
  152. { NS_BROWSERPROFILEMIGRATOR_CONTRACTID_PREFIX "safari", &kNS_SAFARIPROFILEMIGRATOR_CID },
  153. #endif
  154. #if !defined(XP_OS2)
  155. { NS_BROWSERPROFILEMIGRATOR_CONTRACTID_PREFIX "opera", &kNS_OPERAPROFILEMIGRATOR_CID },
  156. #endif
  157. { NS_PRIVATE_BROWSING_SERVICE_CONTRACTID, &kNS_PRIVATE_BROWSING_SERVICE_WRAPPER_CID },
  158. { NULL }
  159. };
  160. static const mozilla::Module::CategoryEntry kBrowserCategories[] = {
  161. { XPCOM_DIRECTORY_PROVIDER_CATEGORY, "browser-directory-provider", NS_BROWSERDIRECTORYPROVIDER_CONTRACTID },
  162. { NS_CONTENT_SNIFFER_CATEGORY, "Feed Sniffer", NS_FEEDSNIFFER_CONTRACTID },
  163. { NULL }
  164. };
  165. static const mozilla::Module kBrowserModule = {
  166. mozilla::Module::kVersion,
  167. kBrowserCIDs,
  168. kBrowserContracts,
  169. kBrowserCategories
  170. };
  171. NSMODULE_DEFN(nsBrowserCompsModule) = &kBrowserModule;