Skip to content

Instantly share code, notes, and snippets.

@saranrapjs
Last active August 29, 2015 14:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save saranrapjs/754c92f59896a23a7336 to your computer and use it in GitHub Desktop.
Save saranrapjs/754c92f59896a23a7336 to your computer and use it in GitHub Desktop.
RUM-SpeedIndex bookmarklet

RUM-SpeedIndex Bookmarklet

Very simple bookmarklet which, when run, will display the RUM-SpeedIndex (derived from this script) from the current page. Chrome-only, as far as I'm aware.

javascript:void function()%7B(function(e)%7Be%3De%7C%7Cwindow%3Bvar t,r,n%3De.document,i%3Dfunction(t)%7Bvar r%3D!1%3Bif(t.getBoundingClientRect)%7Bvar i%3Dt.getBoundingClientRect()%3Br%3D%7Btop:Math.max(i.top,0),left:Math.max(i.left,0),bottom:Math.min(i.bottom,e.innerHeight%7C%7Cn.documentElement.clientHeight),right:Math.min(i.right,e.innerWidth%7C%7Cn.documentElement.clientWidth)%7D,r.bottom<%3Dr.top%7C%7Cr.right<%3Dr.left%3Fr%3D!1:r.area%3D(r.bottom-r.top)*(r.right-r.left)%7Dreturn r%7D,a%3Dfunction(e,t)%7Bif(t)%7Bvar r%3Di(e)%3Br%26%26g.push(%7Burl:t,area:r.area,rect:r%7D)%7D%7D,o%3Dfunction()%7Bfor(var t%3Dn.getElementsByTagName("*"),r%3D/url%5C((http.*)%5C)/gi,o%3D0%3Bo<t.length%3Bo%2B%2B)%7Bvar m%3Dt%5Bo%5D,c%3De.getComputedStyle(m)%3Bif("IMG"%3D%3Dm.tagName%26%26a(m,m.src),c%5B"background-image"%5D)%7Br.lastIndex%3D0%3Bvar s%3Dr.exec(c%5B"background-image"%5D)%3Bs%26%26s.length>1%26%26a(m,s%5B1%5D)%7Dif("IFRAME"%3D%3Dm.tagName)try%7Bvar l%3Di(m)%3Bif(l)%7Bvar f%3DRUMSpeedIndex(m.contentWindow)%3Bf%26%26g.push(%7Btm:f,area:l.area,rect:l%7D)%7D%7Dcatch(h)%7B%7D%7D%7D,m%3Dfunction()%7Bfor(var t%3D%7B%7D,r%3De.performance.getEntriesByType("resource"),n%3D0%3Bn<r.length%3Bn%2B%2B)t%5Br%5Bn%5D.name%5D%3Dr%5Bn%5D.responseEnd%3Bfor(var i%3D0%3Bi<g.length%3Bi%2B%2B)"tm"in g%5Bi%5D%7C%7C(g%5Bi%5D.tm%3Dvoid 0!%3D%3Dt%5Bg%5Bi%5D.url%5D%3Ft%5Bg%5Bi%5D.url%5D:0)%7D,c%3Dfunction()%7Bif("msFirstPaint"in e.performance.timing%26%26(t%3De.performance.timing.msFirstPaint-d),"chrome"in e%26%26"loadTimes"in e.chrome)%7Bvar r%3De.chrome.loadTimes()%3Bif("firstPaintTime"in r%26%26r.firstPaintTime>0)%7Bvar i%3Dr.startLoadTime%3B"requestTime"in r%26%26(i%3Dr.requestTime),r.firstPaintTime>%3Di%26%26(t%3D1e3*(r.firstPaintTime-i))%7D%7Dif(void 0%3D%3D%3Dt%7C%7C0>t%7C%7Ct>12e4)%7Bt%3De.performance.timing.responseStart-d%3Bfor(var a%3D%7B%7D,o%3Dn.getElementsByTagName("head")%5B0%5D.children,m%3D0%3Bm<o.length%3Bm%2B%2B)%7Bvar c%3Do%5Bm%5D%3B"SCRIPT"%3D%3Dc.tagName%26%26c.src%26%26!c.async%26%26(a%5Bc.src%5D%3D!0),"LINK"%3D%3Dc.tagName%26%26"stylesheet"%3D%3Dc.rel%26%26c.href%26%26(a%5Bc.href%5D%3D!0)%7Dfor(var s%3De.performance.getEntriesByType("resource"),l%3D!1,g%3D0%3Bg<s.length%3Bg%2B%2B)if(l%7C%7C!a%5Bs%5Bg%5D.name%5D%7C%7C"script"!%3Ds%5Bg%5D.initiatorType%26%26"link"!%3Ds%5Bg%5D.initiatorType)l%3D!0%3Belse%7Bvar f%3Ds%5Bg%5D.responseEnd%3B(void 0%3D%3D%3Dt%7C%7Cf>t)%26%26(t%3Df)%7D%7Dt%3DMath.max(t,0)%7D,s%3Dfunction()%7Bfor(var r%3D%7B0:0%7D,i%3D0,a%3D0%3Ba<g.length%3Ba%2B%2B)%7Bvar o%3Dt%3B"tm"in g%5Ba%5D%26%26g%5Ba%5D.tm>t%26%26(o%3Dg%5Ba%5D.tm),void 0%3D%3D%3Dr%5Bo%5D%26%26(r%5Bo%5D%3D0),r%5Bo%5D%2B%3Dg%5Ba%5D.area,i%2B%3Dg%5Ba%5D.area%7Dvar m%3DMath.max(n.documentElement.clientWidth,e.innerWidth%7C%7C0)*Math.max(n.documentElement.clientHeight,e.innerHeight%7C%7C0)%3Bif(m>0%26%26(m%3DMath.max(m-i,0)*h,void 0%3D%3D%3Dr%5Bt%5D%26%26(r%5Bt%5D%3D0),r%5Bt%5D%2B%3Dm,i%2B%3Dm),i)%7Bfor(var c in r)r.hasOwnProperty(c)%26%26f.push(%7Btm:c,area:r%5Bc%5D%7D)%3Bf.sort(function(e,t)%7Breturn e.tm-t.tm%7D)%3Bfor(var s%3D0,l%3D0%3Bl<f.length%3Bl%2B%2B)s%2B%3Df%5Bl%5D.area,f%5Bl%5D.progress%3Ds/i%7D%7D,l%3Dfunction()%7Bif(f.length)%7Br%3D0%3Bfor(var e%3D0,n%3D0,i%3D0%3Bi<f.length%3Bi%2B%2B)%7Bvar a%3Df%5Bi%5D.tm-e%3Ba>0%26%261>n%26%26(r%2B%3D(1-n)*a),e%3Df%5Bi%5D.tm,n%3Df%5Bi%5D.progress%7D%7Delse r%3Dt%7D,g%3D%5B%5D,f%3D%5B%5D,h%3D.1%3Btry%7Bvar d%3De.performance.timing.navigationStart%3Bo(),m(),c(),s(),l()%7Dcatch(u)%7B%7Dvar p%3Ddocument.createElement("h1")%3Breturn p.textContent%3D"Speed Index: "%2Br,p.style.position%3D"absolute",p.style.zIndex%3D"99999999999",p.style.top%3D"0px",p.style.left%3D"0px",p.style.backgroundColor%3D"green",p.style.padding%3D"1rem",document.body.appendChild(p),r%7D)()%7D()%3B
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment