forked from tom5760/chrome-ezproxy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbackground.js
51 lines (45 loc) · 1.44 KB
/
background.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
const DEFAULT_BASE_URL = "http://www.library.drexel.edu/cgi-bin/r.cgi?url=$@";
function transformUrl(url, callback) {
browser.storage.sync.get({"base_url": DEFAULT_BASE_URL}, function(items) {
var base = items["base_url"];
if (base.indexOf("$@") >= 0) {
base = base.replace("$@", url);
}
callback(base);
});
}
browser.browserAction.onClicked.addListener(function(tab) {
transformUrl(tab.url, function(newUrl) {
browser.tabs.update(tab.id, {"url": newUrl});
});
});
browser.contextMenus.onClicked.addListener(function(info, tab) {
transformUrl(info.linkUrl, function(newUrl) {
browser.tabs.create({"url": newUrl});
});
});
function initialize() {
browser.contextMenus.create({
title: "Open Link with EZProxy",
contexts: ["link"],
id: "redirect"
});
}
browser.runtime.onInstalled.addListener(function(details) {
browser.storage.sync.get({"base_url": null}, function(items) {
if (!items["base_url"]) {
// migrate old format
var legacyBase = localStorage["base_url"];
if (legacyBase) {
delete localStorage["base_url"];
} else {
legacyBase = DEFAULT_BASE_URL;
}
browser.storage.sync.set({"base_url": legacyBase}, function() {
initialize();
});
} else {
initialize();
}
});
});