|
1 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
4 |
|
5 this.EXPORTED_SYMBOLS = ['Weave']; |
|
6 |
|
7 this.Weave = {}; |
|
8 Components.utils.import("resource://services-sync/constants.js", Weave); |
|
9 let lazies = { |
|
10 "jpakeclient.js": ["JPAKEClient", "SendCredentialsController"], |
|
11 "notifications.js": ["Notifications", "Notification", "NotificationButton"], |
|
12 "service.js": ["Service"], |
|
13 "status.js": ["Status"], |
|
14 "util.js": ['Utils', 'Svc'] |
|
15 }; |
|
16 |
|
17 function lazyImport(module, dest, props) { |
|
18 function getter(prop) function() { |
|
19 let ns = {}; |
|
20 Components.utils.import(module, ns); |
|
21 delete dest[prop]; |
|
22 return dest[prop] = ns[prop]; |
|
23 }; |
|
24 props.forEach(function(prop) dest.__defineGetter__(prop, getter(prop))); |
|
25 } |
|
26 |
|
27 for (let mod in lazies) { |
|
28 lazyImport("resource://services-sync/" + mod, Weave, lazies[mod]); |
|
29 } |