Skip to content

Instantly share code, notes, and snippets.

@jussiry
Last active September 28, 2015 08:18
Show Gist options
  • Save jussiry/1411268 to your computer and use it in GitHub Desktop.
Save jussiry/1411268 to your computer and use it in GitHub Desktop.
Get global JS vars of any web app
// Open a console of you browser* and copy-paste this script to it. You'll get a scatter score
// (how many global variables that applications creates) and easy acces to those variables.
// * optimised for Chrome and Firefox; different browsers can have different
// default variables, that this script don't hide.
(function() {
var default_vars = {"window":true,"document":true,"console":true,"getInterface":true,"constructor":true,"InstallTrigger":true,"location":true,"_FirebugCommandLine":true,"addEventListener":true,"removeEventListener":true,"dispatchEvent":true,"dump":true,"name":true,"parent":true,"top":true,"sessionStorage":true,"localStorage":true,"globalStorage":true,"getComputedStyle":true,"getSelection":true,"scrollByLines":true,"length":true,"self":true,"history":true,"locationbar":true,"menubar":true,"personalbar":true,"scrollbars":true,"statusbar":true,"toolbar":true,"status":true,"close":true,"stop":true,"focus":true,"blur":true,"opener":true,"frameElement":true,"navigator":true,"applicationCache":true,"alert":true,"confirm":true,"prompt":true,"print":true,"showModalDialog":true,"postMessage":true,"atob":true,"btoa":true,"matchMedia":true,"screen":true,"innerWidth":true,"innerHeight":true,"scrollX":true,"pageXOffset":true,"scrollY":true,"pageYOffset":true,"scroll":true,"scrollTo":true,"scrollBy":true,"screenX":true,"screenY":true,"outerWidth":true,"outerHeight":true,"scrollByPages":true,"sizeToContent":true,"content":true,"closed":true,"crypto":true,"pkcs11":true,"controllers":true,"defaultStatus":true,"mozInnerScreenX":true,"mozInnerScreenY":true,"scrollMaxX":true,"scrollMaxY":true,"fullScreen":true,"back":true,"forward":true,"home":true,"moveTo":true,"moveBy":true,"resizeTo":true,"resizeBy":true,"updateCommands":true,"find":true,"mozPaintCount":true,"mozRequestAnimationFrame":true,"mozAnimationStartTime":true,"URL":true,"setTimeout":true,"setInterval":true,"clearTimeout":true,"clearInterval":true,"setResizable":true,"captureEvents":true,"releaseEvents":true,"routeEvent":true,"enableExternalCapture":true,"disableExternalCapture":true,"open":true,"openDialog":true,"frames":true,"mozIndexedDB":true,"performance":true,"external":true,"chrome":true,"v8Locale":true,"i":true,"chrome_vars":true,"SVGPathSegLinetoVerticalRel":true,"SVGFESpotLightElement":true,"HTMLButtonElement":true,"Worker":true,"webkitIDBTransaction":true,"webkitNotifications":true,"EntityReference":true,"NodeList":true,"SVGAnimatedNumber":true,"SVGTSpanElement":true,"MimeTypeArray":true,"SVGPoint":true,"SVGScriptElement":true,"OverflowEvent":true,"HTMLTableColElement":true,"OfflineAudioCompletionEvent":true,"HTMLOptionElement":true,"HTMLInputElement":true,"webkitIDBIndex":true,"SVGFEPointLightElement":true,"SVGPathSegList":true,"SVGImageElement":true,"HTMLLinkElement":true,"MutationEvent":true,"HTMLMetaElement":true,"XMLHttpRequestProgressEvent":true,"WebKitCSSTransformValue":true,"Clipboard":true,"HTMLTableElement":true,"SharedWorker":true,"SVGAElement":true,"SVGAnimatedRect":true,"webkitIDBDatabaseError":true,"HTMLSpanElement":true,"SVGGElement":true,"SVGLinearGradientElement":true,"webkitIndexedDB":true,"SVGForeignObjectElement":true,"SVGAnimateElement":true,"SVGFontElement":true,"webkitAudioContext":true,"SVGFontFaceElement":true,"ErrorEvent":true,"Element":true,"SVGPathSegCurvetoQuadraticSmoothRel":true,"SVGStopElement":true,"HTMLUnknownElement":true,"StyleSheetList":true,"Float64Array":true,"WebGLShader":true,"Uint32Array":true,"TimeRanges":true,"HTMLHRElement":true,"MediaStreamEvent":true,"WebKitPoint":true,"screenLeft":true,"SVGViewElement":true,"SVGGradientElement":true,"WebGLContextEvent":true,"SVGPathSegMovetoRel":true,"CanvasPattern":true,"WebGLActiveInfo":true,"HTMLProgressElement":true,"HTMLDivElement":true,"HashChangeEvent":true,"KeyboardEvent":true,"SVGHKernElement":true,"HTMLTitleElement":true,"HTMLQuoteElement":true,"webkitIDBDatabaseException":true,"SVGFEImageElement":true,"DOMTokenList":true,"WebGLProgram":true,"SVGPathSegMovetoAbs":true,"RangeException":true,"SVGTextPathElement":true,"SVGAnimatedTransformList":true,"webkitIDBFactory":true,"HTMLLegendElement":true,"SVGPathSegCurvetoQuadraticAbs":true,"MouseEvent":true,"MediaError":true,"AudioProcessingEvent":true,"CompositionEvent":true,"Uint16Array":true,"HTMLObjectElement":true,"HTMLFontElement":true,"SVGFilterElement":true,"WebKitTransitionEvent":true,"MediaList":true,"SVGVKernElement":true,"SVGPaint":true,"SVGFETileElement":true,"Document":true,"XPathException":true,"TextMetrics":true,"HTMLHeadElement":true,"SVGFEComponentTransferElement":true,"ProgressEvent":true,"SVGAnimatedPreserveAspectRatio":true,"Node":true,"SVGRectElement":true,"CSSPageRule":true,"SVGLineElement":true,"CharacterData":true,"FileError":true,"MessagePort":true,"SVGDocument":true,"ClientRect":true,"Option":true,"SVGDescElement":true,"Notation":true,"WebGLBuffer":true,"StorageEvent":true,"HTMLFieldSetElement":true,"HTMLVideoElement":true,"SVGRenderingIntent":true,"SVGPathSegLinetoRel":true,"WebGLTexture":true,"webkitAudioPannerNode":true,"SVGGlyphRefElement":true,"UIEvent":true,"HTMLTableRowElement":true,"HTMLDListElement":true,"File":true,"SVGEllipseElement":true,"SVGFEFuncRElement":true,"Int32Array":true,"HTMLAllCollection":true,"CSSValue":true,"SVGAnimatedNumberList":true,"HTMLParamElement":true,"SVGElementInstance":true,"HTMLModElement":true,"SVGPathSegLinetoHorizontalRel":true,"SVGAltGlyphDefElement":true,"CSSFontFaceRule":true,"SVGPathSeg":true,"CSSStyleDeclaration":true,"WebSocket":true,"TouchEvent":true,"Rect":true,"StyleSheet":true,"SVGPathSegLinetoHorizontalAbs":true,"SVGColor":true,"ArrayBuffer":true,"SVGComponentTransferFunctionElement":true,"SVGStyleElement":true,"Int16Array":true,"HTMLOutputElement":true,"SVGNumberList":true,"DataView":true,"DeviceOrientationEvent":true,"Blob":true,"SVGFEFloodElement":true,"clientInformation":true,"CloseEvent":true,"webkitStorageInfo":true,"HTMLStyleElement":true,"HTMLBaseElement":true,"HTMLBRElement":true,"FileReader":true,"SVGFEBlendElement":true,"HTMLHtmlElement":true,"SVGFEConvolveMatrixElement":true,"SVGFEGaussianBlurElement":true,"HTMLTextAreaElement":true,"HTMLBaseFontElement":true,"webkitIDBCursor":true,"defaultstatus":true,"WebGLRenderbuffer":true,"SVGTextElement":true,"SVGFEOffsetElement":true,"RGBColor":true,"SVGGlyphElement":true,"Float32Array":true,"HTMLCanvasElement":true,"ProcessingInstruction":true,"SVGZoomEvent":true,"HTMLFrameElement":true,"SVGElementInstanceList":true,"SVGFEDisplacementMapElement":true,"PopStateEvent":true,"SVGPathSegCurvetoCubicSmoothRel":true,"HTMLElement":true,"HTMLSelectElement":true,"Int8Array":true,"SVGFEDistantLightElement":true,"ImageData":true,"SVGFEFuncBElement":true,"HTMLIsIndexElement":true,"HTMLDocument":true,"SVGCircleElement":true,"HTMLCollection":true,"SVGSetElement":true,"SVGFEMergeElement":true,"HTMLDirectoryElement":true,"CSSMediaRule":true,"MessageEvent":true,"SVGFESpecularLightingElement":true,"DOMException":true,"SVGNumber":true,"SVGFontFaceSrcElement":true,"CSSRule":true,"SVGElement":true,"WebKitCSSMatrix":true,"SVGMissingGlyphElement":true,"HTMLScriptElement":true,"CustomEvent":true,"DOMImplementation":true,"SVGLength":true,"HTMLOptGroupElement":true,"SVGPathSegLinetoVerticalAbs":true,"SVGTextPositioningElement":true,"HTMLKeygenElement":true,"styleMedia":true,"SVGFEFuncGElement":true,"HTMLAreaElement":true,"HTMLFrameSetElement":true,"SVGPathSegCurvetoQuadraticRel":true,"SVGAnimateMotionElement":true,"HTMLIFrameElement":true,"Comment":true,"XMLSerializer":true,"Event":true,"Range":true,"HTMLPreElement":true,"DOMStringList":true,"Image":true,"SVGAltGlyphItemElement":true,"SVGPathSegCurvetoQuadraticSmoothAbs":true,"SVGRect":true,"SVGFontFaceFormatElement":true,"SVGAnimateTransformElement":true,"webkitIDBDatabase":true,"HTMLOListElement":true,"HTMLFormElement":true,"SVGPathSegCurvetoCubicSmoothAbs":true,"DOMParser":true,"SVGPathSegClosePath":true,"SVGPathSegArcRel":true,"EventException":true,"SVGAnimatedString":true,"SVGTransformList":true,"webkitIDBRequest":true,"SVGFEMorphologyElement":true,"SVGAnimatedLength":true,"SVGPolygonElement":true,"SVGPathSegLinetoAbs":true,"WebKitFlags":true,"HTMLMediaElement":true,"XMLDocument":true,"webkitIDBObjectStore":true,"SVGMaskElement":true,"HTMLHeadingElement":true,"XMLHttpRequest":true,"TextEvent":true,"event":true,"HTMLMeterElement":true,"SVGPathElement":true,"SVGStringList":true,"HTMLAppletElement":true,"devicePixelRatio":true,"FileList":true,"webkitURL":true,"CanvasRenderingContext2D":true,"MessageChannel":true,"SVGFEDropShadowElement":true,"WebGLRenderingContext":true,"webkitIDBKeyRange":true,"HTMLMarqueeElement":true,"WebKitCSSKeyframesRule":true,"XSLTProcessor":true,"CSSImportRule":true,"BeforeLoadEvent":true,"PageTransitionEvent":true,"CSSRuleList":true,"SVGAnimatedLengthList":true,"SVGTransform":true,"HTMLSourceElement":true,"SVGTextContentElement":true,"HTMLTableSectionElement":true,"SVGRadialGradientElement":true,"HTMLTableCellElement":true,"SVGCursorElement":true,"DocumentFragment":true,"SVGPathSegCurvetoCubicAbs":true,"SVGUseElement":true,"FormData":true,"SVGPreserveAspectRatio":true,"HTMLMapElement":true,"XPathResult":true,"HTMLLIElement":true,"SVGSwitchElement":true,"SVGLengthList":true,"Plugin":true,"HTMLParagraphElement":true,"HTMLBlockquoteElement":true,"SVGPathSegArcAbs":true,"SVGAnimatedBoolean":true,"CSSStyleRule":true,"SVGFontFaceUriElement":true,"Text":true,"HTMLUListElement":true,"SpeechInputEvent":true,"WebGLUniformLocation":true,"SVGPointList":true,"CSSPrimitiveValue":true,"HTMLEmbedElement":true,"PluginArray":true,"SVGPathSegCurvetoCubicRel":true,"ClientRectList":true,"SVGMetadataElement":true,"SVGTitleElement":true,"SVGAnimatedAngle":true,"CSSCharsetRule":true,"SVGAnimateColorElement":true,"SVGMatrix":true,"HTMLBodyElement":true,"SVGSymbolElement":true,"HTMLAudioElement":true,"CDATASection":true,"SVGFEDiffuseLightingElement":true,"SVGFETurbulenceElement":true,"WebKitBlobBuilder":true,"SVGAnimatedEnumeration":true,"WebKitCSSKeyframeRule":true,"Audio":true,"SVGFEMergeNodeElement":true,"Entity":true,"SQLException":true,"HTMLTableCaptionElement":true,"DOMStringMap":true,"MimeType":true,"EventSource":true,"SVGException":true,"NamedNodeMap":true,"WebGLFramebuffer":true,"XMLHttpRequestUpload":true,"WebKitAnimationEvent":true,"Uint8Array":true,"SVGAnimatedInteger":true,"HTMLMenuElement":true,"SVGDefsElement":true,"SVGAngle":true,"SVGSVGElement":true,"XPathEvaluator":true,"HTMLImageElement":true,"NodeFilter":true,"SVGAltGlyphElement":true,"SVGClipPathElement":true,"Attr":true,"Counter":true,"SVGPolylineElement":true,"DOMSettableTokenList":true,"SVGPatternElement":true,"SVGFECompositeElement":true,"CSSValueList":true,"XMLHttpRequestException":true,"SVGFEColorMatrixElement":true,"SVGTRefElement":true,"WheelEvent":true,"SVGUnitTypes":true,"HTMLLabelElement":true,"HTMLAnchorElement":true,"SVGFEFuncAElement":true,"CanvasGradient":true,"DocumentType":true,"Storage":true,"SVGMPathElement":true,"CSSStyleSheet":true,"SVGMarkerElement":true,"offscreenBuffering":true,"SVGFontFaceNameElement":true,"screenTop":true,"onseeked":true,"onkeypress":true,"onwebkitanimationend":true,"onmouseup":true,"onemptied":true,"onseeking":true,"onclick":true,"onmousedown":true,"onwebkitanimationiteration":true,"onpopstate":true,"onmessage":true,"onunload":true,"onmouseover":true,"ontimeupdate":true,"onstalled":true,"onvolumechange":true,"ondragenter":true,"ondurationchange":true,"onwaiting":true,"ondragstart":true,"onstorage":true,"ononline":true,"onbeforeunload":true,"onplay":true,"onloadstart":true,"onsuspend":true,"ondrag":true,"onscroll":true,"ondblclick":true,"ondragend":true,"onloadedmetadata":true,"onpagehide":true,"onmousewheel":true,"onreset":true,"onpageshow":true,"onpause":true,"onmouseout":true,"oninvalid":true,"onsubmit":true,"oncontextmenu":true,"onoffline":true,"onload":true,"ondragleave":true,"onkeyup":true,"onkeydown":true,"oncanplay":true,"oncanplaythrough":true,"ondrop":true,"ondragover":true,"onratechange":true,"onerror":true,"onloadeddata":true,"onwebkitanimationstart":true,"onabort":true,"onselect":true,"onplaying":true,"ondeviceorientation":true,"onsearch":true,"onhashchange":true,"onended":true,"onmousemove":true,"onwebkittransitionend":true,"onchange":true,"onprogress":true,"oninput":true,"onblur":true,"onresize":true,"onfocus":true,"webkitRequestAnimationFrame":true,"webkitCancelRequestAnimationFrame":true,"getMatchedCSSRules":true,"webkitConvertPointFromPageToNode":true,"webkitConvertPointFromNodeToPage":true,"openDatabase":true,"webkitRequestFileSystem":true,"webkitResolveLocalFileSystemURL":true,"TEMPORARY":true,"PERSISTENT":true}
// Only Chrome (v. 32) vars: var default_vars = {"top":true,"window":true,"location":true,"external":true,"chrome":true,"document":true,"google":true,"_":true,"lgt":true,"closure_memoize_cache_":true,"closure_lm_865675":true,"gbar_":true,"gbar":true,"__PVT":true,"gapi":true,"___jsl":true,"closure_lm_799764":true,"drasil":true,"osapi":true,"gadgets":true,"iframer":true,"shindig":true,"pos":true,"googleapis":true,"ToolbarApi":true,"iframes":true,"IframeBase":true,"Iframe":true,"IframeProxy":true,"IframeWindow":true,"__gapi_jstiming__":true,"o":true,"webkitNotifications":true,"localStorage":true,"sessionStorage":true,"applicationCache":true,"webkitStorageInfo":true,"indexedDB":true,"webkitIndexedDB":true,"crypto":true,"CSS":true,"performance":true,"console":true,"devicePixelRatio":true,"styleMedia":true,"parent":true,"opener":true,"frames":true,"self":true,"defaultstatus":true,"defaultStatus":true,"status":true,"name":true,"length":true,"closed":true,"pageYOffset":true,"pageXOffset":true,"scrollY":true,"scrollX":true,"screenTop":true,"screenLeft":true,"screenY":true,"screenX":true,"innerWidth":true,"innerHeight":true,"outerWidth":true,"outerHeight":true,"offscreenBuffering":true,"frameElement":true,"clientInformation":true,"navigator":true,"toolbar":true,"statusbar":true,"scrollbars":true,"personalbar":true,"menubar":true,"locationbar":true,"history":true,"screen":true,"postMessage":true,"close":true,"blur":true,"focus":true,"ontouchstart":true,"ontouchmove":true,"ontouchend":true,"ontouchcancel":true,"ondeviceorientation":true,"ondevicemotion":true,"onunload":true,"onstorage":true,"onresize":true,"onpopstate":true,"onpageshow":true,"onpagehide":true,"ononline":true,"onoffline":true,"onmessage":true,"onhashchange":true,"onbeforeunload":true,"onwaiting":true,"onvolumechange":true,"ontimeupdate":true,"onsuspend":true,"onsubmit":true,"onstalled":true,"onshow":true,"onselect":true,"onseeking":true,"onseeked":true,"onscroll":true,"onreset":true,"onratechange":true,"onprogress":true,"onplaying":true,"onplay":true,"onpause":true,"onmousewheel":true,"onmouseup":true,"onmouseover":true,"onmouseout":true,"onmousemove":true,"onmouseleave":true,"onmouseenter":true,"onmousedown":true,"onloadstart":true,"onloadedmetadata":true,"onloadeddata":true,"onload":true,"onkeyup":true,"onkeypress":true,"onkeydown":true,"oninvalid":true,"oninput":true,"onfocus":true,"onerror":true,"onended":true,"onemptied":true,"ondurationchange":true,"ondrop":true,"ondragstart":true,"ondragover":true,"ondragleave":true,"ondragenter":true,"ondragend":true,"ondrag":true,"ondblclick":true,"oncuechange":true,"oncontextmenu":true,"onclose":true,"onclick":true,"onchange":true,"oncanplaythrough":true,"oncanplay":true,"oncancel":true,"onblur":true,"onabort":true,"onwheel":true,"onwebkittransitionend":true,"onwebkitanimationstart":true,"onwebkitanimationiteration":true,"onwebkitanimationend":true,"ontransitionend":true,"onsearch":true,"getSelection":true,"print":true,"stop":true,"open":true,"showModalDialog":true,"alert":true,"confirm":true,"prompt":true,"find":true,"scrollBy":true,"scrollTo":true,"scroll":true,"moveBy":true,"moveTo":true,"resizeBy":true,"resizeTo":true,"matchMedia":true,"requestAnimationFrame":true,"cancelAnimationFrame":true,"webkitRequestAnimationFrame":true,"webkitCancelAnimationFrame":true,"webkitCancelRequestAnimationFrame":true,"captureEvents":true,"releaseEvents":true,"atob":true,"btoa":true,"setTimeout":true,"clearTimeout":true,"setInterval":true,"clearInterval":true,"TEMPORARY":true,"PERSISTENT":true,"getComputedStyle":true,"getMatchedCSSRules":true,"webkitConvertPointFromPageToNode":true,"webkitConvertPointFromNodeToPage":true,"webkitRequestFileSystem":true,"webkitResolveLocalFileSystemURL":true,"openDatabase":true,"addEventListener":true,"removeEventListener":true,"dispatchEvent":true}
window.global_vars = {};
var scatter_score = 0;
for( i in window ){
if( !default_vars[i] ){
global_vars[i] = window[i];
scatter_score += 1;
}
}
console.log('Scatter score (smaller is better): '+scatter_score);
console.log(global_vars);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment