Line data Source code
1 : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 : *
3 : * This Source Code Form is subject to the terms of the Mozilla Public
4 : * License, v. 2.0. If a copy of the MPL was not distributed with this
5 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 :
7 : #include "mozilla/ModuleUtils.h"
8 : #include "nsServiceManagerUtils.h"
9 :
10 : #include "nsIconProtocolHandler.h"
11 : #include "nsIconURI.h"
12 : #include "nsIconChannel.h"
13 :
14 : // objects that just require generic constructors
15 : //*****************************************************************************
16 : // Protocol CIDs
17 :
18 : #define NS_ICONPROTOCOL_CID { 0xd0f9db12, 0x249c, 0x11d5, \
19 : { 0x99, 0x5, 0x0, 0x10, 0x83, 0x1, 0xe, 0x9b } }
20 :
21 6 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsIconProtocolHandler)
22 0 : NS_GENERIC_FACTORY_CONSTRUCTOR(nsMozIconURI)
23 :
24 : NS_DEFINE_NAMED_CID(NS_ICONPROTOCOL_CID);
25 : NS_DEFINE_NAMED_CID(NS_MOZICONURI_CID);
26 :
27 : static const mozilla::Module::CIDEntry kIconCIDs[] = {
28 : { &kNS_ICONPROTOCOL_CID, false, nullptr, nsIconProtocolHandlerConstructor },
29 : { &kNS_MOZICONURI_CID, false, nullptr, nsMozIconURIConstructor },
30 : { nullptr }
31 : };
32 :
33 : static const mozilla::Module::ContractIDEntry kIconContracts[] = {
34 : { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "moz-icon", &kNS_ICONPROTOCOL_CID },
35 : { nullptr }
36 : };
37 :
38 : static const mozilla::Module::CategoryEntry kIconCategories[] = {
39 : { nullptr }
40 : };
41 :
42 : static void
43 0 : IconDecoderModuleDtor()
44 : {
45 : #if (MOZ_WIDGET_GTK == 2)
46 : nsIconChannel::Shutdown();
47 : #endif
48 0 : }
49 :
50 : static const mozilla::Module kIconModule = {
51 : mozilla::Module::kVersion,
52 : kIconCIDs,
53 : kIconContracts,
54 : kIconCategories,
55 : nullptr,
56 : nullptr,
57 : IconDecoderModuleDtor
58 : };
59 :
60 : NSMODULE_DEFN(nsIconDecoderModule) = &kIconModule;
|