-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontentscript.js
1 lines (1 loc) · 4.15 KB
/
contentscript.js
1
const e={google:["#fprs"],bing:["#sp_requery"],yahoo:[" .Sugg"],baidu:["#super_se_tip",".hit_top_new"],yandex:[".misspell__message"],duckduckgo:["#did_you_mean"],naver:[".sp_keyword"],ask:[".PartialSpellCheck"],aol:[".Sugg"],ecosia:[".query-context"],startpage:[".sp-gl__result"],facebook:[".fsxl"],twitter:["#react-root"]},t=[/^https?:\/\/([^\.]*\.)?aol\./,/^https?:\/\/([^\.]*\.)?ask\./,/^https?:\/\/([^\.]*\.)?baidu\./,/^https?:\/\/([^\.]*\.)?bing\./,/^https?:\/\/([^\.]*\.)?duckduckgo\./,/^https?:\/\/([^\.]*\.)?ecosia\./,/^https?:\/\/([^\.]*\.)?facebook\./,/^https?:\/\/([^\.]*\.)?google\./,/^https?:\/\/([^\.]*\.)?naver\./,/^https?:\/\/([^\.]*\.)?startpage\./,/^https?:\/\/([^\.]*\.)?twitter\./,/^https?:\/\/([^\.]*\.)?yahoo\./,/^https?:\/\/([^\.]*\.)?yandex\./],o=["duckduckgo","facebook","baidu","twitter","yahoo","yandex"];let n=!1,s={},r=!1;const a=()=>{document.documentElement.style.visibility="visible"},c=(e,t)=>{let o,n;switch(t){case"naver":{const t=e.getElementsByTagName("EM")[0];t&&(o=!0,n=`http://search.naver.com/?query=${t.textContent}`);break}case"startpage":{const t=e.getElementsByTagName("B")[0];t&&(o=!0,n=`http://www.startpage.com/?query=${t.textContent}`);break}case"baidu":{const t=e.getElementsByTagName("STRONG")[1];t&&(o=!0,n=`http://www.baidu.com/?wd=${t.textContent}`);break}case"twitter":{const t=e.getElementsByTagName("A"),s=t.length;for(let e=0;e<s;e++){let s=t[e];if(s.href.includes("spelling_expansion_revert_click")){const e=s.previousSibling;e&&(o=!0,n="http://twitter.com/?q="+/"([^\"]*)"/.exec(e.textContent)[1]);break}}break}case"yandex":if(o=!1,!(n=e.getElementsByTagName("A")).length){o=!0;const e=document.title,t=e.indexOf("—");n=`http://www.yandex.com/?text=${e.substr(0,t)}`}break;default:o=!1,n=e.getElementsByTagName("A")}return{customLink:o,suggestionLink:n}},i=t=>{if(t in e&&!n){let o;if(e[t].some(e=>{const t=document.querySelector(e);return!!t&&(o=t,!0)}),o){const{customLink:e,suggestionLink:r}=c(o,t);if(e||r&&r.length&&r[0].href){const t=e?r:r[0].href;t in s?s[t]?window.stop():a():chrome.runtime.sendMessage({action:"evaluateLinks",payload:t},e=>{e.found?(window.stop(),s[t]=!0,n=!0):(a(),s[t]=!1,n=!0)})}else a()}else a()}},u=e=>{if(e&&e.isSearchQuery&&e.matchSearchSuggestion)if(o.includes(e.searchEngine)){const t={subtree:!0,childList:!0},o=new MutationObserver(()=>{i(e.searchEngine)});o.observe(document.documentElement,t),r=!0,document.addEventListener("beforeunload",()=>{o.disconnect(),r=!1})}else i(e.searchEngine);else a()},m=()=>{let e=location.href,t={};if(/^.*\/\/(.+\.youtube\..+?)\//.exec(e)){t={action:"get_safesearch_config"};try{chrome.runtime.sendMessage(t,e=>{console.log("get_safesearch_config has been sent"),console.log("safesearch is "+e.safesearch),1==e.safesearch&&/PREF=/.test(document.cookie)&&("; "+document.cookie).split("; ").forEach(e=>{/^PREF=/.test(e)&&!/f2=8000000/.test(e)&&(e+="&f2=8000000;",document.cookie=e)})})}catch(e){console.debug(`Error when sending message: ${e}.`)}}try{chrome.runtime.sendMessage({action:"isSearchQuery"},u)}catch(e){console.debug(`Error when sending message: ${e}.`)}},l=()=>{document.onmousemove=(e=>{let t={action:"mouse_move",url:e.currentTarget.URL};chrome.runtime.sendMessage(t,e=>{chrome.runtime.lastError})}),document.onmousewheel=(e=>{let t={action:"mouse_wheel",url:e.currentTarget.URL};chrome.runtime.sendMessage(t,e=>{chrome.runtime.lastError})}),document.onkeydown=(e=>{let t={action:"mouse_move",url:e.currentTarget.URL};chrome.runtime.sendMessage(t,e=>{chrome.runtime.lastError})})};(init=(()=>{const e=location.href,o=t.length;for(let n=0;n<o;n++)if(t[n].test(e)){document.documentElement.style.visibility="hidden";break}document.addEventListener("DOMContentLoaded",m),document.onmousemove=(e=>{let t={action:"mouse_move",url:e.currentTarget.URL};chrome.runtime.sendMessage(t,e=>{chrome.runtime.lastError})}),document.onmousewheel=(e=>{let t={action:"mouse_wheel",url:e.currentTarget.URL};chrome.runtime.sendMessage(t,e=>{chrome.runtime.lastError})}),document.onkeydown=(e=>{let t={action:"mouse_move",url:e.currentTarget.URL};chrome.runtime.sendMessage(t,e=>{chrome.runtime.lastError})}),chrome.runtime.onMessage.addListener(e=>{r||u(e)}),console.log("FortiClient Chromebook WebFilter Loaded")}))();