(function() { var ignore = localStorage.getItem("bad-scale-ignore-it") == "ignore-it"; function getScale() { var ratio = 0, screen = window.screen, ua = navigator.userAgent.toLowerCase(); if (window.devicePixelRatio !== undefined) { ratio = window.devicePixelRatio; } else if (~ua.indexOf('msie')) { if (screen.deviceXDPI && screen.logicalXDPI) { ratio = screen.deviceXDPI / screen.logicalXDPI; } } else if (window.outerWidth !== undefined && window.innerWidth !== undefined) { ratio = window.outerWidth / window.innerWidth; } return ratio == 0 ? 0 : Math.round(ratio * 100); } var showing = false; var div = document.createElement("div"); div.style.position = "fixed"; div.style.top = "0px"; div.style.left = "0px"; div.style.width = "100vw"; div.style.backgroundColor = "firebrick"; div.style.textAlign = "center"; div.style.zIndex = 99; var b = document.createElement("b"); b.innerHTML = 'Bad Scale: ??% '; div.appendChild(b); var note1 = document.createElement("p"); note1.innerHTML = "Change your browser or your computer settings!"; note1.title = 'Just make sure "computer-scale" * "browser-scale" = 100% ,\n' + "you can keep your computer-scale and only change this page's scale,\n" + "for example: your computer-scale is 125%, just use [\"CTRL\"+\"-\"] to make your browser-scale of this page to 80%."; div.appendChild(note1); var note2 = document.createElement("p"); note2.innerHTML = " Otherwise, it will cause this page to not function properly!"; note2.title = "When you click \"Copy image to: [inpaint sketch]\" in some img2img's tab,\n" + "if scale<100% the canvas will be invisible,\n" + "else if scale>100% this page will take large amount of memory and CPU performance."; div.appendChild(note2); var btn = document.createElement("button"); btn.innerHTML = "Click here to ignore"; div.appendChild(btn); function tryShowTopBar(scale) { if (showing) return; b.innerHTML = 'Bad Scale: ' + scale + '% '; var updateScaleTimer = setInterval(function() { var newScale = getScale(); b.innerHTML = 'Bad Scale: ' + newScale + '% '; if (newScale == 100) { var p = div.parentNode; if (p != null) p.removeChild(div); showing = false; clearInterval(updateScaleTimer); check(); } }, 999); btn.onclick = function() { clearInterval(updateScaleTimer); var p = div.parentNode; if (p != null) p.removeChild(div); ignore = true; showing = false; localStorage.setItem("bad-scale-ignore-it", "ignore-it"); }; document.body.appendChild(div); } function check() { if (!ignore) { var timer = setInterval(function() { var scale = getScale(); if (scale != 100 && !ignore) { tryShowTopBar(scale); clearInterval(timer); } if (ignore) { clearInterval(timer); } }, 999); } } if (document.readyState != "complete") { document.onreadystatechange = function() { if (document.readyState != "complete") check(); }; } else { check(); } })();