TabbedBrowser.js
[app.wkmirror] / inject.js
1 //file which parses document body
2
3 // is prototype insane?
4 try {
5     delete Array.prototype.toJSON;
6     delete Object.prototype.toJSON;
7
8     delete Hash.prototype.toJSON;
9     delete String.prototype.toJSON;
10 } catch (e) {
11     
12 }
13
14 BrowserMirror = {
15     gatherlinks : function () { 
16         var urls= [];
17         for (var i= document.links.length; i-->0;){
18             urls.push( {
19                 href: document.links[i].href,
20                 label : document.links[i].textContent
21             });
22             
23         }
24         console.log(JSON.stringify( {
25             requesturl : document.location.href, // buggy - we should return the requested path.
26             method: 'gatherlinks' ,
27             data : urls
28         }));
29           
30         //return urls;
31         
32     },
33     downloadhead : function (url) {
34         var xmlhttp = new XMLHttpRequest();
35                     
36         
37         xmlhttp.open("HEAD", url,true);
38         xmlhttp.onreadystatechange=function() {
39             if (xmlhttp.readyState==4) {
40                 console.log(
41                     JSON.stringify ({
42                         requesturl : url,
43                         method: 'downloadhead',
44                         headers : xmlhttp.getAllResponseHeaders(),
45                         contentType:xmlhttp.getResponseHeader("Content-Type"),
46                         data:''
47                     }));
48             }
49         }
50         
51         xmlhttp.send(null);
52            
53     },
54
55     downloadpage : function (url) {
56         
57        
58         var xmlhttp = new XMLHttpRequest();
59                     
60         xmlhttp.open("GET", url,true);
61         xmlhttp.responseType = 'arraybuffer';
62
63         xmlhttp.onload=function() {
64            
65             var ar= [];
66              
67             var r = new Uint8Array(xmlhttp.response);
68             for (i=0;i<r.byteLength;i++) {
69                 ar.push(r[i]);
70             }
71             
72             console.log(
73                 JSON.stringify ({
74                     requesturl : url,
75                     method: 'downloadpage',
76                     headers : xmlhttp.getAllResponseHeaders(),
77                     contentType:xmlhttp.getResponseHeader("Content-Type"),
78                     data: ar
79                 }));
80            
81         }
82         
83         xmlhttp.send(null);
84            
85     }
86     
87 }
88
89         
90
91
92
93 //downloadpage();
94 //gatherlinks();