-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathbackground.js
42 lines (37 loc) · 1.18 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
function renavigate( event ) {
chrome.storage.sync.get( function( items ) {
for( var key in items ) {
var item = items[key];
var match = event.url.match( new RegExp( item.regex, "i" ) );
if( match && match.length > item.groupNum )
{
match[item.groupNum] = item.replacement;
var newUrl = match.slice( 1 ).join( "" );
chrome.tabs.get( event.tabId, function( tab ) {
if( tab.url == event.url ) chrome.tabs.update( event.tabId, { url: newUrl } );
});
return;
}
}
} );
}
function showOptionsPage() {
var optionsUrl = chrome.extension.getURL('options.html');
chrome.tabs.query({}, function(extensionTabs) {
var found = false;
for (var i=0; i < extensionTabs.length; i++) {
if (optionsUrl == extensionTabs[i].url) {
found = true;
console.log("tab id: " + extensionTabs[i].id);
chrome.tabs.update(extensionTabs[i].id, {"selected": true});
}
}
if (found == false) {
chrome.tabs.create({url: "options.html"});
}
});
}
chrome.webNavigation.onCommitted.addListener(renavigate);
chrome.browserAction.onClicked.addListener( function( tab ) {
showOptionsPage();
});