1onconnect = function(e) { 2 var port = e.ports[0]; 3 4 port.onmessage = function(e) { 5 var requrl = e.data.requestUrl; 6 var reqHeaders = e.data.requestHeaders; 7 8 if ( e.data.reason == 'doRequest' ) { 9 doRequest( port, requrl, reqHeaders ); 10 } 11 }; 12}; 13 14function deliverResponseOntoPort( workerPort, reqUrl, status, data ) { 15 workerPort.postMessage({ 16 workerFinalStatus: status, 17 workerFinalData: data, 18 requestUrl: reqUrl 19 }); 20} 21 22function doRequest( workerPort, reqUrl, reqHeaders ) { 23 var xhr = new XMLHttpRequest(); 24 25 xhr.onload = function() { 26 var resData = null; 27 28 try { 29 resData = JSON.parse( xhr.responseText ); 30 } catch (error) { 31 deliverResponseOntoPort( workerPort, reqUrl, 500 ); 32 33 return; 34 } 35 36 deliverResponseOntoPort( workerPort, reqUrl, 200, resData ); 37 }; 38 39 xhr.onerror = function(e) { 40 deliverResponseOntoPort( workerPort, reqUrl, xhr.status ); 41 }; 42 43 xhr.open('GET', reqUrl, true); 44 45 if ( reqHeaders ) { 46 var headerValue; 47 48 for ( var p in reqHeaders ) { 49 headerValue = reqHeaders[p]; 50 51 if ( headerValue ) { 52 xhr.setRequestHeader( p, headerValue); 53 } 54 } 55 } 56 57 xhr.send(); 58}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.