js-guard/chrome/ci.bg.pack.js

18 lines
8.3 KiB
JavaScript

var h=!0,k=null;
function l(){function j(a){var c=a.tabId;"undefined"==typeof c&&(c=f.CURRENTTAB);switch(c){case f.NEWTAB:chrome.tabs.create({url:a.url,selected:h});break;case f.CURRENTTAB:chrome.tabs.getSelected(k,function(b){chrome.tabs.update(b.id,{url:a.url})});break;case f.NEWWINDOW:chrome.windows.create({url:a.url,selected:h});break;default:chrome.tabs.get(a.tabId,function(b){b?(chrome.tabs.update(a.tabId,{url:a.url}),delete i[a.tabId]):i[a.tabId]=a})}}function d(a,c){e[a]&&$.each(e[a],function(a,n){n&&n(c)})}
function g(a,c,b){a={name:f.BEFORENAVIGATE,tabId:a,url:c};d(f.BEFORENAVIGATE,a);b&&b(a)}var f=this,e={},i={};f.attachEvent=function(a,c){e[a]||(e[a]=[]);e[a].push(c)};f.detachEvent=function(a,c){if(e[a]){var b;for(b=e[a].length-1;0<=b;b--)e[a][b]&&c===e[a][b]&&(delete e[a][b],e[a][b]=k,e[a].splice(b,1))}};f.navigate=j;chrome.extension.onRequest.addListener(function(a,c,b){"ci_browser_navigate"==a.action?j(a):"ci_browser_DocumentComplete"==a.action?(a={name:f.DOCUMENTCOMPLETE,tabId:c.tab.id,url:a.url},
d(f.DOCUMENTCOMPLETE,a),b&&b(a)):!chrome.webNavigation&&"ci_browser_BeforeNavigate"==a.action&&g(c.tab.id,a.url,b)});chrome.tabs.onSelectionChanged.addListener(function(a,c){i[a]&&j(i[a]);chrome.tabs.get(a,function(b){b={action:"event",data:{name:f.TABCHANGED,tabId:a,url:c.url?c.url:b.url}};c.url&&0!==c.url.indexOf("chrome://")&&chrome.tabs.sendRequest(a,b);d(f.TABCHANGED,b.data)})});chrome.webNavigation&&(chrome.webNavigation.onBeforeNavigate.addListener(function(a){0==a.frameId&&a.url&&g(a.tabId,
a.url)}),chrome.webNavigation.onErrorOccurred.addListener(function(a){0==a.frameId&&a.url&&d(f.DNSERROR,{name:f.DNSERROR,tabId:a.tabId,url:a.url})}));chrome.tabs.onUpdated.addListener(function(){})}l.prototype={NEWTAB:-1,CURRENTTAB:-2,NEWWINDOW:-3,DOCUMENTCOMPLETE:"DocumentComplete",BEFORENAVIGATE:"BeforeNavigate",DNSERROR:"DNSError",TABCHANGED:"TabChanged"};window.framework={browser:new l,extension:new function(){function j(a,c){c(JSON.parse(localStorage.getItem("vars."+a)))}function d(a,c){localStorage.setItem("vars."+a,JSON.stringify(c))}function g(){return new XMLHttpRequest}function f(a,c){var b=document.implementation.createDocument("","statistics",k),d=b.createElement("action");d.appendChild(b.createTextNode(a));var f=b.createElement("browser");f.appendChild(b.createTextNode("Chrome"));var j=b.createElement("extension");j.appendChild(b.createTextNode(e.name));
var p=b.createElement("version");p.appendChild(b.createTextNode(e.version));var q=b.createElement("guid");q.appendChild(b.createTextNode(i));b.firstChild.appendChild(d);b.firstChild.appendChild(f);b.firstChild.appendChild(j);b.firstChild.appendChild(p);b.firstChild.appendChild(q);b=(new XMLSerializer).serializeToString(b);d=g();d.open("POST",c?c:e.statUrl,h);d.setRequestHeader("Content-length",b.length);d.send(b)}var e=this,i=localStorage.getItem("id"),a={},c={name:k,version:k,description:k,url:k,
author:k,updateUrl:k,statUrl:k};settingsFileName="settings.json";var b=new XMLHttpRequest;b.open("GET",settingsFileName,!1);b.send();b.responseText?($.extend(c,JSON.parse(b.responseText)),e.__defineGetter__("name",function(){return c.name}),e.__defineGetter__("version",function(){return c.version}),e.__defineGetter__("description",function(){return c.description}),e.__defineGetter__("url",function(){return c.url}),e.__defineGetter__("author",function(){return c.author}),e.__defineGetter__("updateUrl",
function(){return c.updateUrl}),e.__defineGetter__("statUrl",function(){return c.statUrl}),c.gServerStatUrl&&(e.a=c.gServerStatUrl)):console.log("EXTENSION ERROR: Can't read "+settingsFileName);chrome.extension.onRequest.addListener(function(b,c,g){switch(b.action){case "ci_extension_setVar":d(b.id,b.value);break;case "ci_extension_getVar":j(b.id,g);break;case "ci_extension_getId":g(i);break;case "event":var m=b.name,r={name:m,url:c.tab.url,tabId:c.tab.id,data:b.data.data};a[m]&&$.each(a[m],function(b,
a){a.call(e,r,g)});break;case "ci_extension_stat":f(b.data);break;case "ci_extension_getSettings":g({name:e.name,version:e.version,description:e.description,url:e.url,author:e.author,updateUrl:e.updateUrl})}});chrome.tabs.onUpdated.addListener(function(b,a,c){"loading"!=a.status&&"complete"==a.status&&chrome.tabs.sendRequest(b,{action:"event",name:"DocumentComplete",data:{tabId:b,url:a.url?a.url:c.url}})});this.fireEvent=function(b,c,d){var f={action:"event",name:b,data:c};c.tabId==l.prototype.CURRENTTAB?
chrome.tabs.getSelected(k,function(b){chrome.tabs.sendRequest(b.id,f,d)}):c.tabId?chrome.tabs.sendRequest(c.tabId,f,d):chrome.windows.getAll({populate:h},function(b){$.each(b,function(b,a){try{$.each(a.tabs,function(b,a){chrome.tabs.sendRequest(a.id,f,d)})}catch(c){}})});a[b]&&$.each(a[b],function(b,a){a.call(e,c,d)})};this.attachEvent=function(b,c){a[b]||(a[b]=[]);a[b].push(c)};this.detachEvent=function(b,c){if(a[b]){var d;for(d=a[b].length-1;0<=d;d--)a[b][d]&&c===a[b][d]&&(delete a[b][d],a[b][d]=
k,a[b].splice(d,1))}};this.log=function(){console.log.apply(console,arguments)};this.setItem=d;this.getItem=j;this.getId=function(b){b(i)};this.getRequest=g;this.getBackgroundPage=function(){return window};this.stat=f;i||(i=$.uuid().toString(),localStorage.setItem("id",i),e.a&&f("install",e.a),a.Installed&&$.each(a.Installed,function(b,a){a({id:i})}));e.a&&f("use",e.a)},ui:{button:new function(){function j(c){for(var b=0;b<a.length;b++)try{a[b]({tabId:c.id,url:c.url})}catch(d){}}var d=k,g=k,f=k,e=
k;$.ajax({url:"manifest.json",async:!1,dataType:"json",success:function(a){a.page_action?(g=a.page_action.default_popup,f=a.page_action.default_icon,e=a.page_action.default_title,a=function(b){d.show(b);g&&d.setPopup({tabId:b,popup:g});f&&d.setIcon({tabId:b,path:f});e&&d.setTitle({tabId:b,title:e})},d=chrome.pageAction,chrome.tabs.query({active:h,windowId:chrome.windows.WINDOW_ID_CURRENT},function(b){d.show(b[0].id)}),chrome.tabs.onUpdated.addListener(a),chrome.tabs.onSelectionChanged.addListener(a)):
a.browser_action&&(d=chrome.browserAction)}});var i=!1,a=[];this.setPopup=function(a){g=!a||a===k?"":a.url;d===chrome.browserAction?d.setPopup({popup:g}):chrome.tabs.query({active:h,windowId:chrome.windows.WINDOW_ID_CURRENT},function(b){d.setPopup({tabId:b[0].id,popup:g})})};this.setIcon=function(a){f=a;d===chrome.browserAction?d.setIcon({path:a}):chrome.tabs.query({active:h,windowId:chrome.windows.WINDOW_ID_CURRENT},function(b){d.setIcon({tabId:b[0].id,path:f})})};this.setTitle=function(a){e=a;d===
chrome.browserAction?d.setTitle({title:e}):chrome.tabs.query({active:h,windowId:chrome.windows.WINDOW_ID_CURRENT},function(a){d.setTitle({tabId:a[0].id,title:e})})};this.attachEvent=function(c,b){"ButtonClick"==c&&(i||(d.onClicked.addListener(j),i=h),a.push(b))};this.detachEvent=function(c,b){if("ButtonClick"==c){for(var e=0;e<a.length;e++)a[e]===callback&&(a.splice(e,1),e--);0==a.length&&(i=!1,d.onClicked.removeListener(function(a){b({tabId:a.id,url:a.url})}))}};this.setBadgeText=function(a){"string"!==
typeof a&&(a=a.toString());d.setBadgeText({text:a.toString()})};this.setBadgeBackgroundColor=function(a){d.setBadgeBackgroundColor({color:function(a){var c=/rgb\((\d+), (\d+), (\d+)\)/;if(c.test(a))return a=c.exec(a),[parseInt(a[1]),parseInt(a[2]),parseInt(a[3]),255];a=parseInt(-1<a.indexOf("#")?a.substring(1):a,16);return[a>>16,(a&65280)>>8,a&255,255]}(a)})};this.setBadgeColor=function(){};this.CLICK="ButtonClick"},toolbar:new function(){var j=localStorage.getItem("visible")!=k?localStorage.getItem("visible"):
h,d=this;this.__defineGetter__("visible",function(){return j});this.__defineSetter__("visible",function(d){j=d;localStorage.setItem("visible",j)});this.showTooblarTrigger=function(){this.visible=!this.visible;chrome.windows.getAll({populate:h},function(g){$.each(g,function(f,e){try{$.each(e.tabs,function(a,c){chrome.tabs.sendRequest(c.id,{action:"ci_tb_showToolbarTrigger",visible:d.visible})})}catch(g){}})})};this.showTooblarPopup=function(d,f){chrome.tabs.sendRequest(f.id,{action:"ci_tb_openPopup",
options:d})};this.hideTooblarPopup=function(d){chrome.tabs.sendRequest(d.id,{action:"ci_tb_closePopup"})};chrome.extension.onRequest.addListener(function(g,f){"ci_tb_close"==g.action?d.showTooblarTrigger():"ci_tb_openPopup"==g.action?d.showTooblarPopup(g.options,f.tab):"ci_tb_closePopup"==g.action&&d.hideTooblarPopup(f.tab)});chrome.extension.onConnect.addListener(function(g){"ci_ui_toolbar"==g.name&&g.postMessage({action:"showToolbarTrigger",visible:d.visible})})}}};