1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
var {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
Cu.import("resource:///modules/FeedUtils.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
var nsNewsBlogFeedDownloader =
{
downloadFeed: function(aFolder, aUrlListener, aIsBiff, aMsgWindow)
{
FeedUtils.downloadFeed(aFolder, aUrlListener, aIsBiff, aMsgWindow);
},
subscribeToFeed: function(aUrl, aFolder, aMsgWindow)
{
FeedUtils.subscribeToFeed(aUrl, aFolder, aMsgWindow);
},
updateSubscriptionsDS: function(aFolder, aOrigFolder, aAction)
{
FeedUtils.updateSubscriptionsDS(aFolder, aOrigFolder, aAction);
},
QueryInterface: function(aIID)
{
if (aIID.equals(Ci.nsINewsBlogFeedDownloader) ||
aIID.equals(Ci.nsISupports))
return this;
throw Cr.NS_ERROR_NO_INTERFACE;
}
}
var nsNewsBlogAcctMgrExtension =
{
name: "newsblog",
chromePackageName: "messenger-newsblog",
showPanel: function (server)
{
return false;
},
QueryInterface: function(aIID)
{
if (aIID.equals(Ci.nsIMsgAccountManagerExtension) ||
aIID.equals(Ci.nsISupports))
return this;
throw Cr.NS_ERROR_NO_INTERFACE;
}
}
function FeedDownloader() {}
FeedDownloader.prototype =
{
classID: Components.ID("{5c124537-adca-4456-b2b5-641ab687d1f6}"),
_xpcom_factory:
{
createInstance: function (aOuter, aIID)
{
if (aOuter != null)
throw Cr.NS_ERROR_NO_AGGREGATION;
if (!aIID.equals(Ci.nsINewsBlogFeedDownloader) &&
!aIID.equals(Ci.nsISupports))
throw Cr.NS_ERROR_INVALID_ARG;
// return the singleton
return nsNewsBlogFeedDownloader.QueryInterface(aIID);
}
} // factory
}; // feed downloader
function AcctMgrExtension() {}
AcctMgrExtension.prototype =
{
classID: Components.ID("{E109C05F-D304-4ca5-8C44-6DE1BFAF1F74}"),
_xpcom_factory:
{
createInstance: function (aOuter, aIID)
{
if (aOuter != null)
throw Cr.NS_ERROR_NO_AGGREGATION;
if (!aIID.equals(Ci.nsIMsgAccountManagerExtension) &&
!aIID.equals(Ci.nsISupports))
throw Cr.NS_ERROR_INVALID_ARG;
// return the singleton
return nsNewsBlogAcctMgrExtension.QueryInterface(aIID);
}
} // factory
}; // account manager extension
var components = [FeedDownloader, AcctMgrExtension];
var NSGetFactory = XPCOMUtils.generateNSGetFactory(components);
|