- if (typeof(sentrySrc) != "undefined") - if (sentrySrc.match(/^([a-z]+:)?\/\//i)) script(src=sentrySrc) - else script(src=buildJsPath("libs/"+sentrySrc, {fingerprint:false})) - if (typeof(sentrySrc) != "undefined") script(type="text/javascript"). if (typeof(Raven) != "undefined" && Raven.config) { Raven.config("#{sentryPublicDSN}", { tags: { 'commit': '@@COMMIT@@', 'build': '@@RELEASE@@' }, release: '@@RELEASE@@', // Ignore list based off: https://gist.github.com/1878283 ignoreErrors: [ 'DealPly', // Random plugins/extensions 'top.GLOBALS', // See: http://blog.errorception.com/2012/03/tale-of-unfindable-js-error.html 'originalCreateNotification', 'canvas.contentDocument', 'MyApp_RemoveAllHighlights', 'http://tt.epicplay.com', 'Can\'t find variable: ZiteReader', 'jigsaw is not defined', 'ComboSearch is not defined', 'http://loading.retry.widdit.com/', 'atomicFindClose', // Facebook borked 'fb_xd_fragment', // ISP optimizing proxy - `Cache-Control: no-transform` seems to reduce this. (thanks @acdha) // See http://stackoverflow.com/questions/4113268/how-to-stop-javascript-injection-from-vodafone-proxy 'bmi_SafeAddOnload', 'EBCallBackMessageReceived', // See http://toolbar.conduit.com/Developer/HtmlAndGadget/Methods/JSInjection.aspx 'conduitPage', '/NS_ERROR_NOT_CONNECTED/i', "/Cannot read property 'row' of undefined/i", 'TypeError: start is undefined' ], ignoreUrls: [ // Facebook flakiness /graph\.facebook\.com/i, // Facebook blocked /connect\.facebook\.net\/en_US\/all\.js/i, // Woopra flakiness /eatdifferent\.com\.woopra-ns\.com/i, /static\.woopra\.com\/js\/woopra\.js/i, // Chrome extensions /extensions\//i, /^chrome:\/\//i, // Other plugins /127\.0\.0\.1:4001\/isrunning/i, // Cacaoweb /webappstoolbarba\.texthelp\.com\//i, /metrics\.itunes\.apple\.com\.edgesuite\.net\//i, /a\.disquscdn\.com/i, /platform\.twitter\.com/i, /pstatic\.datafastguru\.info/i ], shouldSendCallback: function(data) { // only send a fraction of errors var sampleRate = 0.01; return (Math.random() <= sampleRate); }, dataCallback: function(data) { // remove circular references from object var cache = []; var s = JSON.stringify(data, function(k, v) { if (typeof v === 'object' && v !== null) { if (cache.indexOf(v) !== -1) return "[circular]"; cache.push(v); }; return v; }); return JSON.parse(s); } // we highly recommend restricting exceptions to a domain in order to filter out clutter // whitelistUrls: ['example.com/scripts/'] }).install(); } - if (user && typeof(user) != "undefined" && typeof (user.email) != "undefined") script(type="text/javascript"). if (typeof(Raven) != "undefined" && Raven.setUserContext) { Raven.setUserContext({email: '#{user.email}'}); }