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
|
/* 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/. */
"use strict";
ChromeUtils.defineModuleGetter(
this,
"ExtensionCommon",
"resource://gre/modules/ExtensionCommon.jsm"
);
ChromeUtils.defineModuleGetter(
this,
"ExtensionActivityLog",
"resource://gre/modules/ExtensionActivityLog.jsm"
);
this.activityLog = class extends ExtensionAPI {
getAPI(context) {
return {
activityLog: {
onExtensionActivity: new ExtensionCommon.EventManager({
context,
name: "activityLog.onExtensionActivity",
register: (fire, id) => {
// A logger cannot log itself.
if (id === context.extension.id) {
throw new ExtensionUtils.ExtensionError(
"Extension cannot monitor itself."
);
}
function handler(details) {
fire.async(details);
}
ExtensionActivityLog.addListener(id, handler);
return () => {
ExtensionActivityLog.removeListener(id, handler);
};
},
}).api(),
},
};
}
};
|