forked from michaelmosmann/multiswitch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
background.html
68 lines (61 loc) · 1.66 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
<html>
<head>
<script type="text/javascript" src="multiswitch-core.js"></script>
<script type="text/javascript">
var apps = null;
var currentApp = null;
var currentHost = null;
var init = function(){
loadAppList();
chrome.tabs.onUpdated.addListener(function(tabId,info,tab) {
if(info.status=="loading"){
getUrl(tab);
}
});
chrome.tabs.onSelectionChanged.addListener(function(tabId,info) {
chrome.tabs.get(tabId,getUrl);
});
};
var loadAppList = function(){
apps=MultiSwitch.Apps.list();
};
var refresh = function(){
loadAppList();
};
var getUrl=function(tab) {
refresh();
var url = tab.url;
var app = getAppForURL(url);
if(app!=null) {
currentApp = app;
chrome.pageAction.show(tab.id);
} else {
currentApp=null;
chrome.pageAction.hide(tab.id);
}
};
var getAppForURL = function(url) {
if(apps!=null)
{
for(var i=0;i<apps.length;i++)
{
var app = apps[i];
var hosts=app.hosts();
for(var j=0;j<hosts.length;j++)
{
var host = hosts[j];
if(url.indexOf(host.prefix)>-1)
{
currentHost = host;
return app;
}
}
}
}
return null;
};
</script>
</head>
<body onload="init();">
</body>
</html>