michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "mozilla/ModuleUtils.h" michael@0: #include "nsIClassInfoImpl.h" michael@0: michael@0: #include "nsAnnoProtocolHandler.h" michael@0: #include "nsAnnotationService.h" michael@0: #include "nsNavHistory.h" michael@0: #include "nsNavBookmarks.h" michael@0: #include "nsFaviconService.h" michael@0: #include "History.h" michael@0: #include "nsDocShellCID.h" michael@0: michael@0: using namespace mozilla::places; michael@0: michael@0: NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsNavHistory, michael@0: nsNavHistory::GetSingleton) michael@0: NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsAnnotationService, michael@0: nsAnnotationService::GetSingleton) michael@0: NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsNavBookmarks, michael@0: nsNavBookmarks::GetSingleton) michael@0: NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsFaviconService, michael@0: nsFaviconService::GetSingleton) michael@0: NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(History, History::GetSingleton) michael@0: michael@0: NS_GENERIC_FACTORY_CONSTRUCTOR(nsAnnoProtocolHandler) michael@0: NS_DEFINE_NAMED_CID(NS_NAVHISTORYSERVICE_CID); michael@0: NS_DEFINE_NAMED_CID(NS_ANNOTATIONSERVICE_CID); michael@0: NS_DEFINE_NAMED_CID(NS_ANNOPROTOCOLHANDLER_CID); michael@0: NS_DEFINE_NAMED_CID(NS_NAVBOOKMARKSSERVICE_CID); michael@0: NS_DEFINE_NAMED_CID(NS_FAVICONSERVICE_CID); michael@0: NS_DEFINE_NAMED_CID(NS_HISTORYSERVICE_CID); michael@0: michael@0: const mozilla::Module::CIDEntry kPlacesCIDs[] = { michael@0: { &kNS_NAVHISTORYSERVICE_CID, false, nullptr, nsNavHistoryConstructor }, michael@0: { &kNS_ANNOTATIONSERVICE_CID, false, nullptr, nsAnnotationServiceConstructor }, michael@0: { &kNS_ANNOPROTOCOLHANDLER_CID, false, nullptr, nsAnnoProtocolHandlerConstructor }, michael@0: { &kNS_NAVBOOKMARKSSERVICE_CID, false, nullptr, nsNavBookmarksConstructor }, michael@0: { &kNS_FAVICONSERVICE_CID, false, nullptr, nsFaviconServiceConstructor }, michael@0: { &kNS_HISTORYSERVICE_CID, false, nullptr, HistoryConstructor }, michael@0: { nullptr } michael@0: }; michael@0: michael@0: const mozilla::Module::ContractIDEntry kPlacesContracts[] = { michael@0: { NS_NAVHISTORYSERVICE_CONTRACTID, &kNS_NAVHISTORYSERVICE_CID }, michael@0: { NS_ANNOTATIONSERVICE_CONTRACTID, &kNS_ANNOTATIONSERVICE_CID }, michael@0: { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "moz-anno", &kNS_ANNOPROTOCOLHANDLER_CID }, michael@0: { NS_NAVBOOKMARKSSERVICE_CONTRACTID, &kNS_NAVBOOKMARKSSERVICE_CID }, michael@0: { NS_FAVICONSERVICE_CONTRACTID, &kNS_FAVICONSERVICE_CID }, michael@0: { "@mozilla.org/embeddor.implemented/bookmark-charset-resolver;1", &kNS_NAVHISTORYSERVICE_CID }, michael@0: { NS_IHISTORY_CONTRACTID, &kNS_HISTORYSERVICE_CID }, michael@0: { NS_DOWNLOADHISTORY_CONTRACTID, &kNS_HISTORYSERVICE_CID }, michael@0: { nullptr } michael@0: }; michael@0: michael@0: const mozilla::Module::CategoryEntry kPlacesCategories[] = { michael@0: { "vacuum-participant", "Places", NS_NAVHISTORYSERVICE_CONTRACTID }, michael@0: { nullptr } michael@0: }; michael@0: michael@0: const mozilla::Module kPlacesModule = { michael@0: mozilla::Module::kVersion, michael@0: kPlacesCIDs, michael@0: kPlacesContracts, michael@0: kPlacesCategories michael@0: }; michael@0: michael@0: NSMODULE_DEFN(nsPlacesModule) = &kPlacesModule;