Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Post-facto Copyright (c) Yahoo! headers, according to internal bug tr…

…acking #4761787
  • Loading branch information...
commit b95e7daca4ce701c80a2052dea97601f665d79b7 1 parent 22c1c0e
Marcel Duran authored
Showing with 232 additions and 1 deletion.
  1. +3 −0  Makefile
  2. +3 −0  README
  3. +5 −1 boomerang-0.9.1280532889.js
  4. +5 −0 boomerang.js
  5. +5 −0 dns.js
  6. +4 −0 doc/api/BOOMR.html
  7. +4 −0 doc/api/BOOMR.utils.html
  8. +4 −0 doc/api/BW.html
  9. +4 −0 doc/api/DNS.html
  10. +4 −0 doc/api/RT.html
  11. +4 −0 doc/api/index.html
  12. +4 −0 doc/api/ipv6.html
  13. +4 −0 doc/api/navtiming.html
  14. +5 −0 doc/boomerang-docs.css
  15. +4 −0 doc/community.html
  16. +4 −0 doc/howtos/howto-0.html
  17. +4 −0 doc/howtos/howto-10-page#1.html
  18. +4 −0 doc/howtos/howto-10-page#2.html
  19. +4 −0 doc/howtos/howto-1a-page#1.html
  20. +4 −0 doc/howtos/howto-1a-page#2.html
  21. +4 −0 doc/howtos/howto-1b-page#1.html
  22. +4 −0 doc/howtos/howto-1b-page#2.html
  23. +4 −0 doc/howtos/howto-2.html
  24. +4 −0 doc/howtos/howto-3.html
  25. +4 −0 doc/index.html
  26. +4 −0 doc/ja/api/BOOMR.html
  27. +4 −0 doc/ja/api/BOOMR.utils.html
  28. +4 −0 doc/ja/api/BW.html
  29. +4 −0 doc/ja/api/DNS.html
  30. +4 −0 doc/ja/api/RT.html
  31. +4 −0 doc/ja/api/index.html
  32. +4 −0 doc/ja/api/ipv6.html
  33. +4 −0 doc/ja/api/navtiming.html
  34. +4 −0 doc/ja/community.html
  35. +4 −0 doc/ja/howtos/howto-0.html
  36. +4 −0 doc/ja/howtos/howto-10-page#1.html
  37. +4 −0 doc/ja/howtos/howto-10-page#2.html
  38. +4 −0 doc/ja/howtos/howto-1a-page#1.html
  39. +4 −0 doc/ja/howtos/howto-1a-page#2.html
  40. +4 −0 doc/ja/howtos/howto-1b-page#1.html
  41. +4 −0 doc/ja/howtos/howto-1b-page#2.html
  42. +4 −0 doc/ja/howtos/howto-2.html
  43. +4 −0 doc/ja/howtos/howto-3.html
  44. +4 −0 doc/ja/index.html
  45. +4 −0 doc/ja/methodology.html
  46. +4 −0 doc/ja/press.html
  47. +4 −0 doc/ja/use-cases.html
  48. +4 −0 doc/methodology.html
  49. +4 −0 doc/press.html
  50. +4 −0 doc/use-cases.html
  51. +5 −0 ipv6.js
  52. +5 −0 navtiming.js
  53. +4 −0 tests/1-basic.html
  54. +4 −0 tests/2-init.html
  55. +4 −0 tests/3-initparams.html
  56. +4 −0 tests/4-event.html
  57. +4 −0 tests/index.html
3  Makefile
View
@@ -1,3 +1,6 @@
+# Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+# Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+
PLUGINS :=
VERSION := $(shell sed -ne '/^BOOMR\.version/{s/^.*"\([^"]*\)".*/\1/;p;q;}' boomerang.js)
3  README
View
@@ -1,3 +1,6 @@
+Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+
boomerang always comes back, except when it hits something.
This piece of javascript measures a whole bunch of performance characteristics of your user's
6 boomerang-0.9.1280532889.js
View
@@ -1 +1,5 @@
-(function(a){var e,c,b,g=a.document;if(typeof BOOMR==="undefined"){BOOMR={}}if(BOOMR.version){return}BOOMR.version="0.9";e={beacon_url:"",site_domain:a.location.hostname.replace(/.*?([^.]+\.[^.]+)\.?$/,"$1").toLowerCase(),user_ip:"",events:{page_ready:[],page_unload:[],before_beacon:[]},vars:{},disabled_plugins:{},fireEvent:function(d,l){var j,k,m;if(!this.events.hasOwnProperty(d)){return false}m=this.events[d];for(j=0;j<m.length;j++){k=m[j];k[0].call(k[2],l,k[1])}return true},addListener:function(i,j,h,d){if(i.addEventListener){i.addEventListener(j,h,(d))}else{if(i.attachEvent){i.attachEvent("on"+j,h)}}}};c={utils:{getCookie:function(d){if(!d){return null}d=" "+d+"=";var h,j;j=" "+g.cookie+";";if((h=j.indexOf(d))>=0){h+=d.length;j=j.substring(h,j.indexOf(";",h));return j}return null},setCookie:function(h,d,n,r,l,m){var q="",j,p,o,i="";if(!h){return false}for(j in d){if(d.hasOwnProperty(j)){q+="&"+encodeURIComponent(j)+"="+encodeURIComponent(d[j])}}q=q.replace(/^&/,"");if(n){i=new Date();i.setTime(i.getTime()+n*1000);i=i.toGMTString()}p=h+"="+q;o=p+((n)?"; expires="+i:"")+((r)?"; path="+r:"")+((typeof l!=="undefined")?"; domain="+(l!==null?l:e.site_domain):"")+((m)?"; secure":"");if(p.length<4000){g.cookie=o;return(q===this.getCookie(h))}return false},getSubCookies:function(k){var j,h,d,n,m={};if(!k){return null}j=k.split("&");if(j.length===0){return null}for(h=0,d=j.length;h<d;h++){n=j[h].split("=");n.push("");m[decodeURIComponent(n[0])]=decodeURIComponent(n[1])}return m},removeCookie:function(d){return this.setCookie(d,{},0,"/",null)},pluginConfig:function(m,d,k,j){var h,l=0;if(!d||!d[k]){return false}for(h=0;h<j.length;h++){if(typeof d[k][j[h]]!=="undefined"){m[j[h]]=d[k][j[h]];l++}}return(l>0)}},init:function(h){var l,d,j=["beacon_url","site_domain","user_ip"];if(!h){h={}}for(l=0;l<j.length;l++){if(typeof h[j[l]]!=="undefined"){e[j[l]]=h[j[l]]}}if(typeof h.log!=="undefined"){this.log=h.log}if(!this.log){this.log=function(i,k,n){}}for(d in this.plugins){if(h[d]&&typeof h[d].enabled!=="undefined"&&h[d].enabled===false){e.disabled_plugins[d]=1;continue}else{if(e.disabled_plugins[d]){delete e.disabled_plugins[d]}}if(this.plugins.hasOwnProperty(d)&&typeof this.plugins[d].init==="function"){this.plugins[d].init(h)}}if(typeof h.autorun==="undefined"||h.autorun!==false){e.addListener(a,"load",function(){e.fireEvent("page_ready")})}e.addListener(a,"unload",function(){a=null});return this},page_ready:function(){e.fireEvent("page_ready");return this},subscribe:function(d,m,j,o){var k,l,n;if(!e.events.hasOwnProperty(d)){return this}n=e.events[d];for(k=0;k<n.length;k++){l=n[k];if(l[0]===m&&l[1]===j&&l[2]===o){return this}}n.push([m,j||{},o||null]);if(d==="page_unload"){e.addListener(a,"unload",function(){if(m){m.call(o,null,j)}m=o=j=null});e.addListener(a,"beforeunload",function(){if(m){m.call(o,null,j)}m=o=j=null})}return this},addVar:function(h,i){if(typeof h==="string"){e.vars[h]=i}else{if(typeof h==="object"){var j=h,d;for(d in j){if(j.hasOwnProperty(d)){e.vars[d]=j[d]}}}}return this},removeVar:function(){var d,h;if(!arguments.length){return this}if(arguments.length===1&&Object.prototype.toString.apply(arguments[0])==="[object Array]"){h=arguments[0]}else{h=arguments}for(d=0;d<h.length;d++){if(e.vars.hasOwnProperty(h[d])){delete e.vars[h[d]]}}return this},sendBeacon:function(){var i,j,h,d=0;for(i in this.plugins){if(this.plugins.hasOwnProperty(i)){if(e.disabled_plugins[i]){continue}if(!this.plugins[i].is_complete()){return this}}}e.fireEvent("before_beacon",e.vars);if(!e.beacon_url){return this}j=e.beacon_url+"?v="+encodeURIComponent(BOOMR.version);for(i in e.vars){if(e.vars.hasOwnProperty(i)){d++;j+="&"+encodeURIComponent(i)+"="+encodeURIComponent(e.vars[i])}}if(d){h=new Image();h.src=j}return this}};var f=function(d){return function(h,i){this.log(h,d,"boomerang"+(i?"."+i:""));return this}};c.debug=f("debug");c.info=f("info");c.warn=f("warn");c.error=f("error");if(a.YAHOO&&a.YAHOO.widget&&a.YAHOO.widget.Logger){c.log=a.YAHOO.log}else{if(typeof a.Y!=="undefined"&&typeof a.Y.log!=="undefined"){c.log=a.Y.log}else{if(typeof console!=="undefined"&&typeof console.log!=="undefined"){c.log=function(d,h,i){console.log(i+": ["+h+"] ",d)}}}}for(b in c){if(c.hasOwnProperty(b)){BOOMR[b]=c[b]}}BOOMR.plugins=BOOMR.plugins||{}}(window));(function(a){var c=a.document;BOOMR=BOOMR||{};BOOMR.plugins=BOOMR.plugins||{};var b={complete:false,timers:{},cookie:"RT",cookie_exp:600,strict_referrer:true,start:function(){var e,d=new Date().getTime();if(!BOOMR.utils.setCookie(b.cookie,{s:d,r:c.URL.replace(/#.*/,"")},b.cookie_exp,"/",null)){BOOMR.error("cannot set start cookie","rt");return this}e=new Date().getTime();if(e-d>50){BOOMR.utils.removeCookie(b.cookie);BOOMR.error("took more than 50ms to set cookie... aborting: "+d+" -> "+e,"rt")}return this}};BOOMR.plugins.RT={init:function(d){b.complete=false;b.timers={};BOOMR.utils.pluginConfig(b,d,"RT",["cookie","cookie_exp","strict_referrer"]);BOOMR.subscribe("page_ready",this.done,null,this);BOOMR.subscribe("page_unload",b.start,null,this);return this},startTimer:function(d){if(d){b.timers[d]={start:new Date().getTime()};b.complete=false}return this},endTimer:function(d,e){if(d){b.timers[d]=b.timers[d]||{};if(typeof b.timers[d].end==="undefined"){b.timers[d].end=(typeof e==="number"?e:new Date().getTime())}}return this},setTimer:function(d,e){if(d){b.timers[d]={delta:e}}return this},done:function(){var l,o,d,j,e,k={t_done:1,t_resp:1,t_page:1},i=0,m,h,n=[],f,g;if(b.complete){return this}this.endTimer("t_done");o=c.URL.replace(/#.*/,"");d=j=c.referrer.replace(/#.*/,"");e=BOOMR.utils.getSubCookies(BOOMR.utils.getCookie(b.cookie));BOOMR.utils.removeCookie(b.cookie);if(e!==null&&typeof e.s!=="undefined"&&typeof e.r!=="undefined"){d=e.r;if(!b.strict_referrer||d===j){l=parseInt(e.s,10)}}if(!l){BOOMR.warn("start cookie not set, trying WebTiming API","rt");g=a.performance||a.msPerformance||a.webkitPerformance||a.mozPerformance;if(g&&g.timing){f=g.timing}else{if(a.chrome&&a.chrome.csi){f={requestStart:a.chrome.csi().startE}}}if(f){l=f.requestStart||f.fetchStart||f.navigationStart||undefined}else{BOOMR.warn("This browser doesn't support the WebTiming API","rt")}}BOOMR.removeVar("t_done","t_page","t_resp","u","r","r2");for(m in b.timers){if(!b.timers.hasOwnProperty(m)){continue}h=b.timers[m];if(typeof h.delta!=="number"){if(typeof h.start!=="number"){h.start=l}h.delta=h.end-h.start}if(isNaN(h.delta)){continue}if(k.hasOwnProperty(m)){BOOMR.addVar(m,h.delta)}else{n.push(m+"|"+h.delta)}i++}if(i){BOOMR.addVar({u:o,r:d});if(j!==d){BOOMR.addVar("r2",j)}if(n.length){BOOMR.addVar("t_other",n.join(","))}}b.timers={};b.complete=true;BOOMR.sendBeacon();return this},is_complete:function(){return b.complete}}}(window));(function(b){var e=b.document;BOOMR=BOOMR||{};BOOMR.plugins=BOOMR.plugins||{};var a=[{name:"image-0.png",size:11483,timeout:1400},{name:"image-1.png",size:40658,timeout:1200},{name:"image-2.png",size:164897,timeout:1300},{name:"image-3.png",size:381756,timeout:1500},{name:"image-4.png",size:1234664,timeout:1200},{name:"image-5.png",size:4509613,timeout:1200},{name:"image-6.png",size:9084559,timeout:1200}];a.end=a.length;a.start=0;a.l={name:"image-l.gif",size:35,timeout:1000};var c={base_url:"images/",timeout:15000,nruns:5,latency_runs:10,user_ip:"",cookie_exp:7*86400,cookie:"BA",results:[],latencies:[],latency:null,runs_left:0,aborted:false,complete:false,running:false,ncmp:function(f,d){return(f-d)},iqr:function(h){var g=h.length-1,f,m,k,d=[],j;f=(h[Math.floor(g*0.25)]+h[Math.ceil(g*0.25)])/2;m=(h[Math.floor(g*0.75)]+h[Math.ceil(g*0.75)])/2;k=(m-f)*1.5;g++;for(j=0;j<g&&h[j]<m+k;j++){if(h[j]>f-k){d.push(h[j])}}return d},calc_latency:function(){var h,f,j=0,g=0,k,m,d,o,l;l=this.iqr(this.latencies.sort(this.ncmp));f=l.length;BOOMR.debug(l,"bw");for(h=1;h<f;h++){j+=l[h];g+=l[h]*l[h]}f--;k=Math.round(j/f);d=Math.sqrt(g/f-j*j/(f*f));o=(1.96*d/Math.sqrt(f)).toFixed(2);d=d.toFixed(2);f=l.length-1;m=Math.round((l[Math.floor(f/2)]+l[Math.ceil(f/2)])/2);return{mean:k,median:m,stddev:d,stderr:o}},calc_bw:function(){var y,x,t=0,p,g=[],v=[],f=0,o=0,C=0,u=0,q,A,B,h,d,w,k,m,l,z,s;for(y=0;y<this.nruns;y++){if(!this.results[y]||!this.results[y].r){continue}p=this.results[y].r;l=0;for(x=p.length-1;x>=0&&l<3;x--){if(typeof p[x]==="undefined"){break}if(p[x].t===null){continue}t++;l++;z=a[x].size*1000/p[x].t;g.push(z);s=a[x].size*1000/(p[x].t-this.latency.mean);v.push(s)}}BOOMR.debug("got "+t+" readings","bw");BOOMR.debug("bandwidths: "+g,"bw");BOOMR.debug("corrected: "+v,"bw");if(g.length>3){g=this.iqr(g.sort(this.ncmp));v=this.iqr(v.sort(this.ncmp))}else{g=g.sort(this.ncmp);v=v.sort(this.ncmp)}BOOMR.debug("after iqr: "+g,"bw");BOOMR.debug("corrected: "+v,"bw");t=Math.max(g.length,v.length);for(y=0;y<t;y++){if(y<g.length){f+=g[y];o+=Math.pow(g[y],2)}if(y<v.length){C+=v[y];u+=Math.pow(v[y],2)}}t=g.length;q=Math.round(f/t);A=Math.sqrt(o/t-Math.pow(f/t,2));B=Math.round(1.96*A/Math.sqrt(t));A=Math.round(A);t=g.length-1;h=Math.round((g[Math.floor(t/2)]+g[Math.ceil(t/2)])/2);t=v.length;d=Math.round(C/t);w=Math.sqrt(u/t-Math.pow(C/t,2));k=(1.96*w/Math.sqrt(t)).toFixed(2);w=w.toFixed(2);t=v.length-1;m=Math.round((v[Math.floor(t/2)]+v[Math.ceil(t/2)])/2);BOOMR.debug("amean: "+q+", median: "+h,"bw");BOOMR.debug("corrected amean: "+d+", median: "+m,"bw");return{mean:q,stddev:A,stderr:B,median:h,mean_corrected:d,stddev_corrected:w,stderr_corrected:k,median_corrected:m}},defer:function(f){var d=this;return setTimeout(function(){f.call(d);d=null},10)},load_img:function(g,k,m){var f=this.base_url+a[g].name+"?t="+(new Date().getTime())+Math.random(),l=0,j=0,d=new Image(),h=this;d.onload=function(){d.onload=d.onerror=null;d=null;clearTimeout(l);if(m){m.call(h,g,j,k,true)}h=m=null};d.onerror=function(){d.onload=d.onerror=null;d=null;clearTimeout(l);if(m){m.call(h,g,j,k,false)}h=m=null};l=setTimeout(function(){if(m){m.call(h,g,j,k,null)}},a[g].timeout+Math.min(400,this.latency?this.latency.mean:400));j=new Date().getTime();d.src=f},lat_loaded:function(d,f,h,j){if(h!==this.latency_runs+1){return}if(j!==null){var g=new Date().getTime()-f;this.latencies.push(g)}if(this.latency_runs===0){this.latency=this.calc_latency()}this.defer(this.iterate)},img_loaded:function(f,g,h,j){if(h!==this.runs_left+1){return}if(this.results[this.nruns-h].r[f]){return}if(j===null){this.results[this.nruns-h].r[f+1]={t:null,state:null,run:h};return}var d={start:g,end:new Date().getTime(),t:null,state:j,run:h};if(j){d.t=d.end-d.start}this.results[this.nruns-h].r[f]=d;if(f>=a.end-1||typeof this.results[this.nruns-h].r[f+1]!=="undefined"){BOOMR.debug(this.results[this.nruns-h],"bw");if(h===this.nruns){a.start=f}this.defer(this.iterate)}else{this.load_img(f+1,h,this.img_loaded)}},finish:function(){if(!this.latency){this.latency=this.calc_latency()}var f=this.calc_bw(),d={bw:f.median_corrected,bw_err:parseFloat(f.stderr_corrected,10),lat:this.latency.mean,lat_err:parseFloat(this.latency.stderr,10),bw_time:Math.round(new Date().getTime()/1000)};BOOMR.addVar(d);if(!isNaN(d.bw)){BOOMR.utils.setCookie(this.cookie,{ba:Math.round(d.bw),be:d.bw_err,l:d.lat,le:d.lat_err,ip:this.user_ip,t:d.bw_time},(this.user_ip?this.cookie_exp:0),"/",null)}this.complete=true;BOOMR.sendBeacon();this.running=false},iterate:function(){if(this.aborted){return false}if(!this.runs_left){this.finish()}else{if(this.latency_runs){this.load_img("l",this.latency_runs--,this.lat_loaded)}else{this.results.push({r:[]});this.load_img(a.start,this.runs_left--,this.img_loaded)}}},setVarsFromCookie:function(l){var i=parseInt(l.ba,10),k=parseFloat(l.be,10),j=parseInt(l.l,10)||0,f=parseFloat(l.le,10)||0,d=l.ip.replace(/\.\d+$/,"0"),m=parseInt(l.t,10),h=this.user_ip.replace(/\.\d+$/,"0"),g=Math.round((new Date().getTime())/1000);if(d===h&&m>=g-this.cookie_exp){this.complete=true;BOOMR.addVar({bw:i,lat:j,bw_err:k,lat_err:f});return true}return false}};BOOMR.plugins.BW={init:function(d){var f;BOOMR.utils.pluginConfig(c,d,"BW",["base_url","timeout","nruns","cookie","cookie_exp"]);if(d&&d.user_ip){c.user_ip=d.user_ip}a.start=0;c.runs_left=c.nruns;c.latency_runs=10;c.results=[];c.latencies=[];c.latency=null;c.complete=false;c.aborted=false;BOOMR.removeVar("ba","ba_err","lat","lat_err");f=BOOMR.utils.getSubCookies(BOOMR.utils.getCookie(c.cookie));if(!f||!f.ba||!c.setVarsFromCookie(f)){BOOMR.subscribe("page_ready",this.run,null,this)}return this},run:function(){if(c.running||c.complete){return this}if(b.location.protocol==="https:"){BOOMR.info("HTTPS detected, skipping bandwidth test","bw");c.complete=true;return this}c.running=true;setTimeout(this.abort,c.timeout);c.defer(c.iterate);return this},abort:function(){c.aborted=true;c.finish();return this},is_complete:function(){return c.complete}}}(window));
+/*
+ * Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ * Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+ */
+(function(a){var e,c,b,g=a.document;if(typeof BOOMR==="undefined"){BOOMR={}}if(BOOMR.version){return}BOOMR.version="0.9";e={beacon_url:"",site_domain:a.location.hostname.replace(/.*?([^.]+\.[^.]+)\.?$/,"$1").toLowerCase(),user_ip:"",events:{page_ready:[],page_unload:[],before_beacon:[]},vars:{},disabled_plugins:{},fireEvent:function(d,l){var j,k,m;if(!this.events.hasOwnProperty(d)){return false}m=this.events[d];for(j=0;j<m.length;j++){k=m[j];k[0].call(k[2],l,k[1])}return true},addListener:function(i,j,h,d){if(i.addEventListener){i.addEventListener(j,h,(d))}else{if(i.attachEvent){i.attachEvent("on"+j,h)}}}};c={utils:{getCookie:function(d){if(!d){return null}d=" "+d+"=";var h,j;j=" "+g.cookie+";";if((h=j.indexOf(d))>=0){h+=d.length;j=j.substring(h,j.indexOf(";",h));return j}return null},setCookie:function(h,d,n,r,l,m){var q="",j,p,o,i="";if(!h){return false}for(j in d){if(d.hasOwnProperty(j)){q+="&"+encodeURIComponent(j)+"="+encodeURIComponent(d[j])}}q=q.replace(/^&/,"");if(n){i=new Date();i.setTime(i.getTime()+n*1000);i=i.toGMTString()}p=h+"="+q;o=p+((n)?"; expires="+i:"")+((r)?"; path="+r:"")+((typeof l!=="undefined")?"; domain="+(l!==null?l:e.site_domain):"")+((m)?"; secure":"");if(p.length<4000){g.cookie=o;return(q===this.getCookie(h))}return false},getSubCookies:function(k){var j,h,d,n,m={};if(!k){return null}j=k.split("&");if(j.length===0){return null}for(h=0,d=j.length;h<d;h++){n=j[h].split("=");n.push("");m[decodeURIComponent(n[0])]=decodeURIComponent(n[1])}return m},removeCookie:function(d){return this.setCookie(d,{},0,"/",null)},pluginConfig:function(m,d,k,j){var h,l=0;if(!d||!d[k]){return false}for(h=0;h<j.length;h++){if(typeof d[k][j[h]]!=="undefined"){m[j[h]]=d[k][j[h]];l++}}return(l>0)}},init:function(h){var l,d,j=["beacon_url","site_domain","user_ip"];if(!h){h={}}for(l=0;l<j.length;l++){if(typeof h[j[l]]!=="undefined"){e[j[l]]=h[j[l]]}}if(typeof h.log!=="undefined"){this.log=h.log}if(!this.log){this.log=function(i,k,n){}}for(d in this.plugins){if(h[d]&&typeof h[d].enabled!=="undefined"&&h[d].enabled===false){e.disabled_plugins[d]=1;continue}else{if(e.disabled_plugins[d]){delete e.disabled_plugins[d]}}if(this.plugins.hasOwnProperty(d)&&typeof this.plugins[d].init==="function"){this.plugins[d].init(h)}}if(typeof h.autorun==="undefined"||h.autorun!==false){e.addListener(a,"load",function(){e.fireEvent("page_ready")})}e.addListener(a,"unload",function(){a=null});return this},page_ready:function(){e.fireEvent("page_ready");return this},subscribe:function(d,m,j,o){var k,l,n;if(!e.events.hasOwnProperty(d)){return this}n=e.events[d];for(k=0;k<n.length;k++){l=n[k];if(l[0]===m&&l[1]===j&&l[2]===o){return this}}n.push([m,j||{},o||null]);if(d==="page_unload"){e.addListener(a,"unload",function(){if(m){m.call(o,null,j)}m=o=j=null});e.addListener(a,"beforeunload",function(){if(m){m.call(o,null,j)}m=o=j=null})}return this},addVar:function(h,i){if(typeof h==="string"){e.vars[h]=i}else{if(typeof h==="object"){var j=h,d;for(d in j){if(j.hasOwnProperty(d)){e.vars[d]=j[d]}}}}return this},removeVar:function(){var d,h;if(!arguments.length){return this}if(arguments.length===1&&Object.prototype.toString.apply(arguments[0])==="[object Array]"){h=arguments[0]}else{h=arguments}for(d=0;d<h.length;d++){if(e.vars.hasOwnProperty(h[d])){delete e.vars[h[d]]}}return this},sendBeacon:function(){var i,j,h,d=0;for(i in this.plugins){if(this.plugins.hasOwnProperty(i)){if(e.disabled_plugins[i]){continue}if(!this.plugins[i].is_complete()){return this}}}e.fireEvent("before_beacon",e.vars);if(!e.beacon_url){return this}j=e.beacon_url+"?v="+encodeURIComponent(BOOMR.version);for(i in e.vars){if(e.vars.hasOwnProperty(i)){d++;j+="&"+encodeURIComponent(i)+"="+encodeURIComponent(e.vars[i])}}if(d){h=new Image();h.src=j}return this}};var f=function(d){return function(h,i){this.log(h,d,"boomerang"+(i?"."+i:""));return this}};c.debug=f("debug");c.info=f("info");c.warn=f("warn");c.error=f("error");if(a.YAHOO&&a.YAHOO.widget&&a.YAHOO.widget.Logger){c.log=a.YAHOO.log}else{if(typeof a.Y!=="undefined"&&typeof a.Y.log!=="undefined"){c.log=a.Y.log}else{if(typeof console!=="undefined"&&typeof console.log!=="undefined"){c.log=function(d,h,i){console.log(i+": ["+h+"] ",d)}}}}for(b in c){if(c.hasOwnProperty(b)){BOOMR[b]=c[b]}}BOOMR.plugins=BOOMR.plugins||{}}(window));(function(a){var c=a.document;BOOMR=BOOMR||{};BOOMR.plugins=BOOMR.plugins||{};var b={complete:false,timers:{},cookie:"RT",cookie_exp:600,strict_referrer:true,start:function(){var e,d=new Date().getTime();if(!BOOMR.utils.setCookie(b.cookie,{s:d,r:c.URL.replace(/#.*/,"")},b.cookie_exp,"/",null)){BOOMR.error("cannot set start cookie","rt");return this}e=new Date().getTime();if(e-d>50){BOOMR.utils.removeCookie(b.cookie);BOOMR.error("took more than 50ms to set cookie... aborting: "+d+" -> "+e,"rt")}return this}};BOOMR.plugins.RT={init:function(d){b.complete=false;b.timers={};BOOMR.utils.pluginConfig(b,d,"RT",["cookie","cookie_exp","strict_referrer"]);BOOMR.subscribe("page_ready",this.done,null,this);BOOMR.subscribe("page_unload",b.start,null,this);return this},startTimer:function(d){if(d){b.timers[d]={start:new Date().getTime()};b.complete=false}return this},endTimer:function(d,e){if(d){b.timers[d]=b.timers[d]||{};if(typeof b.timers[d].end==="undefined"){b.timers[d].end=(typeof e==="number"?e:new Date().getTime())}}return this},setTimer:function(d,e){if(d){b.timers[d]={delta:e}}return this},done:function(){var l,o,d,j,e,k={t_done:1,t_resp:1,t_page:1},i=0,m,h,n=[],f,g;if(b.complete){return this}this.endTimer("t_done");o=c.URL.replace(/#.*/,"");d=j=c.referrer.replace(/#.*/,"");e=BOOMR.utils.getSubCookies(BOOMR.utils.getCookie(b.cookie));BOOMR.utils.removeCookie(b.cookie);if(e!==null&&typeof e.s!=="undefined"&&typeof e.r!=="undefined"){d=e.r;if(!b.strict_referrer||d===j){l=parseInt(e.s,10)}}if(!l){BOOMR.warn("start cookie not set, trying WebTiming API","rt");g=a.performance||a.msPerformance||a.webkitPerformance||a.mozPerformance;if(g&&g.timing){f=g.timing}else{if(a.chrome&&a.chrome.csi){f={requestStart:a.chrome.csi().startE}}}if(f){l=f.requestStart||f.fetchStart||f.navigationStart||undefined}else{BOOMR.warn("This browser doesn't support the WebTiming API","rt")}}BOOMR.removeVar("t_done","t_page","t_resp","u","r","r2");for(m in b.timers){if(!b.timers.hasOwnProperty(m)){continue}h=b.timers[m];if(typeof h.delta!=="number"){if(typeof h.start!=="number"){h.start=l}h.delta=h.end-h.start}if(isNaN(h.delta)){continue}if(k.hasOwnProperty(m)){BOOMR.addVar(m,h.delta)}else{n.push(m+"|"+h.delta)}i++}if(i){BOOMR.addVar({u:o,r:d});if(j!==d){BOOMR.addVar("r2",j)}if(n.length){BOOMR.addVar("t_other",n.join(","))}}b.timers={};b.complete=true;BOOMR.sendBeacon();return this},is_complete:function(){return b.complete}}}(window));(function(b){var e=b.document;BOOMR=BOOMR||{};BOOMR.plugins=BOOMR.plugins||{};var a=[{name:"image-0.png",size:11483,timeout:1400},{name:"image-1.png",size:40658,timeout:1200},{name:"image-2.png",size:164897,timeout:1300},{name:"image-3.png",size:381756,timeout:1500},{name:"image-4.png",size:1234664,timeout:1200},{name:"image-5.png",size:4509613,timeout:1200},{name:"image-6.png",size:9084559,timeout:1200}];a.end=a.length;a.start=0;a.l={name:"image-l.gif",size:35,timeout:1000};var c={base_url:"images/",timeout:15000,nruns:5,latency_runs:10,user_ip:"",cookie_exp:7*86400,cookie:"BA",results:[],latencies:[],latency:null,runs_left:0,aborted:false,complete:false,running:false,ncmp:function(f,d){return(f-d)},iqr:function(h){var g=h.length-1,f,m,k,d=[],j;f=(h[Math.floor(g*0.25)]+h[Math.ceil(g*0.25)])/2;m=(h[Math.floor(g*0.75)]+h[Math.ceil(g*0.75)])/2;k=(m-f)*1.5;g++;for(j=0;j<g&&h[j]<m+k;j++){if(h[j]>f-k){d.push(h[j])}}return d},calc_latency:function(){var h,f,j=0,g=0,k,m,d,o,l;l=this.iqr(this.latencies.sort(this.ncmp));f=l.length;BOOMR.debug(l,"bw");for(h=1;h<f;h++){j+=l[h];g+=l[h]*l[h]}f--;k=Math.round(j/f);d=Math.sqrt(g/f-j*j/(f*f));o=(1.96*d/Math.sqrt(f)).toFixed(2);d=d.toFixed(2);f=l.length-1;m=Math.round((l[Math.floor(f/2)]+l[Math.ceil(f/2)])/2);return{mean:k,median:m,stddev:d,stderr:o}},calc_bw:function(){var y,x,t=0,p,g=[],v=[],f=0,o=0,C=0,u=0,q,A,B,h,d,w,k,m,l,z,s;for(y=0;y<this.nruns;y++){if(!this.results[y]||!this.results[y].r){continue}p=this.results[y].r;l=0;for(x=p.length-1;x>=0&&l<3;x--){if(typeof p[x]==="undefined"){break}if(p[x].t===null){continue}t++;l++;z=a[x].size*1000/p[x].t;g.push(z);s=a[x].size*1000/(p[x].t-this.latency.mean);v.push(s)}}BOOMR.debug("got "+t+" readings","bw");BOOMR.debug("bandwidths: "+g,"bw");BOOMR.debug("corrected: "+v,"bw");if(g.length>3){g=this.iqr(g.sort(this.ncmp));v=this.iqr(v.sort(this.ncmp))}else{g=g.sort(this.ncmp);v=v.sort(this.ncmp)}BOOMR.debug("after iqr: "+g,"bw");BOOMR.debug("corrected: "+v,"bw");t=Math.max(g.length,v.length);for(y=0;y<t;y++){if(y<g.length){f+=g[y];o+=Math.pow(g[y],2)}if(y<v.length){C+=v[y];u+=Math.pow(v[y],2)}}t=g.length;q=Math.round(f/t);A=Math.sqrt(o/t-Math.pow(f/t,2));B=Math.round(1.96*A/Math.sqrt(t));A=Math.round(A);t=g.length-1;h=Math.round((g[Math.floor(t/2)]+g[Math.ceil(t/2)])/2);t=v.length;d=Math.round(C/t);w=Math.sqrt(u/t-Math.pow(C/t,2));k=(1.96*w/Math.sqrt(t)).toFixed(2);w=w.toFixed(2);t=v.length-1;m=Math.round((v[Math.floor(t/2)]+v[Math.ceil(t/2)])/2);BOOMR.debug("amean: "+q+", median: "+h,"bw");BOOMR.debug("corrected amean: "+d+", median: "+m,"bw");return{mean:q,stddev:A,stderr:B,median:h,mean_corrected:d,stddev_corrected:w,stderr_corrected:k,median_corrected:m}},defer:function(f){var d=this;return setTimeout(function(){f.call(d);d=null},10)},load_img:function(g,k,m){var f=this.base_url+a[g].name+"?t="+(new Date().getTime())+Math.random(),l=0,j=0,d=new Image(),h=this;d.onload=function(){d.onload=d.onerror=null;d=null;clearTimeout(l);if(m){m.call(h,g,j,k,true)}h=m=null};d.onerror=function(){d.onload=d.onerror=null;d=null;clearTimeout(l);if(m){m.call(h,g,j,k,false)}h=m=null};l=setTimeout(function(){if(m){m.call(h,g,j,k,null)}},a[g].timeout+Math.min(400,this.latency?this.latency.mean:400));j=new Date().getTime();d.src=f},lat_loaded:function(d,f,h,j){if(h!==this.latency_runs+1){return}if(j!==null){var g=new Date().getTime()-f;this.latencies.push(g)}if(this.latency_runs===0){this.latency=this.calc_latency()}this.defer(this.iterate)},img_loaded:function(f,g,h,j){if(h!==this.runs_left+1){return}if(this.results[this.nruns-h].r[f]){return}if(j===null){this.results[this.nruns-h].r[f+1]={t:null,state:null,run:h};return}var d={start:g,end:new Date().getTime(),t:null,state:j,run:h};if(j){d.t=d.end-d.start}this.results[this.nruns-h].r[f]=d;if(f>=a.end-1||typeof this.results[this.nruns-h].r[f+1]!=="undefined"){BOOMR.debug(this.results[this.nruns-h],"bw");if(h===this.nruns){a.start=f}this.defer(this.iterate)}else{this.load_img(f+1,h,this.img_loaded)}},finish:function(){if(!this.latency){this.latency=this.calc_latency()}var f=this.calc_bw(),d={bw:f.median_corrected,bw_err:parseFloat(f.stderr_corrected,10),lat:this.latency.mean,lat_err:parseFloat(this.latency.stderr,10),bw_time:Math.round(new Date().getTime()/1000)};BOOMR.addVar(d);if(!isNaN(d.bw)){BOOMR.utils.setCookie(this.cookie,{ba:Math.round(d.bw),be:d.bw_err,l:d.lat,le:d.lat_err,ip:this.user_ip,t:d.bw_time},(this.user_ip?this.cookie_exp:0),"/",null)}this.complete=true;BOOMR.sendBeacon();this.running=false},iterate:function(){if(this.aborted){return false}if(!this.runs_left){this.finish()}else{if(this.latency_runs){this.load_img("l",this.latency_runs--,this.lat_loaded)}else{this.results.push({r:[]});this.load_img(a.start,this.runs_left--,this.img_loaded)}}},setVarsFromCookie:function(l){var i=parseInt(l.ba,10),k=parseFloat(l.be,10),j=parseInt(l.l,10)||0,f=parseFloat(l.le,10)||0,d=l.ip.replace(/\.\d+$/,"0"),m=parseInt(l.t,10),h=this.user_ip.replace(/\.\d+$/,"0"),g=Math.round((new Date().getTime())/1000);if(d===h&&m>=g-this.cookie_exp){this.complete=true;BOOMR.addVar({bw:i,lat:j,bw_err:k,lat_err:f});return true}return false}};BOOMR.plugins.BW={init:function(d){var f;BOOMR.utils.pluginConfig(c,d,"BW",["base_url","timeout","nruns","cookie","cookie_exp"]);if(d&&d.user_ip){c.user_ip=d.user_ip}a.start=0;c.runs_left=c.nruns;c.latency_runs=10;c.results=[];c.latencies=[];c.latency=null;c.complete=false;c.aborted=false;BOOMR.removeVar("ba","ba_err","lat","lat_err");f=BOOMR.utils.getSubCookies(BOOMR.utils.getCookie(c.cookie));if(!f||!f.ba||!c.setVarsFromCookie(f)){BOOMR.subscribe("page_ready",this.run,null,this)}return this},run:function(){if(c.running||c.complete){return this}if(b.location.protocol==="https:"){BOOMR.info("HTTPS detected, skipping bandwidth test","bw");c.complete=true;return this}c.running=true;setTimeout(this.abort,c.timeout);c.defer(c.iterate);return this},abort:function(){c.aborted=true;c.finish();return this},is_complete:function(){return c.complete}}}(window));
5 boomerang.js
View
@@ -1,3 +1,8 @@
+/*
+ * Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ * Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+ */
+
/**
\file boomerang.js
boomerang measures various performance characteristics of your user's browsing
5 dns.js
View
@@ -1,3 +1,8 @@
+/*
+ * Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ * Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+ */
+
/**
\file dns.js
Plugin to measure DNS latency.
4 doc/api/BOOMR.html
View
@@ -377,3 +377,7 @@ <h2 id="beacon">Beacon Parameters</h2>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/api/BOOMR.utils.html
View
@@ -168,3 +168,7 @@ <h2 id="methods">Methods</h2>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/api/BW.html
View
@@ -152,3 +152,7 @@ <h2 id="beacon">Beacon Parameters</h2>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/api/DNS.html
View
@@ -94,3 +94,7 @@ <h2 id="beacon">Beacon Parameters</h2>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/api/RT.html
View
@@ -238,3 +238,7 @@ <h2 id="beacon">Beacon Parameters</h2>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/api/index.html
View
@@ -36,3 +36,7 @@
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/api/ipv6.html
View
@@ -112,3 +112,7 @@ <h2 id="beacon">Beacon Parameters</h2>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/api/navtiming.html
View
@@ -102,3 +102,7 @@ <h2 id="beacon">Beacon Parameters</h2>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
5 doc/boomerang-docs.css
View
@@ -1,3 +1,8 @@
+/*
+ * Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ * Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+ */
+
body { font-size: 0.9em; background-color: #eeeee4; padding: 5% 10% 15% 10%; margin: 0; font-family: "Trebuchet MS",Trebuchet,Tahoma,Verdana,Sans-Serif; }
a { color: #571; }
a:hover, a:active { color: #350; }
4 doc/community.html
View
@@ -41,3 +41,7 @@
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/howtos/howto-0.html
View
@@ -206,3 +206,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/howtos/howto-10-page#1.html
View
@@ -63,3 +63,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/howtos/howto-10-page#2.html
View
@@ -56,3 +56,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/howtos/howto-1a-page#1.html
View
@@ -92,3 +92,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/howtos/howto-1a-page#2.html
View
@@ -46,3 +46,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/howtos/howto-1b-page#1.html
View
@@ -76,3 +76,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/howtos/howto-1b-page#2.html
View
@@ -51,3 +51,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/howtos/howto-2.html
View
@@ -97,3 +97,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/howtos/howto-3.html
View
@@ -178,3 +178,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/index.html
View
@@ -74,3 +74,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/api/BOOMR.html
View
@@ -317,3 +317,7 @@ <h2 id="beacon">ビーコンパラメーター</h2>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/api/BOOMR.utils.html
View
@@ -157,3 +157,7 @@ <h2 id="methods">メソッド</h2>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/api/BW.html
View
@@ -127,3 +127,7 @@ <h2 id="beacon">ビーコンパラメーター</h2>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/api/DNS.html
View
@@ -85,3 +85,7 @@ <h2 id="beacon">ビーコンパラメーター</h2>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/api/RT.html
View
@@ -198,3 +198,7 @@ <h2 id="beacon">ビーコンパラメーター</h2>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/api/index.html
View
@@ -35,3 +35,7 @@
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/api/ipv6.html
View
@@ -100,3 +100,7 @@ <h2 id="beacon">ビーコンパラメーター</h2>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/api/navtiming.html
View
@@ -93,3 +93,7 @@ <h2 id="beacon">ビーコンパラメーター</h2>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/community.html
View
@@ -29,3 +29,7 @@
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/howtos/howto-0.html
View
@@ -182,3 +182,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/howtos/howto-10-page#1.html
View
@@ -60,3 +60,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/howtos/howto-10-page#2.html
View
@@ -50,3 +50,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/howtos/howto-1a-page#1.html
View
@@ -79,3 +79,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/howtos/howto-1a-page#2.html
View
@@ -42,3 +42,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/howtos/howto-1b-page#1.html
View
@@ -71,3 +71,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/howtos/howto-1b-page#2.html
View
@@ -46,3 +46,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/howtos/howto-2.html
View
@@ -93,3 +93,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/howtos/howto-3.html
View
@@ -152,3 +152,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/index.html
View
@@ -68,3 +68,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/methodology.html
View
@@ -100,3 +100,7 @@
</div>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/press.html
View
@@ -25,3 +25,7 @@
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/ja/use-cases.html
View
@@ -152,3 +152,7 @@ <h2 id="uc-10">10. ブラウザーの WebTiming 情報を回収する</h2>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/methodology.html
View
@@ -138,3 +138,7 @@
</div>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/press.html
View
@@ -30,3 +30,7 @@
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 doc/use-cases.html
View
@@ -204,3 +204,7 @@ <h2 id="uc-10">10. Collect browser WebTiming information</h2>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
5 ipv6.js
View
@@ -1,3 +1,8 @@
+/*
+ * Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ * Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+ */
+
/**
\file ipv6.js
Plugin to measure various ipv6 related metrics.
5 navtiming.js
View
@@ -1,3 +1,8 @@
+/*
+ * Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ * Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+ */
+
/**
\file navtiming.js
Plugin to collect metrics from the W3C Navigation Timing API. For more information about Navigation Timing,
4 tests/1-basic.html
View
@@ -14,3 +14,7 @@
<script src="../boomerang.js" type="text/javascript"></script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 tests/2-init.html
View
@@ -19,3 +19,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 tests/3-initparams.html
View
@@ -19,3 +19,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 tests/4-event.html
View
@@ -21,3 +21,7 @@
</script>
</body>
</html>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->
4 tests/index.html
View
@@ -8,3 +8,7 @@
<script type="text/javascript">
BOOMR.init({ user_ip: '10.0.0.1', BW: { base_url: '../images/', cookie: 'BBA' } });
</script>
+<!--
+ Copyright (c) 2011, Yahoo! Inc. All rights reserved.
+ Copyrights licensed under the BSD License. See the accompanying LICENSE file for terms.
+-->

1 comment on commit b95e7da

Philip Tellis

FYI, the .js files already contained the Yahoo! Copyright notice. With this commit they have two copyright notices, so it looks kinda weird.

Please sign in to comment.
Something went wrong with that request. Please try again.