What it will actually achieve is: people will spend more scripts to heuristically check which element under "ul li" could be ".Bar" based on the layout, attributes, and contents. Then they'll change "ul li .whatever", sometimes mistaking the class and getting a broken website. Or worse, they'll select on "ul li @background-color='red'" (or whatever the syntax is), which you can't obfuscate any further, but is almost guaranteed to randomly be incorrect.
I get where they come from (user extensions affecting how the website works), but I'd say the alternative it worse :/
That's really the point of having them, isn't it? To make the site work the way the user wants. In fact I'd say what it will actually achieve is less visitors to your site... they're just going to leave and go somewhere else.
I classify this along with the anti-right-click, disabling select/copy/paste, changing the status bar, resizing windows, and other general "DO NOT WANT" aspects of sites.
I wouldn't personally run something like this, but I've definitely experienced the frustration of having a user install an extension that changed my website, and then reported a bug in the extension to me.
Even when the extension is bug-free, it still adds a support burden. For instance, there's an extension that adds icons to usernames on my site. Users have asked me how to change their icon, and then gotten mad at me when I say I don't know.
It also adds a maintenance burden: Whenever I deploy various updates, I get complaints that the updates break one extension or another.
Not to mention, there are extensions not intentionally installed by users. For a while, there was some very common malware that rendered my website unusable. It added the text
<script src="http://example.com/malware.js"></script>
But it did it badly, so it changed: <script src="/legitimatescript.js"></script>
to <script src="/legitimates<script src="http://example.com/malware.js"></script>cript.js"></script>
Which, of course, rendered my site unusable.All of the things you mentioned are websites trying to break your expected behaviour. This is the exact opposite - your extension is breaking the expected behaviour and the website wants you to leave it alone.
seriously. wtf.
If the entire page is obfuscated it becomes a more difficult problem.
I've done a fair amount of web scraping before and each of their tricks can be broken with enough care. Obfuscating html not only breaks many of the good things about the web but also makes things harder to debug.
Does your company have the same goals React Armor has (this seems to be what your double-negative is saying), or is it the party React Armor is trying to protect against, or is it relevant to React Armor in some other way?
What kind of Japanese institutions are these and what does handling them entail? Are you scraping or modifying DOM, or are the institutions? Are you obfuscating DOM, or are the institutions?
Make things that solve your problems.
Have fun while doing it.
Continue.
Or, to quote a comment on a technology discussion site about this project:
"And so begins an arms race."
WTF, really?
If you have a justifiable business reason for doing this, then your life just got a little easier. I think this would also help against some forms of XSS too - so there's some silver lining for you.
At the end of the day, it all has to be valid HTML tags and javascript that runs without crashing. In terms of security, nothing on the front end even registers on the scale. Absolute worst case scenario, it's like solving a Wheel Of Fortune where I have most but not all of the the letters.
I'm pretty uncomfortable with the description of a user on their own machine, running their own browser running plugins they chose and installed as a "third party" that's engaging in "tampering."
Pretty sure this is why we need shadow dom.
Until someone just types the data into Excel and manipulates it themselves. If you don't trust your user with data, don't show it to them in the first place!
if you're looking to prevent Ad Blockers, this is not your solution.
EDIT: But if you really want to make this a useful lib, bake in a way to disable the `armor` for debugging/development.
Update: the detection-only also helps with accessibility as obfuscated DOM makes it impossible to use with screen readers etc.
ROFL, soon all the annoying garbage ads will be written in React. Yay!