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
|
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set ts=2 et sw=2 tw=80 filetype=javascript: */
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
// This file is the component definition for a demo base implementation of a
// javascript nsIMsgProtocolInfo implementation.
var EXPORTED_SYMBOLS = ["TestJaMsgProtocolInfo"];
function TestJaMsgProtocolInfo() {
dump("testJaMsgProtocolInfo");
// nsIFile object to be used for the default local path.
this._defaultLocalPath = null;
}
TestJaMsgProtocolInfo.prototype = {
// Flag this item as CPP needs to delegate to JS.
_JsPrototypeToDelegate: true,
get defaultLocalPath() {
if (this._defaultLocalPath) {
return this._defaultLocalPath;
}
// Setup a default location, "TestFoo" directory in profile.
const NS_APP_USER_PROFILE_50_DIR = "ProfD";
let typedir = Services.dirsvc.get(NS_APP_USER_PROFILE_50_DIR, Ci.nsIFile);
typedir.append("TestFoo");
if (!typedir.exists()) {
typedir.create(Ci.nsIFile.DIRECTORY_TYPE, parseInt("0700", 8));
}
this._defaultLocalPath = typedir;
return typedir;
},
set defaultLocalPath(defaultLocalPath) {
this._defaultLocalPath = defaultLocalPath;
},
// serverIID is used in AccountWizard.js, if missing will just report an error.
get serverIID() {
return null;
},
get requiresUsername() {
return false;
},
get preflightPrettyNameWithEmailAddress() {
return false;
},
get canDelete() {
return true;
},
get canLoginAtStartUp() {
return false;
},
get canDuplicate() {
return false;
},
getDefaultServerPort: isSecure => 0,
get canGetMessages() {
return false;
},
get canGetIncomingMessages() {
return false;
},
get defaultDoBiff() {
return false;
},
get showComposeMsgLink() {
return false;
},
get foldersCreatedAsync() {
return false;
},
QueryInterface: ChromeUtils.generateQI(["nsIMsgProtocolInfo"]),
};
|