Skip to content

Commit a10e268

Browse files
committed
Update to latest Obs.js
1 parent e5e4808 commit a10e268

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

_includes/head.html

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@
33
<meta name=viewport content="width=device-width, minimum-scale=1.0">
44

55
<script>
6-
window.obs = { config: { observeChanges: false } }
7-
</script>
8-
<script>
9-
;(()=>{const d=document.currentScript;if(!d||d.src||(d.type&&d.type.toLowerCase()==="module")){if(!/^(localhost|127\.0\.0\.1|::1)$/.test(location.hostname))return}const e=document.documentElement,{connection:n}=navigator;window.obs=window.obs||{};const o=(window.obs&&window.obs.config)||{},a=o.observeChanges!==!1,u=t=>Number.isFinite(t)?Math.ceil(t/25)*25:null,c=t=>Number.isFinite(t)?t<75?"low":t<=275?"medium":"high":null,l=t=>Number.isFinite(t)?Math.ceil(t):null,s=()=>{const t=window.obs||{},n=typeof t.downlinkBucket==="number"?t.downlinkBucket:null,o=t.rttCategory==="low",a=t.rttCategory==="high",s=n!=null&&n>=8,i=n!=null&&n<=5;t.connectionCapability=o&&s?"strong":a||i?"weak":"moderate";const r=t.dataSaver===!0||t.batteryLow===!0;t.conservationPreference=r?"conserve":"neutral";const m=!r&&t.connectionCapability==="strong",h=r||t.connectionCapability==="weak";t.deliveryMode=m?"rich":h?"lite":"cautious",t.canShowRichMedia=t.deliveryMode==="rich",t.shouldAvoidRichMedia=t.deliveryMode==="lite",["strong","moderate","weak"].forEach(r=>{e.classList.remove(`has-connection-capability-${r}`)}),e.classList.add(`has-connection-capability-${t.connectionCapability}`),["conserve","neutral"].forEach(r=>{e.classList.remove(`has-conservation-preference-${r}`)}),e.classList.add(`has-conservation-preference-${t.conservationPreference}`),["rich","cautious","lite"].forEach(r=>{e.classList.remove(`has-delivery-mode-${r}`)}),e.classList.add(`has-delivery-mode-${t.deliveryMode}`)},r=()=>{if(!n)return;const{saveData:t,rtt:o,downlink:a}=n;window.obs.dataSaver=!!t,e.classList.toggle("has-data-saver",!!t);const i=u(o);i!=null&&(window.obs.rttBucket=i);const r=c(o);r&&(window.obs.rttCategory=r,["low","medium","high"].forEach(t=>e.classList.remove(`has-latency-${t}`)),e.classList.add(`has-latency-${r}`));const m=l(a);if(m!=null){window.obs.downlinkBucket=m;const t=m<=5,n=m>=8;e.classList.toggle("has-bandwidth-low",t),e.classList.toggle("has-bandwidth-high",n)}"downlinkMax"in n&&(window.obs.downlinkMax=n.downlinkMax),s()},m=t=>{if(!t)return;const{level:n,charging:o}=t,i=Number.isFinite(n)?n<=.05:null;window.obs.batteryCritical=i;const a=Number.isFinite(n)?n<=.2:null;window.obs.batteryLow=a,["critical","low"].forEach(t=>e.classList.remove(`has-battery-${t}`)),i?e.classList.add("has-battery-critical"):a&&e.classList.add("has-battery-low");const c=!!o;window.obs.batteryCharging=c,e.classList.toggle("has-battery-charging",c),s()};r(),a&&n&&typeof n.addEventListener==="function"&&n.addEventListener("change",r),"getBattery"in navigator&&navigator.getBattery().then(t=>{m(t),a&&typeof t.addEventListener==="function"&&(t.addEventListener("levelchange",()=>m(t)),t.addEventListener("chargingchange",()=>m(t)))}).catch(()=>{})})();
6+
/*! Obs.js | (c) Harry Roberts, csswizardry.com | MIT */
7+
;(()=>{const e=document.currentScript;if((!e||e.src||e.type&&"module"===e.type.toLowerCase())&&!1===/^(localhost|127\.0\.0\.1|::1)$/.test(location.hostname))return void console.warn("[Obs.js] Skipping: must be an inline, classic <script> in <head>.",e?e.src?"src="+e.src:"type="+e.type:"type=module");const t=document.documentElement,{connection:n}=navigator;window.obs=window.obs||{};const i=!0===(window.obs&&window.obs.config||{}).observeChanges,o=()=>{const e=window.obs||{},n="number"==typeof e.downlinkBucket?e.downlinkBucket:null;e.connectionCapability="low"===e.rttCategory&&null!=n&&n>=8?"strong":"high"===e.rttCategory||null!=n&&n<=5?"weak":"moderate";const i=!0===e.dataSaver||!0===e.batteryLow;e.conservationPreference=i?"conserve":"neutral",e.deliveryMode=i||"strong"!==e.connectionCapability?i||"weak"===e.connectionCapability?"lite":"cautious":"rich",e.canShowRichMedia="rich"===e.deliveryMode,e.shouldAvoidRichMedia="lite"===e.deliveryMode,["strong","moderate","weak"].forEach(e=>{t.classList.remove(`has-connection-capability-${e}`)}),t.classList.add(`has-connection-capability-${e.connectionCapability}`),["conserve","neutral"].forEach(e=>{t.classList.remove(`has-conservation-preference-${e}`)}),t.classList.add(`has-conservation-preference-${e.conservationPreference}`),["rich","cautious","lite"].forEach(e=>{t.classList.remove(`has-delivery-mode-${e}`)}),t.classList.add(`has-delivery-mode-${e.deliveryMode}`)},a=()=>{if(!n)return;const{saveData:e,rtt:i,downlink:a}=n;window.obs.dataSaver=!!e,t.classList.toggle("has-data-saver",!!e);const s=(e=>Number.isFinite(e)?25*Math.ceil(e/25):null)(i);null!=s&&(window.obs.rttBucket=s);const c=(e=>Number.isFinite(e)?e<75?"low":e<=275?"medium":"high":null)(i);c&&(window.obs.rttCategory=c,["low","medium","high"].forEach(e=>t.classList.remove(`has-latency-${e}`)),t.classList.add(`has-latency-${c}`));const r=(l=a,Number.isFinite(l)?Math.ceil(l):null);var l;if(null!=r){window.obs.downlinkBucket=r;const e=r<=5?"low":r>=8?"high":"medium";window.obs.downlinkCategory=e,["low","medium","high"].forEach(e=>t.classList.remove(`has-bandwidth-${e}`)),t.classList.add(`has-bandwidth-${e}`)}"downlinkMax"in n&&(window.obs.downlinkMax=n.downlinkMax),o()};a(),i&&n&&"function"==typeof n.addEventListener&&n.addEventListener("change",a);const s=e=>{if(!e)return;const{level:n,charging:i}=e,a=Number.isFinite(n)?n<=.05:null;window.obs.batteryCritical=a;const s=Number.isFinite(n)?n<=.2:null;window.obs.batteryLow=s,["critical","low"].forEach(e=>t.classList.remove(`has-battery-${e}`)),s&&t.classList.add("has-battery-low"),a&&t.classList.add("has-battery-critical");const c=!!i;window.obs.batteryCharging=c,t.classList.toggle("has-battery-charging",c),o()};"getBattery"in navigator&&navigator.getBattery().then(e=>{s(e),i&&"function"==typeof e.addEventListener&&(e.addEventListener("levelchange",()=>s(e)),e.addEventListener("chargingchange",()=>s(e)))}).catch(()=>{})})();
8+
//# sourceURL=obs.inline.js
109
</script>
1110

1211
<title>{{ page.title }} {% if paginator and paginator.page > 1 %}Blog – Page {{ paginator.page }} {% endif %}– CSS Wizardry</title>

js/speedcurve.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
'rttBucket',
1717
'rttCategory',
1818
'downlinkBucket',
19+
'downlinkCategory',
1920
'downlinkMax',
2021
'batteryCritical',
2122
'batteryLow',

0 commit comments

Comments
 (0)