Remove rounding

Removes rounding of all elements on all sites. | Прибирає срані заокруглення усіх елементів на всіх сайтах

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey, Greasemonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्क्रिप्ट व्यवस्थापक एक्स्टेंशन इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्क्रिप्ट व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्टाईल व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

// ==UserScript==
// @name         Remove rounding 
// @namespace    http://tampermonkey.net/
// @version      0.4
// @description   Removes rounding of all elements on all sites. | Прибирає срані заокруглення усіх елементів на всіх сайтах
// @author       SergoZar
// @match        *://*/*
// @license GPL v2.0
// ==/UserScript==

(function() {
    'use strict';

 function add_style(e, shadow=false){
        var style = document.createElement("style");
        style.setAttribute("unround", '1');
        style.textContent = ` *{
            border-radius: 0 !important;
        }`;

        if (e.shadowRoot){
            //document.querySelectorAll("style[unround='1']")
            e.shadowRoot.append(style);
            console.log(e.shadowRoot.querySelectorAll("style[unround='1']"));
        }
        else
            e.append(style);
    }
    add_style(document.head);

    // https://gist.github.com/Spencer-Doak/9954daae8a859337a08f0022293313a6
    function findRoots(ele) {
    return [ ele, ...ele.querySelectorAll('*') ]
        .filter(e => !!e.shadowRoot)
        .flatMap(e => [e.shadowRoot, ...findRoots(e.shadowRoot)])
    }

    function equal(ar1, ar2){
      if (ar1.length !== ar2.length)
          return false;
      for (var i = 0; i < ar1.length; i++)
          if (ar1[i] !== ar2[i])
              return false;
      return true;
    }

    var shadows_old = findRoots(document.body);
    shadows_old.forEach( i => add_style(i, true) );

    setInterval(function () {
        var shadows_new = findRoots(document.body);
        if(equal(shadows_new, shadows_old)){

        }
        else{
            console.log("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
            shadows_old = shadows_new;
            shadows_new.forEach( i => add_style(i, true));
        }
    }, 3000);
})();