This repository has been archived by the owner on Jan 4, 2019. It is now read-only.
/
browser_action_bindings.js
79 lines (77 loc) · 2.56 KB
/
browser_action_bindings.js
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
var ipc = require('ipc_utils');
var runtimeNatives = requireNative('runtime');
var manifest = runtimeNatives.GetManifest();
var process = requireNative('process');
var extensionId = process.GetExtensionId();
var binding = {
onClicked: {
addListener: function (cb) {
ipc.on('chrome-browser-action-clicked', function(evt, tab) {
cb(tab)
})
},
removeListener: function (cb) {
// TODO
// ipc.off('chrome-browser-action-clicked', cb)
}
},
setPopup: function (details) {
ipc.send('chrome-browser-action-set-popup', extensionId, details)
},
getPopup: function (details, cb) {
var responseId = ipc.guid()
ipc.once('chrome-browser-action-get-popup-response-' + responseId, function(evt, details) {
cb(details)
})
ipc.send('chrome-browser-action-get-popup', responseId, details)
},
setTitle: function (details) {
ipc.send('chrome-browser-action-set-title', extensionId, details)
},
getTitle: function (details, cb) {
var responseId = ipc.guid()
ipc.once('chrome-browser-action-get-title-response-' + responseId, function(evt, result) {
cb(result)
})
ipc.send('chrome-browser-action-get-title', responseId, details)
},
setIcon: function (details, cb) {
if (details.imageData) {
// TODO(bridiver) - support imageData somehow
console.warn('chrome.browserAction.setIcon imageData is not supported yet')
return
}
var responseId = ipc.guid()
ipc.once('chrome-browser-action-set-icon-response-' + responseId, function(evt) {
cb && cb()
})
ipc.send('chrome-browser-action-set-icon', responseId, extensionId, details)
},
setBadgeText: function (details) {
ipc.send('chrome-browser-action-set-badge-text', extensionId, details)
},
getBadgeText: function (details, cb) {
var responseId = ipc.guid()
ipc.once('chrome-browser-action-get-badge-text-response-' + responseId, function(evt, details) {
cb(details)
})
ipc.send('chrome-browser-action-get-badge-text', responseId, details)
},
setBadgeBackgroundColor: function (details) {
ipc.send('chrome-browser-action-set-badge-background-color', extensionId, details)
},
getBadgeBackgroundColor: function (details, cb) {
var responseId = ipc.guid()
ipc.once('chrome-browser-action-get-badge-text-response-' + responseId, function(evt, details) {
cb(details)
})
ipc.send('chrome-browser-action-get-badge-text', responseId, details)
},
enable: function (tabId) {
return
},
disable: function (tabId) {
return
}
}
exports.binding = binding