forked from malcolmredheron/powerswitch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
background.html
84 lines (72 loc) · 2.13 KB
/
background.html
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
<html>
<!--<script src="foo.js"/>-->
<script src="MochiKit.js"/>
<!--<script>-->
<!--var foo = 5;-->
<!--</script>-->
<script>
// TODO:
// - prettier window (fullscreen?)
// - prettier window contents
// - stack is not always correct (reader)
var notify = function(string) {
webkitNotifications.createNotification('', 'notify', string).show();
};
var ordered_tabs = []; // xcxc rename
var showPopup = function() {
window.open(
"popup.html", undefined, "location=no,chrome=no,fullscrene=yes");
};
chrome.browserAction.onClicked.addListener(function(tab) {
showPopup();
});
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
if (request.action === 'showPopup') {
showPopup();
} else {
debugger;
}
sendResponse({});
});
chrome.windows.getAll({populate: true}, function(windows) {
windows.forEach(function(window) {
window.tabs.forEach(function(tab) {
ordered_tabs.push(tab.id);
});
});
});
var removeTabWithId = function(tab_id) {
// xcxc simplify
for (var i = 0; i < ordered_tabs.length; i++) {
var ordered_tab_id = ordered_tabs[i];
if (tab_id === ordered_tab_id) {
ordered_tabs = ordered_tabs.filter(function(ordered_tab_id) {
return ordered_tab_id !== tab_id;
});
return;
}
}
notify('tab not found: ' + tab_id);
debugger;
};
chrome.tabs.onCreated.addListener(function(tab) {
// notify('onCreated');
ordered_tabs = concat([tab.id], ordered_tabs);
});
chrome.tabs.onRemoved.addListener(function(tab_id, remove_info) {
// notify('onRemoved');
removeTabWithId(tab_id);
});
chrome.tabs.onSelectionChanged.addListener(function(tab_id, select_info) {
removeTabWithId(tab_id);
ordered_tabs = concat([tab_id], ordered_tabs);
});
chrome.windows.onFocusChanged.addListener(function(window) {
chrome.tabs.getSelected(undefined, function(tab) {
removeTabWithId(tab.id);
ordered_tabs = concat([tab.id], ordered_tabs);
});
});
</script>
</html>