PageSourceSearch

https://firefox-health-dashboard.netlify.app/assets/index.7bf92cc0.js

js firefox-health-dashboard.netlify.app collected 2026-10-03 10:44:07 UTC 14,087 bytes, 1 lines download raw bytes

1(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{0:function(e,t,n){"use strict";n.d(t,"e",(function(){return r})),n.d(t,"g",(function(){return p})),n.d(t,"j",(function(){return s})),n.d(t,"d",(function(){return c})),n.d(t,"c",(function(){return l})),n.d(t,"i",(function(){return u})),n.d(t,"k",(function(){return f})),n.d(t,"b",(function(){return a})),n.d(t,"h",(function(){return i})),n.d(t,"a",(function(){return h})),n.d(t,"f",(function(){return d}));const{isArray:r}=Array,o=[];function a(e=0){return new Array(e).fill(null)}function s(e){return null==e||""===e||Number.isNaN(e)||e===Number.POSITIVE_INFINITY||e===Number.NEGATIVE_INFINITY||function(e){return r(e)&&0===e.length||o.some(t=>e instanceof t)&&e.isEmpty()}(e)}function i(e){return r(e)||o.some(t=>e instanceof t)}function c(e){return!s(e)}function l(...e){for(const t of e)if(c(t))return t;return null}function u(e){return"string"==typeof e}function p(e){return u(e)?/^[+-]?[0123456789]+\.?0*([eE]\+?[0123456789]+)?$/y.test(e):Number.isInteger(e)}function f(e){return r(e)?e:e.replace(/\\\./g,"\b").split(".").map(e=>e.replace(/[\b]/g,"."))}class h{}const _={}.constructor;function d(e){return!s(e)&&(!e[Symbol.iterator]&&(e.constructor===_||e instanceof h))}},108:function(e,t,n){"use strict";n.r(t);var r=n(2),o=n.n(r),a=n(57),s=n(62),i=(n(71),n(38)),c=n.n(i),l=n(31),u=n(0),p=n(9),f=n(15);const h=[/\s*at (.*) \((.*):(\d+):(\d+)\)/,/\s*at (.*) \((.*)\)/,/\s*at( )(.*):(\d+):(\d+)/];class _ extends Error{constructor(e,t,n,r=0){super();let o=null,a=null,s=null;if(!Object(u.j)(e)){if(!Object(u.i)(e))throw _("expecting string, not {{type}}",{type:typeof e});Object(u.j)(n)&&(t instanceof _||t instanceof Error)?(o=e,a=_.wrap(t)):(o=e,s=Object(u.c)(t),a=_.wrap(n)),this.template=o,this.props=s,this.cause=a,this.stackOffset=r}}get trace(){return(e=this.stack,Object(u.j)(e)?[]:Object(u.e)(e)?e:e.split("\n").map(e=>h.map(t=>{const n=t.exec(e);return Object(u.j)(n)?null:{function:n[1],fileName:n[2],line:n[3],column:n[4]}}).find(u.d)).filter(u.d)).slice(this.stackOffset);var e}includes(e){return this.template===e||(!(!this.cause||!this.cause.includes(e))||f.a.expand(this.template,this.props).includes(e))}toString(){const e=[];return Object(u.d)(this.template)&&e.push(f.a.expand(this.template,this.props)),this.trace&&(e.push("stacktrace"),e.push(...this.trace.map(e=>{const t=["    "];return Object(u.d)(e.function)&&t.push("at {{function}}"),Object(u.d)(e.fileName)&&(t.push(" ({{fileName}}"),Object(u.d)(e.line)&&t.push(" line {{line}} column {{column}}"),t.push(")")),f.a.expand(t.join(""),e)}))),this.cause&&(e.push("caused by"),e.push(this.cause.toString())),e.join("\n")}get message(){const{template:e,props:t,cause:n}=this;return n?n.message:e?f.a.expand(e,t):"unknown error"}toData(){return{template:this.template,props:this.props,cause:Object(u.d)(this.cause)?this.cause.toData():null,trace:this.trace}}}_.wrap=e=>{if(Object(u.j)(e))return null;if(e instanceof _)return e;const t=new _;return e instanceof Error?(t.template=e.message,t.props=null,t.cause=null,t.stack=e.stack):Object(p.b)(e)&&(t.template=e.template,t.props=e.params,t.stack=e.trace,t.cause=_.wrap(t.cause)),t};class d{}d.note=(e,t)=>{console.log(f.a.expand(e,t))},d.warning=(e,t,n)=>{let r=null;r=e instanceof Error?_.wrap(e):new _(e,t,n,1),console.log(r.toString())},d.error=(e,t,n)=>{throw new _(e,t,n,1)},p.a.log=d,f.a.log=d;var m={colors:{error:"#ff4144"}};c.a.config("https://[email protected]/433").install();const b=(e,t)=>{c.a.captureException(e),t&&c.a.captureMessage(t)},g=m.colors.error,j={container:{position:"relative",height:"100%",width:"100%"},frame:{boxSizing:"border-box",position:"absolute",top:0,bottom:0,left:0,right:0,borderStyle:"solid",borderWidth:"0.2rem",borderColor:g,pointerEvents:"none"},message:{boxSizing:"border-box",backgroundColor:g,color:"white",width:"100%",position:"absolute",margin:0,padding:0,bottom:0,height:"1.0rem",textAlign:"center",opacity:.77}};class O extends o.a.Component{render(){const{error:e,classes:{container:t,frame:n,message:r},children:a}=this.props;return o.a.createElement("div",{className:t},a,o.a.createElement("div",{className:n}),o.a.createElement("div",{className:r},e.message))}}Object(l.a)(j)(O);var E=n(119),x=n(39),w=n.n(x),M=n(120),y=n(61),D=n.n(y);const P=Object(E.a)({box:{margin:0,position:"absolute",top:"50%",left:"50%",msTransform:"translate(-50%, -50%)",transform:"translate(-50%, -50%)",boxShadow:"3px 3px 5px 6px #ccc",borderRadius:"10px",padding:"0px"},title:{color:"white",backgroundColor:"black",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"10px 10px 0px 0px"},message:{color:"black",fontSize:"larger",alignContent:"center",padding:"5px 10px 10px 10px","& a":{textDecoration:"underline"}}});var C=e=>{const{title:t,box:n,message:r}=P(e);return o.a.createElement(M.a,{direction:"row",justify:"center",alignItems:"center",maxWidth:"sm",className:n},o.a.createElement(w.a,{className:t},o.a.createElement(D.a,null),o.a.createElement("h1",{style:{marginLeft:"10px"}},"health.graphics has been retired")),o.a.createElement(w.a,{className:r},o.a.createElement(w.a,null,o.a.createElement("p",null,"Thank you for visiting health.graphics, the previous home of the Firefox Health Dashboard. Due to realignment of resources based on our current priorities, this dashboard has been unmaintained for some time, leading to potential misrepresentation of our metrics, and we have made the decision to retire the site."),o.a.createElement("p",null,"Many of the visualisations that were shown on this dashboard can still be found at"," ",o.a.createElement("a",{href:"https://arewefastyet.com/"},"https://arewefastyet.com"),", but if there's something in particular that you're unable to find we'd be happy to answer questions"," ",o.a.createElement("a",{href:"https://chat.mozilla.org/#/room/#firefox-health-dashboard:mozilla.org"}
1,"in our public Matrix channel"),"."),o.a.createElement("p",null,"You can read more about the dashboard's retirement, or provide your feedback"," ",o.a.createElement("a",{href:"https://github.com/mozilla-frontend-infra/firefox-health-dashboard/issues/729"},"in our issue tracker"),"."),o.a.createElement("p",null,"Thank you to all"," ",o.a.createElement("a",{href:"https://github.com/mozilla-frontend-infra/firefox-health-dashboard/graphs/contributors"},"those who have contributed to health.graphics"),"."))))};n(106);class T extends o.a.Component{constructor(e){super(e),this.state={}}componentDidCatch(e,t){this.setState({error:e}),b(e,t)}render(){return this.state.error?o.a.createElement("p",{style:{textAlign:"center",fontSize:"1.5em"}},o.a.createElement("span",null,"There has been a critical error. We have reported it. If the issue is not fixed within few hours please file an issue:",o.a.createElement("br",null),o.a.createElement("a",{href:"https://github.com/mozilla/firefox-health-dashboard/issues/new",target:"_blank",rel:"noopener noreferrer"},"https://github.com/mozilla/firefox-health-dashboard/issues/new"))):this.props.children}}const I=document.getElementById("root");Object(a.render)(o.a.createElement(s.AppContainer,null,o.a.createElement(T,null,o.a.createElement(C,null))),I)},15:function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"a",(function(){return Template}));var _utils__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(0),_datas__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(9),_strings__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(47);let expandAny=null;class Template{constructor(e){this.template=e}}function expandArray(e,t){return e.map(e=>expandAny(e,t)).join("")}function expandLoop(e,t){const{from:n,template:r,separator:o}=e;return Object(_utils__WEBPACK_IMPORTED_MODULE_0__.i)(n)||Template.log.error("expecting from clause to be string"),_datas__WEBPACK_IMPORTED_MODULE_1__.a.get(t[0],e.from).map(e=>{const n=_datas__WEBPACK_IMPORTED_MODULE_1__.a.copy(t[0]);Object(_datas__WEBPACK_IMPORTED_MODULE_1__.b)(e)&&Object.entries(e).forEach(([e,t])=>{n[e.toLowerCase()]=t}),t.forEach((e,t)=>{n[Object(_utils__WEBPACK_IMPORTED_MODULE_0__.b)(t+3).join(".")]=e});const o=t.slice();return o.unshift(n),expandAny(r,o)}).join(Object(_utils__WEBPACK_IMPORTED_MODULE_0__.c)(o,""))}function run(method,val,rest){return eval("method(val, "+rest)}function expandText(e,t){const n=t[0],[r,...o]=e.split("{{");return[[r],...o.map(e=>{const[t,r]=e.split("}}",2),[o,...a]=t.split("|");let s=_datas__WEBPACK_IMPORTED_MODULE_1__.a.get(n,o.toLowerCase());return a.forEach(e=>{const[n,r]=e.split("(",2);void 0===_strings__WEBPACK_IMPORTED_MODULE_2__.a[n]&&Template.log.error("{{func}} is an unknown string function for template expansion",{func:n});const o=_strings__WEBPACK_IMPORTED_MODULE_2__.a[n];if(Object(_utils__WEBPACK_IMPORTED_MODULE_0__.j)(r))s=o(s);else try{s=run(o,s,r)}catch(e){Template.log.warning("Can not evaluate {{variable|json}}",{variable:t},e)}}),void 0===s?"undefined"+r:null==s?r:Object(_utils__WEBPACK_IMPORTED_MODULE_0__.i)(s)?s+r:s.toString?s.toString()+r:`${s}${r}`})].join("")}function expando(e,t){if(void 0===t){if(Object(_utils__WEBPACK_IMPORTED_MODULE_0__.i)(e))return e;Template.log.error("Must have parameters")}const n=function e(t){if(null==t)return t;if(Object(_datas__WEBPACK_IMPORTED_MODULE_1__.b)(t)){const n={};return Object.entries(t).forEach(([t,r])=>{n[t.toLowerCase()]=e(r)}),n}return t}(t);return expandAny(e,[n])}expandAny=(e,t)=>{if(Object(_utils__WEBPACK_IMPORTED_MODULE_0__.j)(e))return"";if(Object(_utils__WEBPACK_IMPORTED_MODULE_0__.e)(e))return expandArray(e,t);if(Object(_utils__WEBPACK_IMPORTED_MODULE_0__.i)(e))return expandText(e,t);if(e.from)return expandLoop(e,t);throw Template.log.error("Not recognized {{template|json}}",{template:e})},Template.expand=expando,Template.prototype.expand=function(e){return expando(this.template,e)}},47:function(e,t,n){"use strict";var r=n(0);function o(e){return Object(r.j)(e)||e<=0?null:Math.log(e)/Math.log(10)}function a(e,t){return Object(r.j)(e)?null:e-function(e,t){if(Object(r.j)(e))return null;const n=Object(r.c)(t,1);return e<0?(n+e%n)%n:e%n}(e,t)}function s(e,t){if(Object(r.j)(e))return null;if(void 0===t)return Math.round(e);if(0===e)return 0;const{digits:n,places:a}=t,s=Object(r.c)(n,a);let i=null;if(Object(r.d)(s)){if(s<=0)return 10**Math.round(o(e));i=10**(s-function(e,t){if(Object(r.j)(e))return null;const n=Object(r.c)(t,1);return Math.ceil(e/n)*n}
1(o(e)))}else i=10**t;return Math.round(e*i)/i}const i=(e,t,n)=>Math.max(t,Math.min(n,e)),c={indent(e,t){const n=Object(r.c)(t,1),o="    ".repeat(n),a=e.toString(),s=a.trimRight(),i=c.rightBut(a,s.length);return o+s.split("\n").join("\n"+o)+i},left:(e,t)=>e.slice(0,i(t,0,e.length)),right:(e,t)=>e.slice(i(e.length-t,0,e.length)),leftBut:(e,t)=>e.slice(0,i(e.length-t,0,e.length)),rightBut:(e,t)=>e.slice(i(t,0,e.length),e.length),comma(e){const t=e.toString().split(".");return t[0]=t[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),t.join(".")},quote:e=>c.json(e),round:(e,t)=>""+s(Object(r.i)(e)?Number.parseFloat(e):e,{digits:t}),metric:function(e,t){const n=a(Math.log10(e)/3);return s(e/10**(3*n),t)+["n","µ","m","","K","M","G","T"][n+3]},upper:e=>Object(r.i)(e)?e.toUpperCase():c.json(e).toUpperCase(),lower:e=>Object(r.i)(e)?e.toLowerCase():c.json(e).toLowerCase(),trimLeft(e,t){if(Object(r.j)(t))return e.trimLeft();let n=e;for(;n.startsWith(t);)n=n.slice(t.length);return n},trimRight(e,t){if(Object(r.j)(t))return e.trimRight();let n=e;for(;n.endsWith(t);)n=c.leftBut(n,t.length);return n},trim(e,t){if(Object(r.j)(t))return e.trim();let n=e;for(;n.startsWith(t);)n=n.slice(t.length);for(;n.endsWith(t);)n=n.slice(0,n.length-t.length);return n},replaceAll:(e,t,n)=>e.split(t).join(n),between(e,t,n){let o=0;if(Object(r.d)(t)){if(o=e.indexOf(t),-1===o)return null;o+=t.length}let a=e.length;if(Object(r.d)(n)){if(a=e.indexOf(n,o),-1===a)return null;
1Object(r.d)(t)&&(o=e.lastIndexOf(t,a)+t.length)}return e.slice(o,a)},percent:e=>s(100*e,{places:2})+"%",json:e=>JSON.stringify(e)};t.a=c},66:function(e,t,n){e.exports=n(108)},71:function(e,t,n){},9:function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));var r=n(0);const o=r.a,a=r.f;o.isEmpty=e=>!!Object(r.j)(e)||!o.toPairs(e).some(r.d),o.zip=(e,t)=>{const n={};return void 0===t?e.forEach(([e,t])=>{n[e]=t}):e.forEach((e,r)=>{n[e]=t[r]}),n},o.copy=(e,t)=>{const n=Object(r.c)(t,{});return o.toPairs(e).forEach((e,t)=>{Object(r.d)(e)&&(n[t]=e)}),n},o.deepCopy=e=>{if(a(e)){const t={};return Object.entries(e).forEach(([e,n])=>{t[e]=o.deepCopy(n)}),t}return Object(r.h)(e)?e.map(e=>o.deepCopy(e)):e},o.setDefault=(e,...t)=>{function n(e,t,s){const i=e;return o.toPairs(t).forEach((e,t)=>{const c=i[t];Object(r.j)(c)?i[t]=e:-1!==s.indexOf(c)?o.log.warning("possible loop"):a(c)&&n(c,e,s.concat([c]))}),i}let s=e;for(const e of t)if(!Object(r.j)(e)){if(null==s){if(a(e))return n({},e,[]);s=e}a(s)&&n(s,e,[])}return s},o.get=(e,t)=>{if(Object(r.j)(e))return e;if("."===t)return e;const n=Object(r.k)(t);let o=e;for(const e of n){if(Object(r.e)(o))"length"===e?o=o.length:Object(r.g)(e)?o=o[e]:Object(r.e)(o)&&(o=o.map(t=>a(t)?t[e]:null));else{if(!a(o))return null;o=o[e]}if(Object(r.j)(o))return null}return o},o.set=(e,t,n)=>{(Object(r.j)(e)||"."===t||Object(r.j)(t))&&o.log.error("must be given an object and field");const a=Object(r.k)(t),[s]=a.slice(-1),i=a.slice(0,a.length-1);let c=e;for(const e of i){let t=null;t=Object(r.e)(c)&&Object(r.g)(e)?c[Number.parseInt(e,10)]:c[e];const n=typeof t;"object"!==n&&"function"!==n&&(t={},c[e]=t),c=t}if(Object(r.e)(c)&&Object(r.g)(s)){c[Number.parseInt(s,10)]=n}else c[s]=n;return e},o.add=(e,t,n)=>{(Object(r.j)(e)||"."===t)&&o.log.error("must be given an object and field");const a=Object(r.k)(t),[s]=a.slice(-1),i=a.slice(0,a.length-1);let c=e;for(const e of i){let t=c[e];Object(r.j)(t)&&(t={},c[e]=t),c=t}const l=c[s];return Object(r.j)(l)?c[s]=n:Object(r.e)(l)?c[s].push(n):c[s]=[l,n],e},o.fromConfig=()=>{throw new Error("please import vectors to make this work")}}},[[66,1,2]]]);

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.