mirror of
https://github.com/zero-peak/ZeroOmega.git
synced 2025-01-23 07:18:13 -05:00
82 lines
2.2 KiB
JavaScript
82 lines
2.2 KiB
JavaScript
|
function callBackgroundNoReply(method, args, cb) {
|
||
|
chrome.runtime.sendMessage({
|
||
|
method: method,
|
||
|
args: args,
|
||
|
noReply: true,
|
||
|
refreshActivePage: true,
|
||
|
});
|
||
|
if (cb) return cb();
|
||
|
}
|
||
|
|
||
|
function callBackground(method, args, cb) {
|
||
|
chrome.runtime.sendMessage({
|
||
|
method: method,
|
||
|
args: args,
|
||
|
}, function(response) {
|
||
|
if (chrome.runtime.lastError != null)
|
||
|
return cb && cb(chrome.runtime.lastError)
|
||
|
if (response.error) return cb && cb(response.error)
|
||
|
return cb && cb(null, response.result)
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var requestInfoCallback = null;
|
||
|
|
||
|
OmegaTargetPopup = {
|
||
|
getState: function (keys, cb) {
|
||
|
var results = {};
|
||
|
keys.forEach(function(key) {
|
||
|
try {
|
||
|
results[key] = JSON.parse(localStorage['omega.local.' + key]);
|
||
|
} catch (_) {
|
||
|
return null;
|
||
|
}
|
||
|
});
|
||
|
if (cb) cb(null, results);
|
||
|
},
|
||
|
applyProfile: function (name, cb) {
|
||
|
callBackgroundNoReply('applyProfile', [name], cb);
|
||
|
},
|
||
|
openOptions: function (hash, cb) {
|
||
|
var options_url = chrome.extension.getURL('options.html');
|
||
|
|
||
|
chrome.tabs.query({
|
||
|
url: options_url
|
||
|
}, function(tabs) {
|
||
|
if (tabs.length > 0) {
|
||
|
var props = {
|
||
|
active: true
|
||
|
};
|
||
|
if (hash) {
|
||
|
var url = options_url + hash;
|
||
|
props.url = url;
|
||
|
}
|
||
|
chrome.tabs.update(tabs[0].id, props);
|
||
|
} else {
|
||
|
chrome.tabs.create({
|
||
|
url: options_url
|
||
|
});
|
||
|
}
|
||
|
if (cb) return cb();
|
||
|
});
|
||
|
},
|
||
|
getActivePageInfo: function(cb) {
|
||
|
chrome.tabs.query({active: true, lastFocusedWindow: true}, function (tabs) {
|
||
|
if (tabs.length === 0 || !tabs[0].url) return cb();
|
||
|
var args = {tabId: tabs[0].id, url: tabs[0].url};
|
||
|
callBackground('getPageInfo', [args], cb)
|
||
|
});
|
||
|
},
|
||
|
setDefaultProfile: function(profileName, defaultProfileName, cb) {
|
||
|
callBackgroundNoReply('setDefaultProfile',
|
||
|
[profileName, defaultProfileName], cb);
|
||
|
},
|
||
|
addTempRule: function(domain, profileName, cb) {
|
||
|
callBackgroundNoReply('addTempRule', [domain, profileName], cb);
|
||
|
},
|
||
|
openManage: function(domain, profileName, cb) {
|
||
|
chrome.tabs.create({url: 'chrome://extensions/?id=' + chrome.runtime.id});
|
||
|
},
|
||
|
getMessage: chrome.i18n.getMessage.bind(chrome.i18n),
|
||
|
};
|