mirror of
https://github.com/Oreolek/TrackMeNot-Chrome.git
synced 2024-06-17 07:21:08 +03:00
Fix borken buttons, DHS list and other bugs
This commit is contained in:
parent
52ac38c9f0
commit
ecfb808e47
BIN
icon16.png
Normal file
BIN
icon16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
BIN
icon32.png
Normal file
BIN
icon32.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
|
@ -2,6 +2,8 @@
|
|||
"manifest_version": 2,
|
||||
"name": "TrackMeNot",
|
||||
"version": "0.8.3",
|
||||
"icons": { "16": "icon16.png",
|
||||
"48": "icon32.png"},
|
||||
"description": "TMN portage on Chrome",
|
||||
"browser_action": {
|
||||
"default_icon": "tmn.png",
|
||||
|
@ -20,7 +22,7 @@
|
|||
}
|
||||
],
|
||||
"permissions": [
|
||||
"tabs","https://*/*","webNavigation","storage"
|
||||
"tabs","https://*/*","http://*/*","webNavigation","storage"
|
||||
]
|
||||
}
|
||||
|
||||
|
|
|
@ -12,11 +12,14 @@ TRACKMENOT.Menus = function() {
|
|||
|
||||
function _cout (msg) { console.log(msg); }
|
||||
|
||||
function showHelp() {
|
||||
window.open("http://www.cs.nyu.edu/trackmenot/faq.html")
|
||||
}
|
||||
|
||||
|
||||
return {
|
||||
|
||||
showHelp: function() {
|
||||
window.open("http://www.cs.nyu.edu/trackmenot/faq.html")
|
||||
},
|
||||
|
||||
toggleOnOff: function() {
|
||||
options.enabled = !options.enabled
|
||||
if( !options.enabled) tmn._stopTMN();
|
||||
|
@ -28,8 +31,8 @@ TRACKMENOT.Menus = function() {
|
|||
|
||||
toggleTabFrame: function() {
|
||||
options.useTab = !options.useTab
|
||||
tmn.changeTabStatus(options.useTab);
|
||||
tmn.saveOptions();
|
||||
tmn._changeTabStatus(options.useTab);
|
||||
tmn._saveOptions();
|
||||
TRACKMENOT.Menus.onLoadMenu();
|
||||
},
|
||||
|
||||
|
@ -58,8 +61,9 @@ TRACKMENOT.Menus = function() {
|
|||
}();
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
$("#trackmenot-menu-useTab").click(TRACKMENOT.Menus.toggleTabFrame);
|
||||
$("#trackmenot-menu-useTab").click(TRACKMENOT.Menus.toggleTabFrame);
|
||||
$("#trackmenot-enabled").click(TRACKMENOT.Menus.toggleOnOff);
|
||||
$("#trackmenot-menu-win").click(function() { window.open(chrome.extension.getURL('options.html'));});
|
||||
$("#trackmenot-menu-help").click(TRACKMENOT.Menus.showHelp)
|
||||
TRACKMENOT.Menus.onLoadMenu()
|
||||
});
|
||||
|
|
121
option-script.js
121
option-script.js
|
@ -3,12 +3,16 @@ var tmn_options ={};
|
|||
var tmn = chrome.extension.getBackgroundPage().TRACKMENOT.TMNSearch;
|
||||
var options = null;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function loadHandlers() {
|
||||
$("#apply-options").click( function() {
|
||||
tmn_options = {"options":saveOptions()};
|
||||
TMNSetOptionsMenu(tmn_options);
|
||||
alert("Configuration saved");
|
||||
chrome.runtime.sendMessage({'tmn':"TMNSaveOptions",'option':tmn_options.options});
|
||||
alert("Configuration saved");
|
||||
TMNSetOptionsMenu(tmn_options);
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -16,15 +20,10 @@ function loadHandlers() {
|
|||
$("#add-engine-table").show();
|
||||
}
|
||||
);
|
||||
$("#show-log").click( function() {
|
||||
chrome.runtime.sendMessage({'tmn':"TMNOptionsShowLog"});
|
||||
}
|
||||
);
|
||||
$("#show-log").click( TMNShowLog );
|
||||
|
||||
$("#trackmenot-opt-showqueries").click( TMNShowQueries);
|
||||
|
||||
$("#trackmenot-opt-showqueries").click( function() {
|
||||
chrome.runtime.sendMessage({'tmn':"TMNOptionsShowQueries"});
|
||||
}
|
||||
);
|
||||
|
||||
$("#validate-feed").click( function() {
|
||||
var feeds = $("#trackmenot-seed").val();
|
||||
|
@ -33,17 +32,23 @@ function loadHandlers() {
|
|||
}
|
||||
);
|
||||
|
||||
$("#clear-log").click( function() {
|
||||
chrome.runtime.sendMessage({'tmn':"TMNOptionsClearLog"});
|
||||
}
|
||||
);
|
||||
$("#clear-log").click( TMNClearLogs );
|
||||
|
||||
|
||||
|
||||
|
||||
$("#search-engine-list").on('click', 'button.smallbutton', function(event) {
|
||||
$("#search-engine-list").on('click', 'button.smallbutton', function(event) {
|
||||
var del_engine = event.target.id.split("_").pop();
|
||||
chrome.runtime.sendMessage({'tmn':"TMNDelEngine",'engine':del_engine});
|
||||
});
|
||||
});
|
||||
|
||||
$("#help-faq").click( function() {
|
||||
window.open('http://cs.nyu.edu/trackmenot/faq.html#options')
|
||||
});
|
||||
|
||||
$("#main-site").click( function() {
|
||||
window.open('http://cs.nyu.edu/trackmenot')
|
||||
});
|
||||
|
||||
|
||||
$("#add-engine").click( function() {
|
||||
|
@ -95,10 +100,13 @@ function setFrequencyMenu(timeout){
|
|||
|
||||
|
||||
|
||||
|
||||
function TMNClearLogs() {
|
||||
tmn._clearLogs();
|
||||
TMNShowLog();
|
||||
}
|
||||
|
||||
function TMNShowLog(tmnlogs) {
|
||||
var logs = tmnlogs.logs
|
||||
function TMNShowLog() {
|
||||
var logs = tmn._getLogs()
|
||||
var htmlStr = '<table witdh=500 cellspacing=3 bgcolor=white frame=border>';
|
||||
htmlStr += '<thead><tr align=left>';
|
||||
htmlStr += '<th>Engine</th>';
|
||||
|
@ -139,14 +147,64 @@ function TMNShowEngines(engines) {
|
|||
$('#search-engine-list').html(htmlStr);
|
||||
}
|
||||
|
||||
function TMNShowQueries(param) {
|
||||
var queries = param.queries.split(',');
|
||||
var htmlStr = '<table witdh=500 cellspacing=3 bgcolor=white frame=border>';
|
||||
for (var i=0; i< 3000 && i<queries.length ; i++) {
|
||||
htmlStr += '<tr style="color:Black">';
|
||||
htmlStr += '<td>' +queries[i]+ '<td>'
|
||||
htmlStr += '</tr>';
|
||||
function TMNShowQueries() {
|
||||
var sources = tmn._getAllQueries();
|
||||
var htmlStr = '<a href="#dhs">DHS</a> | <a href="#rss"> RSS </a> | <a href="#popular"> Popular </a>|<a href="#extracted"> Extracted</a>'
|
||||
htmlStr += '<div style="height:1000px;overflow:auto;"><table witdh=500 cellspacing=3 bgcolor=white frame=border>';
|
||||
if ( sources.dhs ) {
|
||||
htmlStr += '<tr style="color:Black" bgcolor=#D6E0E0 align=center>';
|
||||
htmlStr += '<td > DHS Monitored <td>';
|
||||
htmlStr += '<a name="dhs"></a>';
|
||||
htmlStr += '</tr>';
|
||||
for (var i=0; i<sources.dhs.length ; i++) {
|
||||
htmlStr += '<tr style="color:Black" bgcolor=#F0F0F0 align=center>';
|
||||
htmlStr += '<td>' +sources.dhs[i].category_name+ '<td>'
|
||||
htmlStr += '</tr>';
|
||||
for (var j=0; j< sources.dhs[i].words.length ; j++) {
|
||||
htmlStr += '<tr style="color:Black">';
|
||||
htmlStr += '<td>' +sources.dhs[i].words[j]+ '<td>'
|
||||
htmlStr += '</tr>';
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( sources.rss ) {
|
||||
htmlStr += '<tr style="color:Black" bgcolor=#D6E0E0 align=center>';
|
||||
htmlStr += '<td > RSS <td>';
|
||||
htmlStr += '<a name="rss"></a>';
|
||||
htmlStr += '</tr>';
|
||||
for (var i=0; i<sources.rss.length ; i++) {
|
||||
htmlStr += '<tr style="color:Black" bgcolor=#F0F0F0 align=center>';
|
||||
htmlStr += '<td>' +sources.rss[i].name+ '<td>'
|
||||
htmlStr += '</tr>';
|
||||
for (var j=0; j< sources.rss[i].words.length ; j++) {
|
||||
htmlStr += '<tr style="color:Black">';
|
||||
htmlStr += '<td>' +sources.rss[i].words[j]+ '<td>'
|
||||
htmlStr += '</tr>';
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( sources.zeitgeist ) {
|
||||
htmlStr += '<tr style="color:Black" bgcolor=#D6E0E0 align=center>';
|
||||
htmlStr += '<td > Popular <td>'
|
||||
htmlStr += '<a name="popular"></a>';
|
||||
htmlStr += '</tr>';
|
||||
for (var i=0; i< sources.zeitgeist.length ; i++) {
|
||||
htmlStr += '<tr style="color:Black">';
|
||||
htmlStr += '<td>' +sources.zeitgeist[i]+ '<td>'
|
||||
htmlStr += '</tr>';
|
||||
}
|
||||
}
|
||||
if ( sources.extracted ) {
|
||||
htmlStr += '<tr style="color:Black" bgcolor=#D6E0E0 align=center>';
|
||||
htmlStr += '<td > Extracted <td>';
|
||||
htmlStr += '<a name="extracted"></a>';
|
||||
htmlStr += '</tr>';
|
||||
for (var i=0; i<sources.extracted.length ; i++) {
|
||||
htmlStr += '<tr style="color:Black" bgcolor=#F0F0F0 align=center>';
|
||||
htmlStr += '<td>' +sources.extracted[i]+ '<td>'
|
||||
htmlStr += '</tr>';
|
||||
}
|
||||
}
|
||||
htmlStr += '</table>';
|
||||
$('#tmn_logs_container').html(htmlStr);
|
||||
}
|
||||
|
@ -180,17 +238,18 @@ function saveOptions() {
|
|||
|
||||
function handleRequest(request, sender, sendResponse) {
|
||||
if (!request.options) return;
|
||||
|
||||
switch (request.options) {
|
||||
case "TMNSetOptionsMenu":
|
||||
TMNSetOptionsMenu(request.param);
|
||||
sendResponse({})
|
||||
break;
|
||||
case "TMNSendLogs":
|
||||
TMNShowLog(request.param.logs);
|
||||
TMNShowLog(request.param);
|
||||
sendResponse({})
|
||||
break;
|
||||
case "TMNSendQueries":
|
||||
TMNShowQueries(request.param.queries);
|
||||
TMNShowQueries(request.param);
|
||||
sendResponse({})
|
||||
break;
|
||||
case "TMNSendEngines":
|
||||
|
@ -204,6 +263,10 @@ function handleRequest(request, sender, sendResponse) {
|
|||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
TMNShowEngines(tmn._getTargetEngines());
|
||||
TMNSetOptionsMenu();
|
||||
|
@ -213,7 +276,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||
|
||||
|
||||
|
||||
chrome.runtime.onMessage.addListener(handleRequest);
|
||||
chrome.runtime.onMessage.addListener(function(){handleRequest()});
|
||||
/*
|
||||
self.port.on("TMNSetOptionsMenu",TMNSetOptionsMenu)
|
||||
self.port.on("TMNSendLogs",TMNShowLog)
|
||||
|
|
File diff suppressed because one or more lines are too long
185
tmn_search.js
185
tmn_search.js
|
@ -136,7 +136,7 @@ TRACKMENOT.TMNInjected = function() {
|
|||
}
|
||||
function debug (msg) {
|
||||
if (debug_script)
|
||||
console.log("Debug: "+msg);
|
||||
console.log("Debug: "+msg);
|
||||
}
|
||||
|
||||
function getEngineById( id) {
|
||||
|
@ -158,18 +158,15 @@ TRACKMENOT.TMNInjected = function() {
|
|||
|
||||
function pressEnter(elt) {
|
||||
var timers = getTimingArray();
|
||||
var evtDown = document.createEvent("KeyboardEvent");
|
||||
evtDown.initKeyboardEvent( "keydown", true, true, document.defaultView, false, false, false, false, 13, 0 );
|
||||
var evtDown = new KeyboardEvent("keydown", {"keyCode":13} );
|
||||
window.setTimeout(function(){
|
||||
elt.dispatchEvent(evtDown);
|
||||
},timers[0])
|
||||
var evtPress= document.createEvent("KeyboardEvent");
|
||||
evtPress.initKeyboardEvent( "keypress", true, true, document.defaultView, false, false, false, false, 13, 0 );
|
||||
var evtPress = new KeyboardEvent("keypress", {"keyCode":13} );
|
||||
window.setTimeout(function(){
|
||||
elt.dispatchEvent(evtPress);
|
||||
},timers[1])
|
||||
var evtUp = document.createEvent("KeyboardEvent");
|
||||
evtUp.initKeyboardEvent( "keyup", true, true, document.defaultView, false, false, false, false, 13, 0 );
|
||||
var evtUp = new KeyboardEvent("keyup", {"keyCode":13} );
|
||||
window.setTimeout(function(){
|
||||
elt.dispatchEvent(evtUp);
|
||||
},timers[2])
|
||||
|
@ -181,15 +178,13 @@ TRACKMENOT.TMNInjected = function() {
|
|||
|
||||
function downKey(chara, searchBox) {
|
||||
var charCode = chara[chara.length-1].charCodeAt(0)
|
||||
var evtDown = document.createEvent("KeyboardEvent");
|
||||
evtDown.initKeyboardEvent( "keydown", true, true, document.defaultView, false, false, false, false, 0, charCode );
|
||||
var evtDown = new KeyboardEvent("keydown", {"charCode":charCode} );
|
||||
searchBox.dispatchEvent(evtDown)
|
||||
}
|
||||
|
||||
function pressKey(chara, searchBox) {
|
||||
var charCode = chara[chara.length-1].charCodeAt(0)
|
||||
var evtPress = document.createEvent("KeyboardEvent");
|
||||
evtPress.initKeyboardEvent( "keypress", true, true, document.defaultView, false, false, false, false, 0, charCode );
|
||||
var evtPress = new KeyboardEvent("keypress", {"charCode":charCode} );
|
||||
searchBox.dispatchEvent(evtPress)
|
||||
}
|
||||
|
||||
|
@ -199,11 +194,11 @@ TRACKMENOT.TMNInjected = function() {
|
|||
searchBox.dispatchEvent(ev);
|
||||
}
|
||||
|
||||
function releaseKey(chara, searchBox) {
|
||||
var charCode = chara[chara.length-1].charCodeAt(0)
|
||||
var evtUp = document.createEvent("KeyboardEvent");
|
||||
evtUp.initKeyboardEvent( "keyup", true, true, document.defaultView, false, false, false, false, 0, charCode );
|
||||
searchBox.dispatchEvent(evtUp)
|
||||
function releaseKey(chara, searchBox) {
|
||||
var charCode = chara[chara.length - 1].charCodeAt(0);
|
||||
var evtUp = new KeyboardEvent("keyup", {"charCode":charCode} );
|
||||
//evtUp.initKeyEvent("keyup", true, true, null, false, false, false, false, 0, charCode);
|
||||
searchBox.dispatchEvent(evtUp);
|
||||
}
|
||||
|
||||
function simulateClick( engine ) {
|
||||
|
@ -252,7 +247,6 @@ TRACKMENOT.TMNInjected = function() {
|
|||
var button = getButton(document)
|
||||
clickElt(button);
|
||||
debug("send page loaded")
|
||||
sendPageLoaded();
|
||||
}
|
||||
|
||||
|
||||
|
@ -484,60 +478,54 @@ TRACKMENOT.TMNInjected = function() {
|
|||
}
|
||||
}
|
||||
|
||||
function updateURLRegexp( eng, url) {
|
||||
//function updateURLRegexp( eng, url) {
|
||||
|
||||
var pre = result[1];
|
||||
var query = result[2];
|
||||
var post = result[3];
|
||||
var eng = result[4];
|
||||
var asearch = pre+'|'+post;
|
||||
if (!tmn_tab || worker.tab.index != tmn_tab.index ) {
|
||||
debug("Worker find a match for url: "+ url + " on engine "+ eng +"!")
|
||||
if (burstEnabled) enterBurst ( eng )
|
||||
var engine = getEngineById(eng)
|
||||
if ( engine && engine.urlmap != asearch ) {
|
||||
engine.urlmap = asearch;
|
||||
chrome.storage.set({engines :JSON.stringify(engines)}) ;
|
||||
var logEntry = createLog('URLmap', eng, null,null,null, asearch)
|
||||
log(logEntry);
|
||||
debug("Updated url fr search engine "+ eng + ", new url is "+asearch);
|
||||
}
|
||||
}
|
||||
|
||||
var regex = regexMap[eng];
|
||||
cout(" regex: "+regex+" ->\n "+url);
|
||||
result = url.match(regex);
|
||||
cout("updateURLRegexp")
|
||||
if (!result) {
|
||||
cout("Can't find a regexp matching searched url")
|
||||
return false;
|
||||
}
|
||||
|
||||
if (result.length !=4 ){
|
||||
if (result.length ==6 && eng == "google" ) {
|
||||
result.splice(2,2);
|
||||
result.push(eng);
|
||||
}
|
||||
cout("REGEX_ERROR: "+url);
|
||||
for (var i in result)
|
||||
cout(" **** "+i+")"+result[i])
|
||||
}
|
||||
//var result = checkForSearchUrl(url);
|
||||
//if (!result) {
|
||||
//return;
|
||||
//}
|
||||
|
||||
// -- EXTRACT DATA FROM THE URL
|
||||
var pre = result[1];
|
||||
var post = result[3];
|
||||
var asearch = pre+'|'+post;
|
||||
|
||||
|
||||
if(eng=="google" && !url.match("^(https?:\/\/[a-z]+\.google\.(co\\.|com\\.)?[a-z^\/]{2,3}\/(search){1}\?.*?[&\?]{1}q=)([^&]*)(.*)$") || url.indexOf("sclient=psy-ab")>0 || url.indexOf("#")>0 )
|
||||
return true;
|
||||
// -- NEW SEARCH URL: ADD TO USER_MAP
|
||||
if (asearch ){
|
||||
setCurrentURLMap(eng, asearch);
|
||||
}
|
||||
//var pre = result[1];
|
||||
//var query = result[2];
|
||||
//var post = result[3];
|
||||
//var eng = result[4];
|
||||
//var asearch = pre+'|'+post;
|
||||
|
||||
|
||||
//var regex = regexMap[eng];
|
||||
//cout(" regex: "+regex+" ->\n "+url);
|
||||
//result = url.match(regex);
|
||||
//cout("updateURLRegexp")
|
||||
//if (!result) {
|
||||
//cout("Can't find a regexp matching searched url")
|
||||
//return false;
|
||||
//}
|
||||
|
||||
return true;
|
||||
}
|
||||
//if (result.length !=4 ){
|
||||
//if (result.length ==6 && eng == "google" ) {
|
||||
//result.splice(2,2);
|
||||
//result.push(eng);
|
||||
//}
|
||||
//cout("REGEX_ERROR: "+url);
|
||||
//for (var i in result)
|
||||
//cout(" **** "+i+")"+result[i])
|
||||
//}
|
||||
|
||||
//// -- EXTRACT DATA FROM THE URL
|
||||
//var pre = result[1];
|
||||
//var post = result[3];
|
||||
//var asearch = pre+'|'+post;
|
||||
|
||||
|
||||
//if(eng=="google" && !url.match("^(https?:\/\/[a-z]+\.google\.(co\\.|com\\.)?[a-z^\/]{2,3}\/(search){1}\?.*?[&\?]{1}q=)([^&]*)(.*)$") || url.indexOf("sclient=psy-ab")>0 || url.indexOf("#")>0 )
|
||||
//return true;
|
||||
//// -- NEW SEARCH URL: ADD TO USER_MAP
|
||||
//if (asearch ){
|
||||
//setCurrentURLMap(eng, asearch);
|
||||
//}
|
||||
|
||||
//return true;
|
||||
//}
|
||||
|
||||
|
||||
function checkForSearchUrl(url) {
|
||||
|
@ -584,11 +572,13 @@ TRACKMENOT.TMNInjected = function() {
|
|||
|
||||
|
||||
function sendPageLoaded() {
|
||||
var req = {
|
||||
tmn: "pageLoaded",
|
||||
html: document.defaultView.document.body.innerHTML
|
||||
}
|
||||
chrome.runtime.sendMessage(req);
|
||||
document.addEventListener('load', function () {
|
||||
var req = {
|
||||
"tmn": "pageLoaded",
|
||||
"html": document.defaultView.document.body.innerHTML
|
||||
}
|
||||
chrome.runtime.sendMessage(req);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
@ -598,7 +588,7 @@ TRACKMENOT.TMNInjected = function() {
|
|||
|
||||
function updateStatus(msg) {
|
||||
var req = {
|
||||
updateStatus: msg
|
||||
"updateStatus": msg
|
||||
}
|
||||
chrome.runtime.sendMessage(req);
|
||||
}
|
||||
|
@ -613,9 +603,9 @@ TRACKMENOT.TMNInjected = function() {
|
|||
|
||||
function notifyUserSearch(eng, url) {
|
||||
// Here we update the regecxpfpor the queried engine
|
||||
updateURLRegexp(eng, url);
|
||||
//updateURLRegexp(eng, url);
|
||||
chrome.runtime.sendMessage({
|
||||
userSearch: eng
|
||||
"userSearch": eng
|
||||
} );
|
||||
}
|
||||
|
||||
|
@ -632,24 +622,26 @@ TRACKMENOT.TMNInjected = function() {
|
|||
tmnCurrentURL= url;
|
||||
debug("Current TMN loc: "+ tmnCurrentURL )
|
||||
var message = {
|
||||
url: tmnCurrentURL
|
||||
"url": tmnCurrentURL
|
||||
};
|
||||
chrome.runtime.sendMessage( message);
|
||||
sendPageLoaded();
|
||||
}
|
||||
|
||||
|
||||
function clickResult(request) {
|
||||
cout("Clicking on engine : "+request.tmn_engine )
|
||||
simulateClick(request.tmn_engine);
|
||||
}
|
||||
|
||||
|
||||
return {
|
||||
|
||||
|
||||
clickResult : function(request) {
|
||||
cout("Clicking on engine : "+request.tmn_engine )
|
||||
simulateClick(request.tmn_engine);
|
||||
},
|
||||
|
||||
|
||||
handleRequest : function(request, sender, sendResponse) {
|
||||
debug("Received: "+ request.tmnQuery + " on engine: "+ request.tmnEngine + " mode: " +request.tmnMode)
|
||||
//debug("Received: "+ request.tmnQuery + " on engine: "+ request.tmnEngine + " mode: " +request.tmnMode)
|
||||
if (request.tmnQuery) {
|
||||
var tmn_query = request.tmnQuery;
|
||||
engine = request.tmnEngine;
|
||||
|
@ -663,22 +655,27 @@ TRACKMENOT.TMNInjected = function() {
|
|||
setTMNCurrentURL(encodedurl);
|
||||
}
|
||||
}
|
||||
if (request.tmn_engine) {
|
||||
clickResult(request)
|
||||
}
|
||||
return; // snub them.
|
||||
} ,
|
||||
|
||||
|
||||
|
||||
|
||||
checkIsActiveTab : function() {
|
||||
chrome.runtime.sendMessage({
|
||||
tmn: "isActiveTab"
|
||||
}, function(response) {
|
||||
if (response.isActive){
|
||||
cout('Message sent from active tab');
|
||||
}, function(resp) {
|
||||
if (!resp)
|
||||
return
|
||||
if (resp.isActive){
|
||||
TRACKMENOT.TMNInjected.hasLoaded();
|
||||
} else {
|
||||
var host = window.location.host;
|
||||
var eng = isSafeHost(host);
|
||||
if ( eng ) {
|
||||
cout('User search detected!!');
|
||||
notifyUserSearch(eng, window.location.href);
|
||||
}
|
||||
}
|
||||
|
@ -692,8 +689,16 @@ TRACKMENOT.TMNInjected = function() {
|
|||
window.stop();
|
||||
//history.go(-1);
|
||||
}
|
||||
// sendPageLoaded();
|
||||
//sendPageLoaded();
|
||||
getTMNCurrentURL();
|
||||
window.addEventListener('load', function () {
|
||||
var req = {
|
||||
"tmn": "pageLoaded",
|
||||
"html": document.defaultView.document.body.innerHTML,
|
||||
"url" : document.location
|
||||
}
|
||||
chrome.runtime.sendMessage(req);
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
|
@ -702,5 +707,7 @@ TRACKMENOT.TMNInjected = function() {
|
|||
TRACKMENOT.TMNInjected.checkIsActiveTab();
|
||||
chrome.runtime.onMessage.addListener( TRACKMENOT.TMNInjected.handleRequest );
|
||||
|
||||
/*self.port.on("TMNTabRequest", TRACKMENOT.TMNInjected.handleRequest );
|
||||
self.port.on("TMNClickResult", TRACKMENOT.TMNInjected.clickResult );*/
|
||||
|
||||
|
||||
/*self.port.on("TMNTabRequest", TRACKMENOT.TMNInjected.handleRequest );
|
||||
self.port.on("TMNClickResult", TRACKMENOT.TMNInjected.clickResult );*/
|
||||
|
|
301
trackmenot.js
301
trackmenot.js
|
@ -13,21 +13,6 @@
|
|||
You should have received a copy of the GNU General Public License
|
||||
along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
********************************************************************************/
|
||||
/*var Request = require("request").Request;
|
||||
var tabs = require('tabs');
|
||||
var URL = require("url").URL;
|
||||
var data = require("self").data;
|
||||
var ss = require("simple-storage");
|
||||
var widgets = require("widget");
|
||||
var panels = require("panel");
|
||||
var pageMod = require("page-mod");
|
||||
var timer = require("timer");
|
||||
var {Cc, Ci} = require("chrome");
|
||||
var prefs = require("sdk/preferences/service");
|
||||
var windows = require("windows").browserWindows;
|
||||
var notifications = require("notifications");
|
||||
var _ = require("l10n").get;
|
||||
var sp = require("sdk/simple-prefs");*/
|
||||
|
||||
|
||||
var _ = chrome.i18n.getMessage;
|
||||
|
@ -42,6 +27,7 @@ TRACKMENOT.TMNSearch = function() {
|
|||
var enabled = true;
|
||||
var debug_ = true;
|
||||
var load_full_pages = false;
|
||||
var last_url = "";
|
||||
var stop_when = "start"
|
||||
var useIncrementals = true;
|
||||
var incQueries = [];
|
||||
|
@ -197,7 +183,7 @@ var engines = [
|
|||
|
||||
|
||||
function updateEngineList() {
|
||||
chrome.storage.set({engines : JSON.stringify(engines)}) ;
|
||||
chrome.storage.local.set({engines : JSON.stringify(engines)}) ;
|
||||
sendMessageToOptionScript("TMNSendEngines",engines);
|
||||
sendOptionToTab();
|
||||
}
|
||||
|
@ -214,7 +200,7 @@ var engines = [
|
|||
|
||||
|
||||
function sendMessageToPanelScript(title, message) {
|
||||
hrome.runtime.sendMessage(title,message)
|
||||
chrome.runtime.sendMessage(title,message)
|
||||
}
|
||||
|
||||
function handleMessageFromPanelScript(title, handler) {
|
||||
|
@ -223,22 +209,6 @@ var engines = [
|
|||
|
||||
|
||||
|
||||
function sendLogToOption() {
|
||||
sendMessageToOptionScript("TMNSendLogs",{logs:tmnLogs})
|
||||
}
|
||||
|
||||
function sendQueriesToOption() {
|
||||
var allqueries = "";
|
||||
for ( var arr of TMNQueries) {
|
||||
if (arr && arr.length) {
|
||||
for (var elt of arr)
|
||||
if ( elt&& elt.words && elt.words.length) allqueries+= elt.words.join(',');
|
||||
else allqueries+= elt+",";
|
||||
}
|
||||
}
|
||||
sendMessageToOptionScript("TMNSendQueries",{queries:allqueries})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -340,7 +310,6 @@ var engines = [
|
|||
}
|
||||
|
||||
function deleteTab() {
|
||||
if (!useTabe ) return;
|
||||
chrome.tabs.remove(tmn_tab_id);
|
||||
tmn_tab_id = -1;
|
||||
}
|
||||
|
@ -350,12 +319,12 @@ var engines = [
|
|||
if(debug) cout('Creating tab for TrackMeNot')
|
||||
try {
|
||||
chrome.tabs.create({
|
||||
'selected': false,
|
||||
'active': false,
|
||||
'url': 'http://www.google.com'
|
||||
},iniTab);
|
||||
return 1;
|
||||
} catch (ex) {
|
||||
cerr('Can no create TMN tab:' , ex);
|
||||
cerr('Can not create TMN tab:' , ex);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -499,10 +468,10 @@ var engines = [
|
|||
if (tmn_tab_id == -1 || tab_id != tmn_tab_id ) {
|
||||
debug("Worker find a match for url: "+ url + " on engine "+ eng +"!")
|
||||
if (burstEnabled) enterBurst ( eng )
|
||||
var engine = getEngineById(eng)
|
||||
if ( engine && engine.urlmap != asearch ) {
|
||||
engine.urlmap = asearch;
|
||||
chrome.storage.set({engines :JSON.stringify(engines)}) ;
|
||||
var updated_SE = getEngineById(eng)
|
||||
if ( updated_SE && updated_SE.urlmap != asearch ) {
|
||||
updated_SE.urlmap = asearch;
|
||||
chrome.storage.local.set({engines :JSON.stringify(engines)}) ;
|
||||
var logEntry = createLog('URLmap', eng, null,null,null, asearch)
|
||||
log(logEntry);
|
||||
debug("Updated url fr search engine "+ eng + ", new url is "+asearch);
|
||||
|
@ -517,7 +486,7 @@ var engines = [
|
|||
for (var i=0;i< engines.length; i++){
|
||||
var eng = engines[i]
|
||||
var regex = eng.regexmap;
|
||||
debug(" regex: "+regex+" ->\n "+url);
|
||||
//debug(" regex: "+regex+" ->\n "+url);
|
||||
result = url.match(regex);
|
||||
|
||||
if (result) {
|
||||
|
@ -577,9 +546,12 @@ var engines = [
|
|||
function validateFeeds(param) {
|
||||
TMNQueries.rss = [];
|
||||
feedList= param.feeds;
|
||||
cout("Validating the feeds: "+ feedList)
|
||||
var feeds = feedList.split('|');
|
||||
for (var i=0;i<feeds.length;i++)
|
||||
for (var i=0;i<feeds.length;i++) {
|
||||
cout(" Fetching " + feeds[i])
|
||||
doRssFetch(feeds[i]);
|
||||
}
|
||||
saveOptions();
|
||||
}
|
||||
|
||||
|
@ -711,7 +683,7 @@ var engines = [
|
|||
var feedObject = {};
|
||||
feedObject.name = feedTitles[0].firstChild.nodeValue;
|
||||
feedObject.words = [];
|
||||
cout('ADD RSS title : '+ feedTitles[0].firstChild.nodeValue);
|
||||
//cout('ADD RSS title : '+ feedTitles[0].firstChild.nodeValue);
|
||||
for (var i=1; i<feedTitles.length; i++){
|
||||
if ( feedTitles[i].firstChild ) {
|
||||
rssTitles = feedTitles[i].firstChild.nodeValue;
|
||||
|
@ -720,7 +692,7 @@ var engines = [
|
|||
var queryToAdd = filterKeyWords(rssTitles, feedUrl);
|
||||
addQuery(queryToAdd,feedObject.words);
|
||||
}
|
||||
cout(feedObject.name + " : " + feedObject.words)
|
||||
//cout(feedObject.name + " : " + feedObject.words)
|
||||
TMNQueries.rss.push(feedObject);
|
||||
|
||||
return 1;
|
||||
|
@ -730,56 +702,35 @@ var engines = [
|
|||
function readDHSList() {
|
||||
TMNQueries.dhs = [];
|
||||
var i = 0;
|
||||
var req = Request({
|
||||
url: data.url("dhs_keywords.json"),
|
||||
overrideMimeType: "application/json",
|
||||
onComplete: function (response) {
|
||||
if (response.status ==200 ) {
|
||||
var keywords = response.json.keywords;
|
||||
for (var cat of keywords) {
|
||||
TMNQueries.dhs[i] = {};
|
||||
TMNQueries.dhs[i].category_name = cat.category_name;
|
||||
TMNQueries.dhs[i].words = [];
|
||||
for (var word of cat.category_words)
|
||||
TMNQueries.dhs[i].words.push(word.name)
|
||||
i++;
|
||||
}
|
||||
return;
|
||||
} else {
|
||||
var logEntry = createLog('error', "Can not load DHS list");
|
||||
log(logEntry);
|
||||
}
|
||||
}
|
||||
});
|
||||
req.get();
|
||||
var req = new XMLHttpRequest();
|
||||
req.overrideMimeType("application/json");
|
||||
req.open('GET',chrome.extension.getURL("dhs_keywords.json"),true);
|
||||
req.onreadystatechange = function () {
|
||||
var response = JSON.parse(req.responseText);
|
||||
var keywords = response.keywords;
|
||||
for (var cat of keywords) {
|
||||
TMNQueries.dhs[i] = {};
|
||||
TMNQueries.dhs[i].category_name = cat.category_name;
|
||||
TMNQueries.dhs[i].words = [];
|
||||
for (var word of cat.category_words)
|
||||
TMNQueries.dhs[i].words.push(word.name)
|
||||
i++;
|
||||
}
|
||||
};
|
||||
req.send(null);
|
||||
}
|
||||
|
||||
|
||||
function doRssFetch(feedUrl){
|
||||
var req;
|
||||
try {
|
||||
req = new XMLHttpRequest();
|
||||
}
|
||||
catch (e) {
|
||||
try {
|
||||
req = new ActiveXObject('Msxml2.XMLHTTP');
|
||||
}
|
||||
catch (e) {
|
||||
try {
|
||||
req = new ActiveXObject('Microsoft.XMLHTTP');
|
||||
}
|
||||
catch (e) {
|
||||
console.log('XMLHttpRequest not supported');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
try {
|
||||
function doRssFetch(feedUrl){
|
||||
try {
|
||||
req = new XMLHttpRequest();
|
||||
req.open('GET', feedUrl, true);
|
||||
req.onreadystatechange = function(aEvt){
|
||||
req.onreadystatechange = function(){
|
||||
if (req.readyState == 4) {
|
||||
if (req.status == 200)
|
||||
if (req.status == 200) {
|
||||
cout(req.responseText)
|
||||
var adds = addRssTitles(req.responseXML, feedUrl);
|
||||
}
|
||||
}
|
||||
};
|
||||
req.send(null);
|
||||
|
@ -897,6 +848,7 @@ var engines = [
|
|||
|
||||
function sendQuery(queryToSend) {
|
||||
tmn_scheduledSearch = false;
|
||||
cout("Engin: "+engine)
|
||||
var url = getEngineById(engine).urlmap;
|
||||
var isIncr = (queryToSend == null);
|
||||
if (queryToSend == null){
|
||||
|
@ -924,10 +876,7 @@ var engines = [
|
|||
chrome.tabs.sendMessage( tmn_tab_id, TMNReq);
|
||||
debug('Message sent to the tab');
|
||||
} catch(ex) {
|
||||
cout("Error : "+ex)
|
||||
cout("Creating a new tab")
|
||||
deleteTab();
|
||||
window.setTimeout(function() {chrome.tabs.sendMessage( tmn_tab_id, TMNReq)},1000) ;
|
||||
rescheduleOnError();
|
||||
}
|
||||
|
||||
} else {
|
||||
|
@ -939,20 +888,23 @@ var engines = [
|
|||
if (xhr.readyState == 4) {
|
||||
clearTimeout(tmn_errTimeout);
|
||||
if (xhr.status >= 200 && xhr.status<400 ) {
|
||||
var logEntry = {
|
||||
type : 'query',
|
||||
engine : engine,
|
||||
mode : tmn_mode,
|
||||
query : queryToSend,
|
||||
id : tmn_id++
|
||||
};
|
||||
log(logEntry);
|
||||
reschedule();
|
||||
var html = xhr.responseText;
|
||||
extractQueries(html);
|
||||
} else {
|
||||
rescheduleOnError();
|
||||
var logEntry = JSON.stringify({
|
||||
'type' : 'query',
|
||||
"engine" : engine,
|
||||
'mode' : tmn_mode,
|
||||
'query' : queryToSend,
|
||||
'id' : tmn_id++
|
||||
});
|
||||
log(logEntry);
|
||||
}
|
||||
}
|
||||
}
|
||||
updateOnSend(queryToSend);
|
||||
xhr.send();
|
||||
currentTMNURL = queryURL;
|
||||
|
||||
|
@ -1023,7 +975,7 @@ var engines = [
|
|||
delay += delay*(Math.random()-.5);
|
||||
}
|
||||
}
|
||||
if (isBursting()) engine = burstEngine;
|
||||
if (isBursting()) engine = burstEngine;
|
||||
else engine = chooseEngine(searchEngines.split(','));
|
||||
debug('NextSearchScheduled on: '+engine);
|
||||
tmn_errTimeout = window.setTimeout(rescheduleOnError, delay*3);
|
||||
|
@ -1034,9 +986,9 @@ var engines = [
|
|||
if (!burstEnabled) return;
|
||||
cout("Entering burst mode for engine: "+burst_engine)
|
||||
var logMessage = {
|
||||
'type':'info',
|
||||
'message':'User made a search, start burst',
|
||||
'engine':burst_engine
|
||||
type:'info',
|
||||
message:'User made a search, start burst',
|
||||
engine:burst_engine
|
||||
} ;
|
||||
log(logMessage);
|
||||
burstEngine = burst_engine;
|
||||
|
@ -1191,11 +1143,10 @@ var engines = [
|
|||
}
|
||||
|
||||
function sendClickEvent() {
|
||||
try {
|
||||
worker_tab.port.emit("TMNClickResult",{"tmn_engine":getEngineById(prev_engine)});
|
||||
}catch(ex){
|
||||
cout(ex)
|
||||
}
|
||||
if ( prev_engine ) {
|
||||
cout("About to click on " + prev_engine)
|
||||
chrome.tabs.sendMessage(tmn_tab_id,{tmn_engine:getEngineById(prev_engine)});
|
||||
}
|
||||
}
|
||||
|
||||
function handleRequest(request, sender, sendResponse) {
|
||||
|
@ -1213,16 +1164,17 @@ var engines = [
|
|||
sendResponse({});
|
||||
return;
|
||||
}
|
||||
if (request.userSearch) {
|
||||
/*if (request.userSearch) {
|
||||
cout("Detected User search")
|
||||
enterBurst(request.userSearch);
|
||||
sendResponse({});
|
||||
return;
|
||||
}
|
||||
}*/
|
||||
if ( request.getURLMap) {
|
||||
var engine = request.getURLMap;
|
||||
var urlMap = currentUrlMap[engine];
|
||||
var tmp_engine = request.getURLMap;
|
||||
var urlMap = currentUrlMap[tmp_engine];
|
||||
sendResponse({
|
||||
url: urlMap
|
||||
"url": urlMap
|
||||
})
|
||||
return;
|
||||
}
|
||||
|
@ -1238,7 +1190,7 @@ var engines = [
|
|||
"engine" : eng,
|
||||
'newUrl' : asearch
|
||||
};
|
||||
TRACKMENOT.TMNSearch.log(logEntry);
|
||||
log(logEntry);
|
||||
sendResponse({});
|
||||
return;
|
||||
}
|
||||
|
@ -1246,17 +1198,27 @@ var engines = [
|
|||
switch (request.tmn) {
|
||||
case "currentURL":
|
||||
sendResponse({
|
||||
url: currentTMNURL
|
||||
"url": currentTMNURL
|
||||
})
|
||||
break;
|
||||
case "useTab" :
|
||||
sendResponse({
|
||||
tmnUseTab: useTab
|
||||
"tmnUseTab": useTab
|
||||
});
|
||||
break;
|
||||
case "pageLoaded": //Remove timer and then reschedule;
|
||||
case "pageLoaded": //Remove timer and then reschedule;
|
||||
if (last_url == request.url) break;
|
||||
else last_url = request.url
|
||||
prev_engine = engine;
|
||||
clearTimeout(tmn_errTimeout);
|
||||
if (Math.random() < 1) {
|
||||
sendClickEvent();
|
||||
}
|
||||
reschedule();
|
||||
try {
|
||||
var html = request.html;
|
||||
extractQueries(html);
|
||||
} catch (ex) {}
|
||||
sendResponse({});
|
||||
break;
|
||||
case "tmnError": //Remove timer and then reschedule;
|
||||
|
@ -1267,9 +1229,9 @@ var engines = [
|
|||
case "isActiveTab":
|
||||
var active = (!sender.tab || sender.tab.id==tmn_tab_id);
|
||||
cout("active: "+ active)
|
||||
sendResponse({
|
||||
isActive: active
|
||||
});
|
||||
sendResponse(
|
||||
{"isActive": active}
|
||||
);
|
||||
break;
|
||||
case "TMNSaveOptions":
|
||||
saveOptionFromTab(request.option);
|
||||
|
@ -1278,18 +1240,6 @@ var engines = [
|
|||
case "TMNResetOptions":
|
||||
resetOptions();
|
||||
sendResponse({});
|
||||
break;
|
||||
case "TMNOptionsShowLog":
|
||||
sendLogToOption();
|
||||
sendResponse({});
|
||||
break;
|
||||
case "TMNOptionsShowQueries":
|
||||
sendQueriesToOption();
|
||||
sendResponse({});
|
||||
break;
|
||||
case "TMNOptionsClearLog":
|
||||
clearLog();
|
||||
sendResponse({});
|
||||
break;
|
||||
case "TMNValideFeeds":
|
||||
validateFeeds(request.param);
|
||||
|
@ -1305,29 +1255,12 @@ var engines = [
|
|||
sendResponse({});
|
||||
break;
|
||||
default:
|
||||
sendResponse({}); // snub them.
|
||||
// snub them.
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* debug( "Recieved message: "+ request.tmn)
|
||||
switch (request.tmn) {
|
||||
case "pageLoaded": //Remove timer and then reschedule;
|
||||
prev_engine = engine;
|
||||
timer.clearTimeout(tmn_errTimeout);
|
||||
if (Math.random() < 0.3) {
|
||||
var time = roll(1000, 5000)
|
||||
timer.setTimeout(sendClickEvent , time);
|
||||
}
|
||||
reschedule();
|
||||
var html = request.html;
|
||||
extractQueries(html);
|
||||
break;
|
||||
default:
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
|
@ -1388,21 +1321,11 @@ return {
|
|||
}
|
||||
|
||||
|
||||
/* Firefox Block
|
||||
if (enabled) {
|
||||
widget.label = 'On'
|
||||
widget.tooltip = 'On';
|
||||
widget.port.emit("UpdateText", 'TMN: On')
|
||||
createTab();
|
||||
scheduleNextSearch(4000);
|
||||
} else {
|
||||
widget.label = 'Off'
|
||||
widget.tooltip = 'Off'
|
||||
widget.port.emit("UpdateText", 'TMN: Off')
|
||||
}*/
|
||||
|
||||
chrome.windows.onRemoved.addListener(function() {
|
||||
deleteTab();
|
||||
if (useTabe) {
|
||||
deleteTab();
|
||||
}
|
||||
if (!saveLogs)
|
||||
chrome.storage.local.set({"logs_tmn" : ""});
|
||||
});
|
||||
|
@ -1415,6 +1338,21 @@ return {
|
|||
return getOptions();
|
||||
},
|
||||
|
||||
_getLogs : function() {
|
||||
return tmnLogs;
|
||||
},
|
||||
|
||||
_clearLogs : function() {
|
||||
clearLog();
|
||||
},
|
||||
|
||||
_getAllQueries : function() {
|
||||
return TMNQueries;
|
||||
//sendMessageToOptionScript("TMNSendQueries",{queries:allqueries})
|
||||
},
|
||||
|
||||
|
||||
|
||||
_restartTMN:function() {
|
||||
return restartTMN();
|
||||
},
|
||||
|
@ -1438,7 +1376,40 @@ return {
|
|||
_saveOptions: function() {
|
||||
return saveOptions();
|
||||
},
|
||||
|
||||
_changeTabStatus: function(useT) {
|
||||
return changeTabStatus(useT);
|
||||
},
|
||||
|
||||
_hideTMNTab : function(tab_id) {
|
||||
if (tab_id == tmn_tab_id ) {
|
||||
cout('TMN tab has been selected by the user, hidding it');
|
||||
chrome.tabs.remove( tmn_tab_id );
|
||||
return;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
|
||||
_deleteTabWhenClosing : function(win_id) {
|
||||
if (useTabe && tmn_win_id == win_id ) {
|
||||
cout('TMN win has been closed by the user, close the tab');
|
||||
chrome.tabs.remove( tmn_tab_id );
|
||||
return;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
_preserveTMNTab : function(tab_id) {
|
||||
if (tab_id == tmn_tab_id && useTab ) {
|
||||
tmn_tab_id = -1;
|
||||
cout('TMN tab has been deleted by the user, reload it');
|
||||
createTab();
|
||||
return;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1453,6 +1424,6 @@ chrome.runtime.onMessage.addListener(TRACKMENOT.TMNSearch._handleRequest);
|
|||
|
||||
//chrome.tabs.onSelectionChanged.addListener(TRACKMENOT.TMNSearch._hideTMNTab);
|
||||
chrome.tabs.onRemoved.addListener(TRACKMENOT.TMNSearch._preserveTMNTab);
|
||||
chrome.windows.onRemoved.addListener(TRACKMENOT.TMNSearch._deleteTabWhenClosing);
|
||||
//chrome.windows.onRemoved.addListener(TRACKMENOT.TMNSearch._deleteTabWhenClosing);
|
||||
|
||||
TRACKMENOT.TMNSearch.startTMN();
|
||||
|
|
Loading…
Reference in a new issue